Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [PHP][MySQL] Query Vuota, no errori sintassi e MySQL

    Grazie in anticipo a chi risponderà,
    sto scrivendo un sito usando php-MySQL e jQuery, tutto bene, tutte le query funzionano apparte una.

    In pratica dovrei ricavare da una tabella di nome foto l'URL della foto di un determinato utente, ma nonostante sia l'utente che la foto esistano, e nonostante tutti le variabili in ingresso alla mia funzione siano valide, l'utente è come se non avesse foto, e dalle varie prove che ho fatto mi pare che la query non restituisca alcun valore.
    Ma se la stessa identica query la prendo e la do a phpMyAdmin, il valore viene restituito in modo esatto.

    Codice PHP:
    function ViewPhoto($link, $email, $principale, $grandezza){
        $query_photo=GetPhoto($link, $email, $principale);
        if( $foto = mysql_fetch_array($query_photo) ){
            ?>[img]../user-img/<?php echo[/img]" /><?php
        }else{
            ?>[img]../user-img/no-photo.jpg[/img]<?php
        }
    }

    function GetPhoto(
    $link$email$principale){
        if( 
    $principale == 1 ){
            
    $query = @mysql_query("SELECT FROM foto WHERE email='$email' AND principale='1'", $link);
        }else{
            
    $query = @mysql_query("SELECT FROM foto WHERE email='$email' ORDER BY ordine ASC", $link);
        }
        mysql_close();
        if(
    $query)
            return 
    $query;
    }
    Qualche buon' anima può darmi una mano?

  2. #2
    La prima cosa da fare e' vedere com'e' ESATTAMENTE la stringa della query:

    Codice PHP:
    echo "SELECT * FROM foto WHERE email='$email' ORDER BY ordine ASC"
    e poi in fase di sviluppo non dovresti sopprimere la visualizzazione degli errori, ma anzi abilitarla per ogni suggerimento possibile.

  3. #3
    Già controllato, la stringa è corretta, ho soppresso la visualizzazione degli errori MySQL perché ho già provato con il classico mysql_error(); ma mi risponde NULL, non ci sono errori!

    E infatti in phpmyadmin la query restituisce il valore corretto.

    Non so dove sbattere la testa

  4. #4
    Se scrivi l'email direttamente nel codice al posto della variabile funziona?

  5. #5
    No, non funziona, ma d'altronde sono sicuro che tutte le variabili sono corrette, apparte la variabile $link che non ho controllato, anche se non credo ci sia bisogno, in tutte le altre funzioni riesce a ricevere dati dal DB

  6. #6
    Grazie dei consigli, ma purtroppo avevo già controllato e quindi sono sempre lì, provo a ripostare il codice, magari qualcuno avrà voglia di aiutarmi.

    Il tutto lo sto provando in locale con una lamp, tutte le altre query del sito funzionano, questa è l'unica che non restituisce nè valori nè errori ( mysql_error() )

    Vorrei visualizzare la carta di un utente, con foto e nome, uso 3 funzioni.

    Funzione Carta, visualizza un div con dentro la foto dell'utente e sotto il nome
    Codice PHP:
    function Card($profile, $count){
      <div id="<?php echo"$profile[id]?>" class="card grid_2">
        <a href="#">
          <?php
            ViewPhoto
    $link$profile['email'], '1''tmb');
            echo
    "$profile[nome]";
          
    ?>
        </a>
      </div>
            
      <?php if( $count%== ){ ?><div class="clear"></div><?php }

     }
    Funzione Visualizza Foto, richiama una funzione che fa una query al database per conoscere l'indirizzo URL della foto e se presente, visualizza la foto richiesta, altrimenti mostrerà un'immagine che ci dice che l'utente non ha foto

    Codice PHP:
    function ViewPhoto($link, $email, $princ, $grand){
        $query_photo=GetPhoto($link, $email, $princ);
        if( $foto = mysql_fetch_array($query_photo) ){
            ?>[img]../user-img/<?php echo[/img]" /><?php
        }else{
            ?>[img]../user-img/no-photo.jpg[/img]<?php
        }
    }

    Funzione prendi indirizzo della foto, fa una richiesta al database in base ai parametri di input che sono: la connessione a MySQL, l'indirizzo e-mail dell'utente e la selezione o meno della foto "da vetrina" dell'utente
    Codice PHP:
    function GetPhoto($link$email$princ){
        if( 
    $princ == ){
            
    $query = @mysql_query("SELECT * FROM foto WHERE email='$email' AND principale='1'"$link);
        }else{
            
    $query = @mysql_query("SELECT * FROM foto WHERE email='$email' ORDER BY ordine ASC"$link);
        }
        
    mysql_close();
        if(
    $query)
            return 
    $query;

    Va tutto bene, è solo la query di quest'ultima funzione che ha problemi, non restituisce nessun valore e se provo con:
    Codice PHP:
    $query = @mysql_query("SELECT * FROM foto WHERE email='$email' ORDER BY ordine ASC"$link) or die( mysql_error() ); 
    Mi visualizza un bel div vuoto, senza foto, senza errori...

  7. #7
    Codice PHP:
    function GetPhoto($link$email$princ){
        if( 
    $princ == ){
            
    $query = @mysql_query("SELECT * FROM foto WHERE email='$email' AND principale='1'"$link);
        }else{
            
    $query = @mysql_query("SELECT * FROM foto WHERE email='$email' ORDER BY ordine ASC"$link);
        }
        
    mysql_close();
        if(
    $query)
            return 
    $query;

    direi che qui, in questa funzione, fai un errore madornale. Verifichi che $query non sia FALSE e fai il return del resource id # ma prima del return chiudi la connessione a mysql e quindi perdi il buffer di riferimento del result set.

    ma anche la prima funzione che hai postato mi suona malissimo....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Si hai ragione, ho fatto un errorone lì, ma ne ho fatto un altro ancora più grande; all'interno della funzione Card non ho definito in input la connessione al database, per forza non poteva funzionare, ora va, sistemato anche quell'errore della chiusura MySQL (anche se funzionava comunque se chiudevo la connessione prima)

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.