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

    Error 1064,probabile errore nella query insert

    Ciao a tutti, questo è il mio primo post, quindi innanzi tutto faccio una breve presentazione...
    Sono uno studente autodidatta di php,lo sto imparando tramite il libro "PHP e MySQL" di O'REILLY quindi siate clementi sono una schiappazza
    vengo ora al problema...
    desideravo fare una pagina per l'inserimento dati in un db le cui tabelle le ho così costruite

    codice:
    create table Tabella 
    -> (IdTabella int not null auto_increment primary key,
    -> Nome varchar(15), 
    -> Cognome varchar(15), 
    -> IdS int not null references Tabella2(IdS) 
    -> )type=InnoDB;
    
    tabella2
    
    create table Tabella2 
    -> (IdS int not null auto_increment primary key,
    -> Nome varchar(15), 
    -> )type=InnoDB;
    questa la pagina tramite la quale vengono scritti i valori

    codice:
    <table>
    <tr>
    	<td>Nome</td>
    	<td><input type="text" name="Nome" size=30></td>
    </tr>
    <tr>
    	<td>Cognome</td>
    	<td><input type="text" name="Cognome" size=30></td>
    </tr>
    <tr>
    	<td>IdS</td>
    	<td><Select style="width:200px" id=select1 name="IdS">
    	<option value="">Scegli</option>
    <?php
    
    	$result = mysql_query("select IdS,Nome a from Tabella2", $connection);
        while($row = mysql_fetch_array($result)){
    
        echo " <option value=\"$row[IdS]\">$row[Nome]</option>\n";	
        }	
    	
    	?>
    
    </Select></td>
    </tr>
    e questa la pagina per l'inserimento

    codice:
    <?php
    
    require "db.inc";
    
    if (!empty($_GET['Nome'])&&
        !empty($_GET['Cognome'])&&
    	!empty($_GET['IdS']))
    {
    	if(!($connection = @ mysql_connect('localhost', 'USER', 'PASSWORD')))
    	   die("could not connect to database");
    	 $Nome = mysqlclean($_GET, "Nome", 50, $connection);
    	 $Cognome = mysqlclean($_GET, "Cognome", 50, $connection);
    	 $IdS = mysqlclean($_GET, "IdS", 50, $connection);
    	
    	if(!mysql_select_db("DATABASE",$connection))
    	   showerror();
    	
    	$query = "insert into Tabella values
    			  ('', '$Nome', '$Cognome', $IdS, )";
    	
    	if(!(@mysql_query ($query, $connection)))
    	showerror();
        header("");
    }
    
    else
    
     header(""); 
    
    ?>
    Una volta inseriti i campi, se faccio l'inserimento mi compare il seguente errore

    Error 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 ' )' at line 1

    da quello che ho capito l'errore sta appunto nella query Insert into solo che non capisco dove è
    p.s. il tutto ha funzionato quando l'inserimento del campo IdS avveniva tramite un campo testo come per nome e cognome...poi da quando ho modificato nella prima pagina la modalità di scelta del campo mi ha segnalato l'errore :master:

    grazie in anticipo a tutti

  2. #2
    Ciao,
    non ho dato un'occhiata al codice xkè sono qui solo di passaggio, e con gli esami ho poco tempo...

    Però ad occhio e croce, se il resto sta bene, credo che il problema sia:

    ('', '$Nome', '$Cognome', $IdS, )";

    l'ultima virgola non va...e poi non ricordo se anke $IdS va rinchiuso tra apici.

    Comunque x conferma, stampa la query con un echo, così vedi i valori inseriti...se sono tutti ok.

    CIAO CIAO.

  3. #3
    Originariamente inviato da PiccoloPalazzi
    Ciao,
    non ho dato un'occhiata al codice xkè sono qui solo di passaggio, e con gli esami ho poco tempo...

    Però ad occhio e croce, se il resto sta bene, credo che il problema sia:

    ('', '$Nome', '$Cognome', $IdS, )";

    l'ultima virgola non va...e poi non ricordo se anke $IdS va rinchiuso tra apici.

    Comunque x conferma, stampa la query con un echo, così vedi i valori inseriti...se sono tutti ok.

    CIAO CIAO.
    Intanto grazie,

    ho controllato ma la virgola nella pagina originale non l'ho messa...è stato un errore nel copiare la pagina dovuto principalmente al sonno

    per $IdS se lo metto tra apici non mi viene segnato alcun errore, solo che se lo metto tra apici poi non viene inserito nella tabella perchè lo riconosce come campo di testo e non numerico come poi effettivamente è

  4. #4
    qualche idea?

    proprio non capicsco dove è l'errore...

  5. #5
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    prova a stampare la query prima di inviarla...

  6. #6
    Originariamente inviato da kuarl
    prova a stampare la query prima di inviarla...
    in che senso?
    Intendi dire di stampare i valori?Per quello l'ho fatto ed i valori vengono passati correttamente, solo che senza gli apici la query risulta sbagliata,mentre on gli apici non funziona perchè non sono campi di tipo testo ma numerici

  7. #7
    Ok...come non detto...sono un pirlacchione e non mi sono accorto che IdS in un punto del codice mancava una cacchio di S

    grazie comunque

  8. #8
    come non detto..... hai risolto...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.