Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    48

    Problema inserimento dati nel DB!

    Salve ragazzi scrivo per chiedervi aiuto riguardo un problema a mio avviso stranuccio. Praticamente mi sono creato una tabella "classifiche" nella quale devo inserire dei dati, eccovi la sua struttura:

    Codice PHP:
    CREATE TABLE classifiche (
      
    song_id tinyint(3unsigned NOT NULL default '0',
      
    user_id mediumint(8NOT NULL default '0',
      
    song_pos tinyint(3unsigned NOT NULL default '0',
      
    song_title varchar(50NOT NULL default '',
      
    song_author varchar(50NOT NULL default '',
      
    song_type varchar(20NOT NULL default '',
      
    song_insdate int(11NOT NULL default '0',
      
    song_votes smallint(5unsigned NOT NULL default '0',
      
    PRIMARY KEY  (song_id),
      
    KEY user_id (user_id)
    TYPE=MyISAM
    Ovviamente dopo mi sono creato un form per l'inserimento dei dati:

    Codice PHP:
    <form name="classifiche" method="post" action="classifiche.php?mode=ins">
          
    Titolo:
              <
    input name="song_title" type="text" maxlength="50">
              
    Autore:
              <
    input name="song_author" type="text" maxlength="50">
              
    Genere
              <
    select name="song_type" id="song_type">
                <
    option value="salsa">Salsa</option>
              </
    select>
              <
    input name="Submit" type="submit" class="button" value="Invia">
        </
    form
    Come vedete i dati vengono passati con metodo post alla pagina che mediante script php effettua la query d'inserimento: (ecco il codice per l'inserimento)

    Codice PHP:
    if ($mode == 'ins') {
       
    $Result mysql_query("SELECT MAX(song_id) as song_id , MAX(song_pos) as song_pos from classifiche");
       if (!
    $Result) { die(mysql_error()); }
       
    $rs mysql_fetch_row($Result);
       
    $song_id $rs['song_id'] + 1;
       
    $song_pos $rs['song_pos'] + 1;
       
    $user_id $userdata['user_id'];
       
    $song_title trim(htmlspecialchars($HTTP_POST_VARS['song_title']));
       
    $song_author trim(htmlspecialchars($HTTP_POST_VARS['song_author']));
       
    $song_type trim(htmlspecialchars($HTTP_POST_VARS['song_type']));
       
    $Result mysql_query("INSERT INTO classifiche (song_id,user_id,song_pos,song_title,song_author,song_type,song_insdate) 
       VALUES (
    $song_id,$user_id,$song_pos,'" str_replace("\'""''"$song_title) . "','" str_replace("\'""''"$song_author) . "','$song_type'," time() . ")");
       if (!
    $Result) { die(mysql_error()); } 

    Il problema di cui vi parlavo consiste nel fatto che tutti i dati mi vengono inseriti nella tabella solo una volta poi se tento di effettuare un nuovo inserimento, alla tabella non viene aggiunto nulla! Mi sapreste dire come mai?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    48
    Ciao devils grazie per la risposta fulminea
    il valore del campo user_id viene preso in automatico da $user_id = $userdata['user_id']; dove $userdata contiene tutti i dati dell'utente in quel momento loggato e fa riferimento alla tabella utenti quindi non deve autoincrementarsi!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    48
    opssssssssss errore di lettura avevo letto user_id e non song_id scusami ora provo!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    48
    Ok ora funziona!

    Non avevo messo l'autoincrement perchè il song_id lo incrementavo via codice quindi da questo dovrei dedurre che sulle chiavi primarie è obbligatorio metterlo giusto?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    48
    perfect! grazie 1000

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.