Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Query: errore di sintassi - ma dove?

    Non riesco ad eseguire questa query attraveros pagina php, ma no riesco a capire dove sta il problema, nel senso che a me sembra corretta!!

    PArtendo dall'inizio, la tabella è stata creata così:
    Codice PHP:
    CREATE TABLE `match` (
      `
    idmediumint unsigned NOT NULL auto_increment,
      `
    idplayermediumint unsigned NOT NULL,
      `
    compleannodate NOT NULL,
      `
    ruoloenum('Portiere','Difensore','Terzino','Ala','Centrocampista','Attaccante','--'NOT NULL,
      `
    stelledecimal(3,1NOT NULL,
      `
    commentotext NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=MyISAM
    Nella pagina php, all'intenro di un ciclo for che serve a ciclarmi tutti gli elementi dell'array (e che funziona correttamente visto che mi ripete l'errore n volte dove n è il numero di elementi dell'array) ho questa query:

    Codice PHP:
    for ($i 0$i count($id); $i++) 
      {
        
    $a=$id[$i];
      
    $b=$ruolo[$i];
      
    $c=$stelle[$i];
      
    $d=$commento[$i];

      
    $query "INSERT INTO match (idplayer, compleanno, ruolo, stelle, commento) VALUES ('$a', '$data', '$b', '$c', '$d')";

      if (
    mysql_query($query$db))
        {
            echo 
    " Il giocatore ",$a," è stato inserito correttamente
    "
    ;
        }    
        else    
        {
            echo 
    " Il giocatore ",$a," NON è stato inserito correttamente
    "
    ;
        }
    echo 
    mysql_errno(),": ",mysql_error(),"
    "
    ;
        } 
    Eseguendo questa query il risultato è il seguente:

    Il giocatore 17 NON è stato inserito correttamente
    1064:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'match (idplayer, compleanno, ruolo, stelle, commento) VALUES ('17', '1999-11-30'' at line 1
    E qua ecco il problema: dove sta l'errore, che io non riesco a trovarlo?

    Ho provato ad eliminare dalla query un campo alla volta con relativa variabile, ma l'errore rimane, ho provato a riscrivere la query (magari un qualche errore di battitura non visto) ma sempre niente.

    Grazie mille per l'aiuto!

  2. #2
    Prova la query senza gli apici nella varibile numerica

    $query = "INSERT INTO match (idplayer, compleanno, ruolo, stelle, commento) VALUES ('$a', '$data', '$b', $c, '$d')";

  3. #3
    Originariamente inviato da Roby.zip
    Prova la query senza gli apici nella varibile numerica

    $query = "INSERT INTO match (idplayer, compleanno, ruolo, stelle, commento) VALUES ('$a', '$data', '$b', $c, '$d')";
    Grazie per l'interessamento...

    Ma niente da fare... sempre stesso errore

    Quello che mi incuriosisce è che se stampo la variabile $query ottengo questo:
    INSERT INTO match (idplayer, compleanno, ruolo, stelle, commento) VALUES ('17', '1999-11-30', '7', 5, '')
    dove tutte le variabili sono al posto giusto, mentre il messaggio di errore fa sparire un troncone con alcune variabili!!
    1064:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'match (idplayer, compleanno, ruolo, stelle, commento) VALUES ('17', '1999-11-30'' at line 1

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se l'id è la chiva primaria evita di inserirla tu nella query (verrà fatto in automatico).
    Eviterei anche di chiamare la tabella col nome match, visto che è una parola riservata.
    In alternativa metti match tra backtick (usa la combinazione alt+96).

  5. #5
    Originariamente inviato da nicola75ss
    Se l'id è la chiva primaria evita di inserirla tu nella query (verrà fatto in automatico).
    Eviterei anche di chiamare la tabella col nome match, visto che è una parola riservata.
    In alternativa metti match tra backtick (usa la combinazione alt+96).
    :quote:

    Ed ecco il vincitore!!!!

    Il problema era il nome della tabella, match, essendo parola riservata, non gli piaceva. Bastato cambiare il nome alla tabella per far funzionare tutto!

    GRAZIE MILLE!!!!

    L'idplayer inserito nella query non è la chiave primaria della tabella, ma è il campo che mi permette di ricollegare il giocatore ai suoi dati, presenti in un'altra tabella.

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.