• User

    Problema con mysql_fetch_assoc

    Salve a tutti, ho avuto un problema con mysql_fetch_assoc. Mi dà questo warning

    Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\bacheca\viewProfilo.php on line 9

    e non riesco proprio a capire quale sia il problema.
    Il codice è questo qui:

    [PHP]
    <?php
    $pageTitle="Visualizza profilo";
    include("include/header.inc");
    $idUntente=$_GET['id'];
    include("include/connessioneDB.inc");
    $result=mysql_query("SELECT c.idUtente, a.idUtente, a.titolo, u.nome, u.cognome, u.email, u.telefono
    FROM utenti as u, annunci as a
    WHERE a.idUtente=.$idUtente AND u.idUtente=".$idUtente);
    if($row=mysql_fetch_assoc($result)){ //<--line 9

    ?>

    [/PHP]

    qualcuno potrebbe aiutarmi a capire dov'è l'errore?
    Vi ringrazio anticipatamente! 🙂


  • ModSenior

    Prova a stampare la query e vediamo cosa ti da...
    Io credo ch l'errore sia dopo al where.... dove stai tentanto di usare una variabile php preceduta dal punto...


  • User

    Si hai ragione, la query mi dà
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND u.idUtente=".$idUtente' at line 3

    Solo che ora che ho tolto il punto prima di $idUtente mi dà quest'altro errore

    Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\bacheca\viewProfilo.php on line 8

    Cos'è? Ho iniziato da poco e sono abbastanza inesperta... :():


  • User

    E' che ho usato lo stesso identico codice in quest'altro punto e non mi ha dato nessun errore, non capisco che differenza ci sia.

    [PHP]<?php
    $pageTitle="Dettaglio annuncio";
    include("include/header.inc");
    $user=chris;
    $idAnnuncio=$_GET['id'];
    include("include/connessioneDB.inc");
    $result=mysql_query("SELECT idAnnuncio, c.idCategoria, c.nomeCat, titolo, descrizione, immagine, dataIns, u.idUtente, email, nome, cognome, indirizzo, telefono
    FROM utenti as u, annunci as a, categorie as c
    WHERE u.idUtente=a.idUtente AND a.idCategoria=c.idCategoria AND a.idAnnuncio=".$idAnnuncio);
    if($row=mysql_fetch_assoc($result)){
    [/PHP]
    qui non mi dava nessun tipo di problema.


  • ModSenior

    Vedrai che insieme ce la faremo, magari con un altro utente, ma ce la faremo. 🙂

    Proviamo cosi.

    $result=mysql_query("SELECT c.idUtente, a.idUtente, a.titolo, u.nome, u.cognome, u.email, u.telefono FROM utenti as u, annunci as a WHERE a.idUtente=".$idUtente." AND u.idUtente=".$idUtente);

    Purtroppo io PHP è da un pò che non lo uso, quindi scusami eh eh... 😄


  • User

    Tranquillo, è un pò che ci sto sbattendo sù e non ho nessuno a cui chiedere aiuto, quindi apprezzo molto qualsiasi sforzo! 🙂
    Comunque adesso il codice è questo qui:
    [PHP]<?php
    $pageTitle="Visualizza profilo";
    include("include/header.inc");
    $idUntente=$_GET['id'];
    include("include/connessioneDB.inc");
    $result=mysql_query("SELECT c.idUtente, a.idUtente, a.titolo, u.nome, u.cognome, u.email, u.telefono FROM utenti as u, annunci as a WHERE a.idUtente=".$idUtente." AND u.idUtente=".$idUtente)
    if($row=mysql_fetch_assoc($result)){ //<--line 7

    ?>[/PHP]
    e mi dà questo errore
    Parse error: syntax error, unexpected T_IF in C:\xampp\htdocs\bacheca\viewProfilo.php on line 7


  • ModSenior

    Beh di sta dicendo che manca la chiusura della parentesi graffa.
    Immagino che tu stia mettendo quel controllo per eseguire un azione solo se effetivamente ci sono degli utenti che rispecchiano quei requisiti.
    Quindi devi chiudere la parentesi ed eseguire al suo interno il codice che desideri.


  • User

    Si ma la parentesi graffa l'ho chiusa... Sicuramente c'è qualche errore stupidissimo, ti faccio direttamente vedere tutto il codice 🙂
    [PHP]<?php
    $pageTitle="Visualizza profilo";
    include("include/header.inc");
    $idUntente=$_GET['id'];
    include("include/connessioneDB.inc");
    $result=mysql_query("SELECT c.idUtente, a.idUtente, a.titolo, u.nome, u.cognome, u.email, u.telefono FROM utenti as u, annunci as a WHERE a.idUtente=".$idUtente." AND u.idUtente=".$idUtente)
    if($row=mysql_fetch_assoc($result)){

    ?>

    <table>
    <tr><td>Nome</td>
    <td></td><?php echo($row['nome']);?></tr>

    <tr><td>Cognome</td>
    <td></td><?php echo($row['cognome']);?></tr>
    
    <tr><td>Email</td>
    <td></td><?php echo($row['email']);?></tr>
    
    <tr><td>Numero di telefono</td>
    <td></td><?php echo($row['telefono']);?></tr>
    

    // <tr><td>Annunci pubblicati</td>
    // <td></td><?php echo($row['']);?></tr>
    </table>

    <?php
    } else{
    echo("<h2>Nessun profilo trovato</h2>");
    }

    include("include/footer.inc");

    ?>[/PHP]


  • ModSenior

    Allora andiamo per passi cosi anche chi arriverà ci aiuterà... 🙂
    Stampami il valore della seguente variabile...

    $idUntente=$_GET['id'];

    echo "===>".$idUntente."<===";

    Ha un valore valido?


  • User

    No cavolo... mi dà sempre 1 come id anche quando non è 1! Da cosa può dipendere?


  • ModSenior

    Beh almeno uno è un valore eh eh...
    Presumo che questo valore sia ricevuto da un form...
    Il form viene inviato tramite GET o tramite POST?


  • User

    Oddio non lo so! O.O Cioè io non ho fatto nessun form con cui invio l'id, perchè quella è la pagina del profilo utente che si dovrebbe aprire con un link, quindi non c'è nessun form... o forse è quello in cui faccio il login? Scusami se sono così impedita, ho le idee super confuse perchè ho iniziato da pochissimo!


  • ModSenior

    Guardando i campi dovrebbe essere quello di login.
    Sopra nell'indirizzo vedi una parte dell'indirizzo con ID? Spero di no... 🙂


  • User

    no no 🙂
    comunque in quello di login il form viene inviato con POST


  • ModSenior

    Bene. 🙂
    Tralasciamo per il momento allora questo problema per tornarci dopo...
    Il problema di prima per caso non è perchè alla fine ti eri dimenticata il ;?


  • User

    Ehm si dopo la query mancava un ; 😄

    ma adesso mi dà questo qui

    **Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\bacheca\viewProfilo.php on line 7
    **
    dove la linea 7 è sempre l'if


  • ModSenior

    Forse perchè non hai righe? Mmm..
    Se metti questo controllo?

    [PHP]if (mysql_num_rows($result) == 0)
    {
    echo "Non esiste nessun utente";
    }
    else
    {
    echo "Esiste l'utente";
    }[/PHP]


  • User

    Mi dà sempre lo stesso errore, cioè Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\bacheca\viewProfilo.php on line 8 questa volta alla riga
    [PHP]if (mysql_num_rows($result) == 0) [/PHP]
    e mi stampa anche che non esiste nessun utente!


  • ModSenior

    Quello è normale perchè va in modo sbagliato nell'if...
    Proviamo a fare una cosa.

    $query="SELECT c.idUtente, a.idUtente, a.titolo, u.nome, u.cognome, u.email, u.telefono FROM utenti as u, annunci as a WHERE a.idUtente='".$idUtente."' AND u.idUtente='".$idUtente."';

    echo $query;

    $result=mysql_query($query);

    Che valore ha query?
    Ho provato a mettere tra apici il valore id anche se in teoria se è numerico non dovrebbe aver problemi...


  • User

    mmm... mi dà questo errore:
    **
    Parse error: syntax error, unexpected $end in C:\xampp\htdocs\bacheca\viewProfilo2.php on line 14**
    cioè dopo l'ultimo ?>

    [PHP]<?php
    $pageTitle="Visualizza profilo";
    include("include/header.inc");
    $idUntente=$_GET['id'];
    include("include/connessioneDB.inc");

    $query="SELECT c.idUtente, a.idUtente, a.titolo, u.nome, u.cognome, u.email, u.telefono FROM utenti as u, annunci as a WHERE a.idUtente='".$idUtente."' AND u.idUtente='".$idUtente."';

    echo $query;

    $result=mysql_query($query);

    ?>[/PHP]