Visualizzazione dei risultati da 1 a 8 su 8

Discussione: problema variabile...

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    27

    problema variabile...

    usando questo piccolo script mi dovrebbe restituire l'ID in base ad una clausola where.
    Ma questo non avviene, mi da problemi con la '@' presente nella variabile, se quando dichiaro la variabile la inserisco tra gli apici l'echo mi restituisce
    $result = "Resource id #3"
    Potreste aiutarmi a trovare l'errore?
    Grazie.
    Codice PHP:
    <?php
     
    /*Config file */
    include('dati.php'); 

    //variabili
       
    $email giorgio@yopmail.com;
     
    //connessione database
    $link=mysql_connect("$databaseHostName","$databaseUserName","$databaseUserPassword")
           or die (
    "Non riesco a connettermi a $databaseHostName");
    mysql_select_db ($databaseName$link)
           or die (
    "Non riesco a selezionare il db $databaseName<br>");
    //selezionamo ID personale per riportarlo nelle tabelle che lo richiedono
    $ID_PERS "SELECT ID FROM personale WHERE (cognome = '$email')";
    $result mysql_query($ID_PERS) or die (mysql_error());
    echo 
    '$result = "' $result '"'
    mysql_close($link);
    ?>
    ps: capisco che per molti di voi sono banalità, ma io sto imparando ad usare questo linguaggio, vi ringrazio per la vostra pazienza.

  2. #2
    Quote Originariamente inviata da z3bmckey Visualizza il messaggio
    ...se quando dichiaro la variabile la inserisco tra gli apici...
    Vorresti forse dichiarare una variabile stringa senza racchiuderla tra apici?
    E' ovvio che ti dia un errore!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,452
    Quote Originariamente inviata da z3bmckey Visualizza il messaggio
    Codice PHP:
    //...
    $result mysql_query($ID_PERS) or die (mysql_error());
    echo 
    '$result = "' $result '"'
    //... 
    mysql_query() restituisce un result set, non una stringa, per questo ottieni "Resource id 3", devi prima passare il risultato alla funzione mysql_fetch_array(), così

    Codice PHP:
    $result mysql_query($ID_PERS) or die (mysql_error());

    $result mysql_fetch_array($result);

    echo 
    'ID = ' $result['ID']; 
    Comunque considera che le funzioni mysql_ sono deprecate e presto non funzioneranno più, usa le funzioni mysqli_ oppure PDO.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    27
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    mysql_query() restituisce un result set, non una stringa, per questo ottieni "Resource id 3", devi prima passare il risultato alla funzione mysql_fetch_array(), così

    Codice PHP:
    $result mysql_query($ID_PERS) or die (mysql_error());

    $result mysql_fetch_array($result);

    echo 
    'ID = ' $result['ID']; 
    Comunque considera che le funzioni mysql_ sono deprecate e presto non funzioneranno più, usa le funzioni mysqli_ oppure PDO.
    Ho fatto come mi suggerivi:
    Codice PHP:
    <?php
     
    /*Config file */
    include('dati.php'); 

    //variabili
       
    $email 'giorgio@yopmail.com';
     
    //connessione database
    $link=mysql_connect("$databaseHostName","$databaseUserName","$databaseUserPassword")
           or die (
    "Non riesco a connettermi a $databaseHostName");
    mysql_select_db ($databaseName$link)
           or die (
    "Non riesco a selezionare il db $databaseName<br>");
    //selezionamo ID personale per riportarlo nelle tabelle che lo richiedono
    $ID_PERS "SELECT ID FROM personale WHERE cognome = '$email'";
    $result mysql_query($ID_PERS) or die (mysql_error());
    $result mysql_fetch_array($result);
    echo 
    'ID = ' $result['ID'];  

    mysql_close($link);
    ?>

    ma mi restituisce " ID= " senza il risultato della query

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,452
    Allora hai problemi con la query, sicuro che ci sia un record con quell'indirizzo email nella tabella?
    Magari hai commesso un errore digitandolo.

    Modifica così (in pratica devi aggiungere 2 righe):
    $ID_PERS = "SELECT ID FROM personale WHERE cognome = '$email'";
    echo $ID_PERS;
    exit;

    Poi copia la query che appare sulla pagina, incollala in phpmyadmin ed eseguila, vedi se ti restituisce un risultato oppure no.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    27
    se io passo la query al database direttamente funziona
    codice:
    mysql> SELECT ID FROM personale WHERE email = 'giorgio@yopmail.com';
    +----+
    | ID |
    +----+
    | 34 |
    +----+
    1 row in set (0.00 sec)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    27
    adesso che l'ho ricopiato ho visto l'errore "CHE CAPRA"
    dopo il WHERE va email e non cognome

    funziona grazie

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,452
    Ah... sbagli la query

    $ID_PERS = "SELECT ID FROM personale WHERE cognome = '$email'";

    deve essere email, non cognome!

    Edit: appunto

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