Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    29

    problema con comando SQL

    Ciao a tutti
    premetto che utilizzo EasyPHP 1.8 e sto riscontrando uin problema che a me sembra abbastanza strano.
    Ho creato una pagina per simulare una registrazione, e se nella casella del nickname e della password vengono inseriti dei valori solo numerici tutto ok, mentre invece se ci sono lettere o stringhe lo script php mi restituisce l'errore, nonostante il tipo di quei campi è varchar(e quindi dovrebbe accettare benissimo valori alfanumerici).

    Questo è il codice della pagina contenente il form:

    codice:
    <?xml version = "1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    
    
    <html xmlns = "http://www.w3.org/1999/xhtml">
    <head>
    <title> Registrazione </title>
    </head>
    <body>
    			<p style="text-align:center; font-size:25px">Registrazione</p>
    			<form method="post" action="regDati.php">
    						
    
    Nome utente<input type="text" name="Nickname" />
    
    						Password<input type="password" name="pass" />
    
    						Reinserisci password<input type="password" name="pass2" />
    
    						
    
    						
    
    						
    						Cognome <input type="text" name="cognome" />
    
    						Nome <input type="text" name="nome" />
    
    						Data di nascita<input type="text" name="dataNasc" />
    
    						
    						<input type="submit" name="conferma" value="Conferma" />
    						
    
    						</p>
    			</form>			 
    
    </body>
    </html>
    Questo invece è il codice della pagina regDati.php:

    codice:
    <?php
    					 $conn = mysql_connect("localhost","root");
    					 If (!$conn)
    					 {
    					 	echo "connessione non riuscita";
    						exit();
    					 }
    					 //selezione del database
    					 mysql_select_db("azienda");
    					 
    					 $nick =$_POST['Nickname'];
    					 $pass =$_POST['pass']; 
    					 //comando SQL
    					
    					 $strSQL ="INSERT INTO clienti (Id,NickName,Password,Nome,Cognome,DataNasc,Nazionalita,Città,Via,N_civico,Provincia,Cap,Telefono)";
    					 $strSQL .="VALUES ('2',$nick,$pass,'x','x',1/12/1999,'x','x','x','x','x','x','x')";
    					 
    					 $risult = mysql_query($strSQL);
    					 if (!$risult)
    					 {
    					 		echo("errore nel comando SELECT");
    					 		exit();
    					 } 
    					 else
    					 {
    					 echo("Registrazione completa");
    					 } 
    				
    					
    					
    					
    					 mysql_close($conn);
    			?>
    Potete darmi qualche suggerimento?
    grazie in anticipo!

  2. #2
    le stringhe vanno messe tra apici nella query, mentre i per i campi numerici no.

    codice:
    VALUES (2,'$nick', '$pass', 'x','x','1/12/1999','x','x','x','x','x','x','x')";
    @ edit

    occhio che quella data non e' una data compatibile con il campo date di mysql ma e' una stringa

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

  3. #3
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    Codice PHP:
    <?php
                         $conn 
    mysqli_connect("localhost","root","","azienda") or die("Spiacente, connessione all'host o al database non riuscita. Errore n°:" mysql_error());
                        
                         
    $nick =$_POST['Nickname'];
                         
    $pass =$_POST['pass']; 
                         
    //comando SQL
                        
                         
    $strsql ="INSERT INTO clienti (Id, NickName, Password, Nome, Cognome, DataNasc, Nazionalita, Città, Via, N_civico, Provincia, Cap, Telefono) VALUES (2, $nick$pass, 'x', 'x', '1/12/1999', 'x', 'x', 'x', 'x', 'x', 'x', 'x')";
                         
                         
    $risult mysql_query($strsql$conn);
                         if (!
    $risult)
                         {
                                 echo(
    "errore nel comando SELECT");
                                 exit();
                         } 
                         else
                         {
                         echo(
    "Registrazione completa");
                         } 
                    
                        
                        
                        
                         
    mysql_close($conn);
                
    ?>
    Comunque ti ho pulito un pò il codice, era davvero un obbrobrio. VVoVe:

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    29
    ok grazie ho risolto.
    Prima avevo provato a mettere le variabili tra apici ma il problema stava nel formato della data

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    29
    sempre riguardo alla pagina della registrazione sto avendo un altro problema che mi blocca. Ho creato dei menu (tramite il tag select) per l' inserimento della data di nascita però non riesco ad acquisire quei valori tramite il php.

    Usando il seguente comando: $mm=$_POST['mm']; (dove mm è il nome del menu) mi restituisce l' errore "Undefined index mm" .

    cosa dovrei scrivere allora tra le quadre?
    grazie ancora!

  6. #6
    Utente di HTML.it L'avatar di dararag
    Registrato dal
    Jan 2008
    Messaggi
    434
    ma sei sicuro che l'hai passato con post, e se sì, sicuro che esista veramente il nome, e che sia mandata proprio alla pagina che serve a te? perchè undefined significa che per lui non esiste

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    29
    si era tutto ok, anche il metodo utilizzato.
    cmq ho risolto grazie lo stesso

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 © 2024 vBulletin Solutions, Inc. All rights reserved.