• User Newbie

    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>


  • User Attivo

    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");


  • User Newbie

    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 riuscito

    Magari 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");
    ?>


  • User Newbie

    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.


  • Bannato User Attivo

    $database l'hai dichiarata?


  • User Newbie

    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 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: ".$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


  • Bannato User Attivo

    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 }


  • User Newbie

    Grazie tante.....mi da un Parse Error: parse error in...../line18, anche se a me sembra tutto apposto

    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: ".$nome;
    }
    else
    echo"Nome già utilizzato";


  • User Newbie

    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);

    ?>