PDA

View Full Version : [PHP][MySQL] Query Vuota, no errori sintassi e MySQL


nailon_bo
04-05-2010, 18:55
Grazie in anticipo a chi risponderā,
sto scrivendo un sito usando php-MySQL e jQuery.

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

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%5 == 0 ){ ?><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


function ViewPhoto($link, $email, $princ, $grand){
$query_photo=GetPhoto($link, $email, $princ);
if( $foto = mysql_fetch_array($query_photo) ){
?><img src="../user-img/<?php echo"$grand/$foto[url]"; ?>" /><?php
}else{
?><img src="../user-img/no-photo.jpg" /><?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

function GetPhoto($link, $email, $princ){
if( $princ == 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;
}


Va tutto bene, č solo la query di quest'ultima funzione che ha problemi, non restituisce nessun valore e se provo con:
$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...

KiNgOfChAoS
05-05-2010, 10:06
Grazie in anticipo a chi risponderā,
sto scrivendo un sito usando php-MySQL e jQuery.

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

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%5 == 0 ){ ?><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


function ViewPhoto($link, $email, $princ, $grand){
$query_photo=GetPhoto($link, $email, $princ);
if( $foto = mysql_fetch_array($query_photo) ){
?><img src="../user-img/<?php echo"$grand/$foto[url]"; ?>" /><?php
}else{
?><img src="../user-img/no-photo.jpg" /><?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

function GetPhoto($link, $email, $princ){
if( $princ == 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;
}


Va tutto bene, č solo la query di quest'ultima funzione che ha problemi, non restituisce nessun valore e se provo con:
$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...

Credo che nel blocco della funziona Card tu abbia dimenticato la chiusura del PHP prima del div.

La funzione ViewPhoto viene chiamata passando come terzo parametro una stringa ('1'), mentre in GetPhoto quel parametro viene confrontato con un intero (1); il PHP č molto flessibile su certe cose, ma per evitare errori io prenderei un decisione a priori... :D

L'output corrisponde a un div vuoto, senza foto ma sopratutto senza errori principalmente perchč hai anteposto l'at alle chiamate delle funzioni di MySQL.
Prova ad eliminarli e vedi se ti da qualche errore. Inoltre, prova a vedere, nella funzione GetPhoto, il contenuto della variabile $query prima di fare l'if su di essa. Fai anche una prova sostituendo mysql_fetch_array con mysql_fetch_assoc o mysql_fetch_row (in questo caso l'indice non sarā il nome del campo ma il numero della colonna).


Vedi un po' e facci sapere. Se non arrivi a una soluzione allora vediamo cos'altro provare. :D