Visualizzazione risultati 1 fino 8 di 8

Discussione: Richiamo riga query php

  1. #1
    dungeonline non è connesso Neofita
    Data registrazione
    10-02-2012
    Messaggi
    6

    Post Richiamo riga query php

    Devo richiamare e stampare dei valori assegnati ad una riga di una tabella.
    Io in pratica possiedo il nome di un utente che ha effettuato il login, e devo estrarre dalla tabella gli altri dati, come email e e cognome, da visualizzare sulla sua pagina "profilo".

    Normalmente usavo:
    Codice:
    $sql='SELECT * FROM nome_tabella WHERE nome LIKE $nome';
    $result=mysql_query($sql,$db_name);
    $cognome=mysql_result($result,$x,"nome");
    echo $cognome;
    dove $nome e $cognome è il nome e cognome della persona che ha effettuato il login, e $x è una variabile di controllo uguale a 0.

    ho provato a sostituire LIKE con = ma nulla cambia. Ho provato a sostituire * con il campo richiesto
    Codice:
    $sql='SELECT (cognome) FROM nome_tabella WHERE nome LIKE $nome';
    Ho provato anche con:
    Codice:
    $result=mysql_query($sql,$db_name);
    $row = mysql_fetch_row($result);
    echo $row[0];
    ma con scarsi risultati.

    Ma adesso non mi spiego perché non mi stampa sullo schermo alcunché... come mai

    grazie in anticipo

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Codice PHP:
    $sql='SELECT * FROM nome_tabella WHERE nome LIKE $nome';
    Racchiudendo la stringa fra apici singoli ( '....' ) le variabili non vengono sostituite, e quindi la tua query
    rimane senza un nome da cercare. Usa i doppi apici, e per sicurezza fai l'escape dei valori:

    Codice PHP:
    $nome = mysql_real_escape_string($nome);
    $sql = "SELECT * FROM `nome_tabella` WHERE `nome` LIKE '{$nome}'";
    Aiuta a volte stampare le query a schermo, nonchè controllare mysql_error() in caso di errore.
    Ultima modifica di dreadnaut : 14-02-2012 alle ore 01.34.37

  3. #3
    dungeonline non è connesso Neofita
    Data registrazione
    10-02-2012
    Messaggi
    6

    Post Re:

    Ho provato anche con quello che mi hai detto...
    forse non mi estrae perché il nome ce l'ho fra i cookie
    Codice:
    $nome=$_COOKIE['nome_cookie']
    $sql = "SELECT * FROM `nome_tabella` WHERE `nome` LIKE '{$nome}'";
    ho provato anche a immettere direttamente il coockie, al posto della variabile, ma non capisco perché se chiedo di stampare il cookie me lo fa vedere il nome (cioè il contenuto del cookie), ma se ci estraggo dalla query non mi fa vedere niente...
    Codice:
    $sql = "SELECT * FROM `nome_tabella` WHERE `nome` LIKE '{$_COOKIE['nome_cookie']}'";
    ho provato anche a creare un test sulla tabella e a sostituire il nome manualmente, ma non mi estrae gli altri dati ugualmente...
    grazie ancora
    Ultima modifica di dungeonline : 14-02-2012 alle ore 02.11.39

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Occhio che LIKE è usato per confronti con pattern. Se devi confrontare due nomi direttamente ti basta `nome` = '{$nome}' .

  5. #5
    dungeonline non è connesso Neofita
    Data registrazione
    10-02-2012
    Messaggi
    6

    Post Re

    Risolto!!!
    Codice PHP:
    $query = "SELECT * FROM nome_tabella WHERE nome='$nome'";
    $result = mysql_query($query) or die(mysql_error());
    //entra nel while solo se esiste una riga
    while($riga = mysql_fetch_array($result)){
    $nome = stripslashes($riga['nome']);
    $cognome = stripslashes($riga['cognome']);
    $anni = stripslashes($riga['anni']);
    echo(
    $nome." ".$cognome." ".$anni."<br/>");
    Il problema non era tanto nella selezione della query ma nella richiesta di stampa

    grazie della disponibilità
    Ultima modifica di dreadnaut : 14-02-2012 alle ore 16.20.37 Motivo: + tag [php]

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Di niente.

    C'è un motivo particolare per tutti quegli stripslashes?

  7. #7
    dungeonline non è connesso Neofita
    Data registrazione
    10-02-2012
    Messaggi
    6

    Predefinito

    devono raccogliere l'informazione... se c'è un modo per abbreviare ben venga magari se me lo posti
    grazie ancora

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Non so cosa voglia dire "devono raccogliere l'informazione"... stripslashes rimuove gli slash che proteggono alcuni caratteri speciali in una stringa; ma a meno che tu non li abbia aggiunti due volte, non ci dovrebbero essere slash di troppo nel database.

Tags for this Thread

Regole di scrittura

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