- Home
- Categorie
- Coding e Sistemistica
- PHP
- inserimento record in db
-
inserimento record in db
Salve, premettendo che sono un super principiante, volevo porvi un quesito:
Sto facendo un minisito in php per un'esame universitario...il sito deve essere in grado di registrare nome utente e password in un database, non si possono avere 2 utenti con lo stesso nome (problema che vedrò dopo).
Per quanto riguarda la lettura dal database nn c'è problema, ma per l'inserimento lo script quà sotto non funziona, ossia mio ridà sempre l'errore "inserimento non riuscito"....sicuro che sbaglio io, ma nn riesco a capire dove.......se qualcuno può aiutarmi sarebbe fantastico grazie.<html>
<head>
<title>Risultato form</title>
</head>
<center>
<?php
include("install.php"); //includo il file con la connessione al db
$nome=$_POST['nome'];
$password=$_POST['pw'];
if($nome=="" || $password=="")
echo("inserire tutti i campi");
mysql_select_db("utenti");
$successo=mysql_query("INSERT INTO //eseguire il comando SQL
utente(nome,password)values('$nome','$password')");
if($successo)
echo("inserimento riuscito");
else
echo("inserimento non riuscito");?>
</center>
</html>
-
Ciao.
Prova cosi
//$database nome del database che probabilmente hai nel file di connessione
// utente deve essere la tabella$successo = "INSERT utente (nome,password) VALUES ('$nome','$password')";
mysql_db_query($database, $successo );
$risultato= mysql_affected_rows();
$idinserito = mysql_insert_id(); //ti da l'id che hai inserito e lo mette nella variabile
if( $risultato > 0 )
echo("inserimento riuscito");
else
echo("inserimento non riuscito");
-
Molte grazie per l'aiuto......stò diventando matto con un'errore che mi da
alla linea 10 di inserimento2.php (il file dove ho inserito il codice nella risposta che mi hai dato)Notice: Undefined variable: database in c:\programmi\easyphp1-8\www\prova\inserimento2.php on line 10
inserimento non riuscitoMagari ho inserito male il codice (possibile conoscendomi).
<?php
include("install.php");
$nome=$_POST['nome'];
$password=$_POST['pw'];
if($nome=="" || $password=="")
echo("inserire tutti i campi");
mysql_select_db("utenti");
$successo = "INSERT utente (nome,password) VALUES ('$nome','$password')";
mysql_db_query($database, $successo );
$risultato= mysql_affected_rows();
$idinserito = mysql_insert_id();
if( $successo > 0 )
echo("inserimento riuscito");
else
echo("inserimento non riuscito");
?>
-
Calcola che nel codice della prima domanda che ho postato non mi dava nessun errore, solo stampava a video "inserimento non riuscito" quindi il codice era giusto ma credo di aver sbagliato qlcs nella procedura di inserimento.
Grazie per l'aiuto.
-
$database l'hai dichiarata?
-
Guarda ho risolto così
<?php$db_host="localhost";
$db_user="root";
$db_password="";
$db_name="utenti";
$nome=$_POST['nome'];
$password=$_POST['pw'];
if($nome=="" || $password=="")
echo("inserire tutti i campi");
$db=mysql_connect($db_host,$db_user,$db_password);
if ($db==FALSE) die("errore nella connessione");
mysql_select_db($db_name,$db) or die("errore nella selezione del database");
$query="Insert intoutente
(nome
,password
) VALUES ( '$nome', '$password');";
$result=mysql_query($query,$db);
if ($result==FALSE) die("Errore inserimento dati,<br> la seguente query è sbagliata: $query");
echo "Utente inserito con successo: ".$nome;
mysql_close($db);
?>Il discorso è che in questo momento sto confrontando il codice scritto da me all'inizio e questo che funziona, ancora non ho trovato il mio errore (probabile che mi sono arruginito, sono anni che non implemento una ceppa).
Cmq adesso dovrò inserire uno script che mi controlli che i nomi nel database siano unici....quindi non ti preoccupare avrò bisogno d'aiuto...grazie per l'ineteresse
-
beh per controllare l'unicità dei nomi puoi fare un mysql_num_rows..
$check_nome = mysql_num_rows(mysql_query(select * from utente where nome = '$nome'"));
if ($check_nome =="0") { PROSEGUI }
else { BLOCCA }
-
Grazie tante.....mi da un Parse Error: parse error in...../line18, anche se a me sembra tutto apposto
if ($check_nome =="0")
{
$query="Insert intoutente
(nome
,password
) VALUES ( '$nome', '$password')";
$result=mysql_query($query,$db);
if ($result==FALSE) die("Errore inserimento dati,<br> la seguente query è sbagliata: $query");
echo "Utente inserito con successo: ".$nome;
}
else
echo"Nome già utilizzato";
-
Di solito è un errore di pococonto (credo) tipo punto e virgola ocavolate del genere ma nn riesco a trovarlo, boh....se ti va dai un'occhiata
<?php
$db_host="localhost";
$db_user="root";
$db_password="";
$db_name="utenti";
$nome=$_POST['nome']; //prendo le variabili passate da FORM.HTML tramite il metodo post
$password=$_POST['pw'];
if($nome=="" || $password=="") //controllo che i campi non siano vuoti
echo("inserire tutti i campi");
$db=mysql_connect($db_host,$db_user,$db_password); //stabilisco la connessione al server con la variabile-identificatore $db
if ($db==FALSE) die("errore nella connessione"); //se la connessione avviene mysql_connect restituisce valore TRUE
mysql_select_db($db_name,$db) or die("errore nella selezione del database"); //seleziono il database//BLOCCO PER IL CONTROLLO DEI NOMI NEL DATABASE
$query_nome="select * from utente where nome = '$nome'";
$check_name=mysql_num_rows(mysql_query($query_nome,$db); //mysql_num_rows restituisce il num di righe che corrispondono con la query, se è zero allora inseriremo il record
if ($check_nome =="0")
{
$query="Insert into 'utente' ( 'nome' , 'password' ) VALUES ( '$nome', '$password')";
$result=mysql_query($query,$db);
if ($result==FALSE) die("Errore inserimento dati,<br> la seguente query è sbagliata: $query");
echo "Utente inserito con successo";
}
else
echo "Nome già utilizzato";mysql_close($db);
?>