- Home
- Categorie
- Coding e Sistemistica
- Coding
- Scrive due volte lo stesso utente
- 
							
							
							
							
							Scrive due volte lo stesso utenteCiao a tutti, sono arrivato alla frutta, non riesco ad uscire da questo problema, aiutatemi vi prego: ho un file php che deve aggiungere uno studente nel db se non è presente, mentre se è gia presente deve inserire il voto relativo alla sua interrogazione. Il problema è che se lo studente non è presente lo inserisce due volte, mentre se è già presente inserisce due volte il voto relativo alla sua interrogazione. posto il file.... <?php 
 include("config.inc.php");Aquisisce i dati dal file config.inc '$db_host, $db_user, $db_password'$varNome="Brambilla"; 
 #$varNome=$_POST["nome"];
 $varVoto=$_POST["voto"];
 $varDescrizione=$_POST["descrizione"];acquisisce i dati dal form html e li inserisce nellevariabili $varNome, £varVoto e $varDescrizione$conn=mysql_connect("$db_host", "$db_user", "$db_password"); Collegamento al server mySQL che ritorna true o false nellavariabile $conn se c'è stato il collegamento oppure no.if(!$conn){ 
 echo("errore durante la connessione a mysql");
 exit();}
 else{
 echo("connessione avvenuta correttamente
 ");
 }mysql_select_db($db_name, $conn) OR die ("Errore nella selezione del db: " 
 . mysql_error());Seleziona la connessione e il database sul quale si deve lavorare eriporta l'eventuale errore del db$strSQL="SELECT id_alunno FROM alunni WHERE nome='$varNome'"; Costruzione della query da passare al db tramite la variabile $strSQL$risultato=mysql_query($strSQL, $conn)or die("Errore nella query: " 
 . mysql_error());Restituisce un identificativo del risultato (cioè un'altra variabile di tiporesource), che servirà successivamente, se la query è andata a buon fine;se invece MySql ha rilevato degli errori, la funzione restituisce FALSE;$riga=mysql_fetch_array($risultato); Legge le righe dal database restituendo l'id alunno$varInsVoto=0; 
 if($riga==false and $varInsVoto==0){
 $verifica="riga = false
 ";
 echo $verifica;
 echo "VarInsVoto: ".$varInsVoto."
 ";
 echo "Risultato: " .mysql_num_rows($risultato). "
 ";
 $strSQL="INSERT INTO alunni (nome)VALUES('$varNome')";
 $varInsVoto=1;
 $risultato=mysql_query($strSQL,$conn);
 if(! mysql_query($strSQL)){
 echo("Errore nel comando INSERT");
 exit();}
 else{
 echo("Studente $varNome aggiunto corretamente
 ");
 }
 }se l'alunno è presente nel databaseelse{ 
 $verifica="if riga = true
 ";
 echo $verifica;
 $strSQL="SELECT id_alunno FROM alunni WHERE nome='$varNome'";
 $risultato=mysql_query($strSQL);
 $riga=mysql_fetch_array($risultato);}Legge le righe dal db restituendo l'id_alunno relativo al nome immessowhile($riga){ 
 echo("id alunno: ".$riga["id_alunno"]."
 ");
 $id_ricavato=$riga["id_alunno"];
 $riga=mysql_fetch_array($risultato);}ed inserisce l'interrogazione$strSQL="INSERT INTO interrogazioni(id_alunno, voto, descrizione) 
 VALUES('$id_ricavato','$varVoto','$varDescrizione')";
 $risultato=mysql_query($strSQL);
 if(! mysql_query($strSQL)){
 echo("Errore nel comando INSERT");
 exit();}
 else{
 echo "VarInsVoto: ".$varInsVoto."
 ";
 echo("Studente $varNome già presente, aggiunto voto e descrizione
 ");
 $strSQL="SELECT id_alunno FROM alunni WHERE nome='$varNome'";
 $risultato=mysql_query($strSQL);
 $riga=mysql_fetch_array($risultato);
 $id_ricavato=$riga["id_alunno"];
 }
 #if(! mysql_query($strSQL)){echo("Errore nel comando SELECT");exit();}echo("query effettuata corretamente");$strSQL="INSERT INTO interrogazioni(id_alunno,voto,descrizione)VALUES('$id_ricavato','$varVoto','$varDescrizione')";$risultato=mysql_query($strSQL);?> grazie e ciao a tutti 
 
- 
							
							
							
							
							risolto, grazie comunque.