Visualizzazione risultati 1 fino 11 di 11

Discussione: Problema Query database

  1. #1
    Guest

    Predefinito Problema Query database

    Salve gente ho un problema con il database e i file php vorrei fare un sistema di register e login via mysql ma mi dà sempre problemi aiutatemi ecco i codici:

    Codice php registrazione
    Codice PHP:
    <?php
    session_start
    (); // dive essere la prima cosa nella pagina, aprire la sessione
    include("db_con.php"); // includo il file di connessione al database
    if($_POST["username_reg"] != "" && $_POST["password_reg"]!= "" && $_POST["email_reg"] != ""){ // se i parametri iscritto non sono vuoti non sono vuote
    $query_registrazione = mysql_query("INSERT INTO users (username,password,email)
    VALUES ('"
    .$_POST["username_reg"]."','".$_POST["password_reg"]."','".$_POST["email_reg"]."')") // scrivo sul DB questi valori
    or die ("query di registrazione non riuscita".mysql_error()); // se la query fallisce mostrami questo errore
    }else{
    header('location:index.php?action=registration&errore=Non hai compilato tutti i campi obbligatori'); // se le prime condizioni non vanno bene entra in questo ramo else
    }
    if(isset(
    $query_registrazione)){ //se la reg è andata a buon fine
    $_SESSION["logged"]=true; //restituisci vero alla chiave logged in SESSION
    header("location:index.php");
    }else{
    echo
    "non ti sei registrato con successo"; // altrimenti esce scritta a video questa stringa
    }
    ?>
    Codice login.php eccolo:
    Codice PHP:
    <?php
    session_start
    ();// come sempre prima cosa, aprire la sessione
    include("db_con.php"); // Include il file di connessione al database
    $_SESSION["username"]=$_POST["username"]; // con questo associo il parametro username che mi è stato passato dal form alla variabile SESSION username
    $_SESSION["password"]=$_POST["password"]; // con questo associo il parametro username che mi è stato passato dal form alla variabile SESSION password
    $query = mysql_query("SELECT * FROM users WHERE username='".$_POST["username"]."' AND password ='".$_POST["password"]."'") //per selezionare nel db l'utente e pw che abbiamo appena scritto nel log
    or DIE('query non riuscita'.mysql_error());
    // Con il SELECT qua sopra selezione dalla tabella users l utente registrato (se lo è) con i parametri che mi ha passato il form di login, quindi
    // Quelli dentro la variabile POST. username e password.
    if(mysql_num_rows($query)&gt;0){ //se c'è una persona con quel nome nel db allora loggati
    $row = mysql_fetch_assoc($query); // metto i risultati dentro una variabile di nome $row
    $_SESSION["logged"] =true; // Nella variabile SESSION associo TRUE al valore logge
    header("location:prova.php"); // e mando per esempio ad una pagina esempio.php// in questo caso rimanderò ad una pagina prova.php
    }else{
    echo
    "non ti sei registrato con successo"; // altrimenti esce scritta a video questa stringa di errore
    }
    ?>
    Codice db.con.php eccolo:
    Codice PHP:
    <?php //connessione al nostro database
    $connessione_al_server=mysql_connect("localhost","root","root"); // ip locale, login e password
    if(!$connessione_al_server){
    die (
    'Non riesco a connettermi: errore '.mysql_error()); // questo apparirà solo se ci sarà un errore
    }

    $db_selected=mysql_select_db("my_x2071",$connessione_al_server); // dove io ho scritto "prova" andrà inserito il nome del db
    if(!$db_selected){
    die (
    'Errore nella selezione del database: errore '.mysql_error()); // se la connessione non andrà a buon fine apparirà questo messaggio
    }

    ?>
    Ultima modifica di x2071 : 19-01-2016 alle ore 22.40.52

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Dovresti indicare quali problemi incontri, quali messaggi di errore ti vengono mostrati, in quale punto del codice, eccetera.
    Vedere un brano di codice di questa lunghezza e, alla cieca, trovare il problema è difficile!

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Dovresti indicare quali problemi incontri, quali messaggi di errore ti vengono mostrati, in quale punto del codice, eccetera.
    Vedere un brano di codice di questa lunghezza e, alla cieca, trovare il problema è difficile!
    Riscontro questo problema dopo aver compilato la registrazione: -Unknown column 'users_username' in 'where clause'

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    L'errore è dunque causato da questo estratto del codice:
    Codice PHP:
    $query = "SELECT * FROM users " .
    "WHERE users_username = '$users' " .
    "OR users_email = '$pass' ";
    $result = mysql_query($query) or die (mysql_error());
    Vuol dire che la colonna users_username non esiste nella tabella users del tuo database. O hai sbagliato nel database, o nella clausola WHERE della query.

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    L'errore è dunque causato da questo estratto del codice:
    Codice PHP:
    $query = "SELECT * FROM users " .
    "WHERE users_username = '$users' " .
    "OR users_email = '$pass' ";
    $result = mysql_query($query) or die (mysql_error());
    Vuol dire che la colonna users_username non esiste nella tabella users del tuo database. O hai sbagliato nel database, o nella clausola WHERE della query.
    le colonne sono 4 e semplicemente si chiamano id,username,password,email

  6. #6
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    In questo caso modifica la query in:
    Codice PHP:
    $query = "SELECT * FROM users " .
    "WHERE username = '$users' " .
    "OR users_email = '$pass' ";

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da x2071 Visualizza messaggio
    Salve gente ho un problema con il database e i file php vorrei fare un sistema di register e login via mysql ma mi dà sempre problemi aiutatemi ecco i codici:

    Codice php registrazione
    Codice PHP:
    <?php
    session_start
    (); // dive essere la prima cosa nella pagina, aprire la sessione
    include("db_con.php"); // includo il file di connessione al database
    if($_POST["username_reg"] != "" && $_POST["password_reg"]!= "" && $_POST["email_reg"] != ""){ // se i parametri iscritto non sono vuoti non sono vuote
    $query_registrazione = mysql_query("INSERT INTO users (username,password,email)
    VALUES ('"
    .$_POST["username_reg"]."','".$_POST["password_reg"]."','".$_POST["email_reg"]."')") // scrivo sul DB questi valori
    or die ("query di registrazione non riuscita".mysql_error()); // se la query fallisce mostrami questo errore
    }else{
    header('location:index.php?action=registration&errore=Non hai compilato tutti i campi obbligatori'); // se le prime condizioni non vanno bene entra in questo ramo else
    }
    if(isset(
    $query_registrazione)){ //se la reg è andata a buon fine
    $_SESSION["logged"]=true; //restituisci vero alla chiave logged in SESSION
    header("location:index.php");
    }else{
    echo
    "non ti sei registrato con successo"; // altrimenti esce scritta a video questa stringa
    }
    ?>
    Codice login.php eccolo:
    Codice PHP:
    <?php
    session_start
    ();// come sempre prima cosa, aprire la sessione
    include("db_con.php"); // Include il file di connessione al database
    $_SESSION["username"]=$_POST["username"]; // con questo associo il parametro username che mi è stato passato dal form alla variabile SESSION username
    $_SESSION["password"]=$_POST["password"]; // con questo associo il parametro username che mi è stato passato dal form alla variabile SESSION password
    $query = mysql_query("SELECT * FROM users WHERE username='".$_POST["username"]."' AND password ='".$_POST["password"]."'") //per selezionare nel db l'utente e pw che abbiamo appena scritto nel log
    or DIE('query non riuscita'.mysql_error());
    // Con il SELECT qua sopra selezione dalla tabella users l utente registrato (se lo è) con i parametri che mi ha passato il form di login, quindi
    // Quelli dentro la variabile POST. username e password.
    if(mysql_num_rows($query)>0){ //se c'è una persona con quel nome nel db allora loggati
    $row = mysql_fetch_assoc($query); // metto i risultati dentro una variabile di nome $row
    $_SESSION["logged"] =true; // Nella variabile SESSION associo TRUE al valore logge
    header("location:prova.php"); // e mando per esempio ad una pagina esempio.php// in questo caso rimanderò ad una pagina prova.php
    }else{
    echo
    "non ti sei registrato con successo"; // altrimenti esce scritta a video questa stringa di errore
    }
    ?>
    Codice db.con.php eccolo:
    Codice PHP:
    <?php //connessione al nostro database
    $connessione_al_server=mysql_connect("localhost","root","root"); // ip locale, login e password
    if(!$connessione_al_server){
    die (
    'Non riesco a connettermi: errore '.mysql_error()); // questo apparirà solo se ci sarà un errore
    }

    $db_selected=mysql_select_db("my_x2071",$connessione_al_server); // dove io ho scritto "prova" andrà inserito il nome del db
    if(!$db_selected){
    die (
    'Errore nella selezione del database: errore '.mysql_error()); // se la connessione non andrà a buon fine apparirà questo messaggio
    }

    ?>
    Ecco il mio problema: query di registrazione non riuscita No database selected
    Aiutatemi sono disperato non trovo la soluzione ho rifatto il db ma niente, ho cambiato file php con altri più semplici ma sempre resta un problema date un occhiata se potete grazie.....
    Ultima modifica di x2071 : 19-01-2016 alle ore 22.55.49

  8. #8
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Hai provato a passare $connessione_al_server a mysql_query?
    Codice PHP:
    $query_registrazione = mysql_query("INSERT INTO users (username,password,email) VALUES ('".$_POST["username_reg"]."','".$_POST["password_reg"]."','".$_POST["email_reg"]."')", $connessione_al_server) or die ("query di registrazione non riuscita".mysql_error());
    Quando non specificato, mysql_query utilizza il valore restituito dall'ultima chiamata a mysql_connect (in questo caso, appunto, $connessione_al_server); ma qui non sta funzionando, dunque mi chiedo se passandoglielo esplicitamente si risolva qualcosa.

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    In questo caso modifica la query in:
    Codice PHP:
    $query = "SELECT * FROM users " .
    "WHERE username = '$users' " .
    "OR users_email = '$pass' ";
    Citazione Originalmente inviato da x2071 Visualizza messaggio
    Ecco il mio problema: query di registrazione non riuscita No database selected
    Aiutatemi sono disperato non trovo la soluzione ho rifatto il db ma niente, ho cambiato file php con altri più semplici ma sempre resta un problema date un occhiata se potete grazie.....
    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Hai provato a passare $connessione_al_server a mysql_query?
    Codice PHP:
    $query_registrazione = mysql_query("INSERT INTO users (username,password,email) VALUES ('".$_POST["username_reg"]."','".$_POST["password_reg"]."','".$_POST["email_reg"]."')", $connessione_al_server) or die ("query di registrazione non riuscita".mysql_error());
    Quando non specificato, mysql_query utilizza il valore restituito dall'ultima chiamata a mysql_connect (in questo caso, appunto, $connessione_al_server); ma qui non sta funzionando, dunque mi chiedo se passandoglielo esplicitamente si risolva qualcosa.
    mzanella tu parli del db.con.php? comunque mi sembra strano che non funziona con il codice $connessione_al_server comunque ci proverò appena tornerò a casa

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Hai provato a passare $connessione_al_server a mysql_query?
    Codice PHP:
    $query_registrazione = mysql_query("INSERT INTO users (username,password,email) VALUES ('".$_POST["username_reg"]."','".$_POST["password_reg"]."','".$_POST["email_reg"]."')", $connessione_al_server) or die ("query di registrazione non riuscita".mysql_error());
    Quando non specificato, mysql_query utilizza il valore restituito dall'ultima chiamata a mysql_connect (in questo caso, appunto, $connessione_al_server); ma qui non sta funzionando, dunque mi chiedo se passandoglielo esplicitamente si risolva qualcosa.
    niente da fare ho provato a sostituire ma niente dà sempre questo errore:
    "query di registrazione non riuscita"

  11. #11
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    L'errore indicato e' sempre No database selected? In caso affermativo, proverei a copiare il contenuto di db.con.php in registrazione.php.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •