Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: problema query SELECT

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150

    problema query SELECT

    ciao a tutti

    Ho il seguente problema con la query SELECT:

    <?php

    include "config.php";

    $user=$_POST['username'];
    $pwd=$_POST ['pwd'];

    $db=mysql_connect ($db_host, $db_user, $db_password);

    if ($db==FALSE)
    die ("Errore nella connessione del database.");

    mysql_select_db ($db_name,$db);

    $query="SELECT nome,password,livello FROM utenti WHERE nome='$user' , password='$pwd'";
    $result=mysql_query ($query,$db);

    if ($result != "")
    echo ("Sei registrato");
    else
    echo ("Non sei registrato");





    mysql_close($db);
    ?>

    $user e $pwd son dati che mi arrivano da una form compilata precedentemente.
    La tabella utenti del db a cui mi collego ha 4 categorie(id, nome, password,livello).
    Ora vorrei sapere come poter fare una select nella quale contronto user e pwd dati in input con quelli inseriti nella tabella. (o in generale quando ho bisogno di confrontare piu valori)
    La seguente query

    $query="SELECT nome,password,livello FROM utenti WHERE nome='$user' , password='$pwd'";

    e' errata, come posso aggiustarla?

    ciao

  2. #2
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    $query="SELECT nome,password,livello FROM utenti WHERE nome='$user' AND password='$pwd'";

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    mmm, non mi va ma penso forse sia un problema di script o di come confronto i valori.
    Se inserisco ad esempio $user e $pwd non esistenti nel db, mi esce cmq il messaggio "Sei registrato".
    Lo script da me postato vi sembra buono per lo scopo che deve raggiungere?ovvero confrontare se i dati $user e $pwd passati dal form son presenti nel db?

  4. #4
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    <?php

    include "config.php";

    $user=$_POST['username'];
    $pwd=$_POST ['pwd'];

    $db=mysql_connect ($db_host, $db_user, $db_password);

    if ($db==FALSE)
    die ("Errore nella connessione del database.");

    mysql_select_db ($db_name,$db);

    $query="SELECT nome,password,livello FROM utenti WHERE nome='$user' AND password='$pwd'";
    $result=mysql_query ($query,$db);
    if($num_righe = mysql_num_rows($risultato)){//restituisce il numero di righe in un risultato
    echo ("Sei registrato");
    }
    else{
    echo ("Non sei registrato");}

    [/PHP]
    prova cos' e fammi sapere




    mysql_close($db);
    ?>

  5. #5
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    scusa te lo riposto corretto, ho letto male:
    Codice PHP:
    <?php

    include "config.php";

    $user=$_POST['username'];
    $pwd=$_POST ['pwd'];

    $db=mysql_connect ($db_host$db_user$db_password);

    if (
    $db==FALSE)
    die (
    "Errore nella connessione del database.");

    mysql_select_db ($db_name,$db);

    $query="SELECT nome,password,livello FROM utenti WHERE nome='$user' AND password='$pwd'";
    $result=mysql_query ($query,$db);
    if(
    $num_righe mysql_num_rows($result)){//restituisce il numero di righe in un risultato
    echo ("Sei registrato");
    }
    else{
    echo (
    "Non sei registrato");}






    mysql_close($db);
    ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    si sembra andare thx

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    altra domanda:
    sempre sul codice che ho postato sopra, come faccio a fare una query dove interrogando il db , vedo se, i miei dati inseriti tramite form, son contenuti nel db.
    Mi spiego meglio:
    con la seguente query:

    $query="SELECT nome,password,livello FROM utenti WHERE nome='$user' AND password='$pwd'";

    io vedo se nella mia tabella ci sono almeno una coppia di valori che ho passato in input ($user e $pwd).

    Ma ad esempio se io ho questa tabella con 4 campi:

    id,nome,password,livello.

    E l'admin abbia i seguenti dati:
    id e' autoincrement e non mi importa ora, nome=Admin, password=root , livello=2.

    Ora come faccio a confrontare esattamente questi 3 valori (Admin, root, 2) inseriti in input con quelli nel db.
    Perche' se faccio una query del genere:

    $query="SELECT nome,password,livello FROM utenti WHERE nome='admin' AND password='root'";

    non avrebbe molto senso perche' vede semplicemente se nella tabella c'e o no tale valore (ma essendo admin c'e per forza).

    Risucite ad aiutarmi con questa query?

    ciao

  8. #8
    Cioè quello che intendi fare è semplicemnte permettere l'accesso all'amministratore?
    In questo caso fai una select che ti ritorna il nome...
    $ris=select nome from $tabella where (($campo1='$attributo1')&&($campo2='$attributo2')& &($campo3='$attributo3'));

    ora per controllare che esiste il nome e quindi che i dati sono dell'amministratore fai:
    if(mysql_num_rows($ris)){ corpo }


    Così puoi dare accesso all'amministratore per esempio...

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    thx

    Avrei un altro dubbio:

    volessi passare piu' dati tramite una url, come dovrei fare?
    separare ogni valore da "?" ?

    ad esempio volessi passare un ID e un SID tramite URL

    p.s.per le sessioni appunto devo passarmi il SID da una pagina all'altra per mantenere la sessione correttamente appunto?


    ciao

  10. #10
    la sessione nasce nel momento in cui esegui l'accesso tramita la login e muore nel momento in cui fai la logout...se per esempio avessi bisogno di conoscere il nome dell'amministratore (ottenuto per esempio dalla funzione precedente) in ogni pagina, basta che inserisco la variabile che contiene il nome in una variabile di sessione (Es. $_SESSION['nome]=$nomeadmin) e questa la inserisco nella pagina dove estrapolo il nome (la precedente per esempio). Dopo di chè in ogni pagina che mi servono le sessione e quindi anche accedere a questa variabile, scrivo il comando session_start(); e l'uso della $_SESSION['nome] è immediato...
    Infatti se tu su una nuova pagina volessi stampare a video il nome dell'admin faresti:

    <?php

    session_start();

    echo $_SESSION['nome];

    ?>

    Per quanto riguarda il passaggio delle variabili devi essere un pò più preciso,perchè non ho capito cosa vorresti fare, nel senso tu da una pagina vuoi che sei indirizzato ad un'altra ed in questa avere accesso alle variabili della pagina precedente?

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