Php + MySql result null

acer1629

Nuovo Utente
4 Feb 2011
9
0
0
Ciao ragazzi
sto sclerando da due giorni su un problema di query su MySql ...
Ho il seguente codice :

Codice:
$id_img = (string) "'+nomefile+'";
$id_img_str = (string) "'{$id_img}'";
$con = mysql_connect('localhost','xxxxx','xxxxx');

if (!$con){
	die('Could not connect: ' . mysql_error());
}

mysql_select_db('mio_database', $con);

$query = "SELECT campo FROM tabella WHERE id={$id_img_str}";
$result=mysql_query($query); 
$row=mysql_fetch_row($result);

define('doodle_title',$row['campo']);

Facendo un echo di $query mi restituisce la query nel seguente modo :
SELECT campo FROM tabella WHERE id='xxxxxxxx.jpg'
essendo id un campo varchar ... mi sembra corretto.
Perchè facendo un echo di $result ... nn mi stampa nulla ?
Cosa non gli piace nell'esecuzione della query ?
Grazie mille !
 
ciao
intanto non fare un echo di $result, ma un var_dump
var_dump($result) se ti restituisce bool false, vuol dire che probabilmente c'è un errore nella query stringa, se ti ritorna resuorce vuol dire che la query è andata a buon fine e se poi non ti da i risultati vuol dire che per quel WHERE non ci sono record
se il var_dump di $result ti da resouce, fai anche un
PHP:
//....
$query = "SELECT campo FROM tabella WHERE id={$id_img_str}";
$result=mysql_query($query); 
var_dump($result);
$row=mysql_fetch_row($result);
var_dump($row);
//.....
poi posta i risultati dei var dump
 
Facendo solo var_dump($result); la pagina rimane bianca non esce nulla a video ... ma nn da errore di compilazione visto che al di sotto mi compare la barra di navigazione del mio sito. :(
 
ciao
strano, sembrerebbe che l'istruzione var_dump non venga eseguita.
sei sicura che nel codice (è tutto quello che hai postato?) non ci siano degli if che facciano saltare l'istruzione?
 
Ciao, per tentativi sono arrivato a questo punto :

Mi ritrovo che la query restituisce qualcosa, ma nn riesco a tirare fuori il COSA.

Codice:
$query = "SELECT campo1,campo2,campo3 FROM tabella WHERE id=''".$id_img_str."''"; 
$result = mysql_query($query);

if (!$result) {
   die('Query non valida: ' . mysql_error());
} 

$row=mysql_fetch_row($result);

$varcampo1=$row['campo1'];
$varcampo2=$row['campo2'];          			
$varcampo3=$row['campo3'];

echo $varcampo1;
echo $varcampo2;
echo $varcampo3;

Ho provato anche con :

Codice:
$varcampo1=$row[0];
$varcampo2=$row[1];
$varcampo3=$row[2];

Sempre tutto null. :(
 
ciao
puoi postare la tabella (nomi e tipo campi)?


p.s.
non usare tag codice quando scrivi php usa il tag php (simbolo più a dx di # e dopo <>)

dimenticavo
come detto usa il vardump al posto dell'echo, ti riporta anche il tipo di dato
 
Ultima modifica:
Giusto per curiosità, se esegui:
PHP:
mysql_num_rows($result);
cosa ti restituisce?
 
La tabella ha questa struttura :

Collation Null Predefinito
id varchar(25) utf8_general_ci NO null
campo1 varchar(25) utf8_general_ci NO Default
campo2 varchar(25) utf8_general_ci NO Default
campo3 timestamp null NO CURRENT_TIMESTAMP


$returned_rows = mysql_num_rows($result); Mi da 0 ...
... ma a sto punto, perchè non mi stampa Query non valida ??
 
PHP:
$result = mysql_query($query) or die (mysql_error());
Ma se le cose stanno così sembrerebbe (ad occhio) che la quesry sia giusta, potrebbero essere i record che mancano.
 
ciao
guarda, forse trovato, che nella query hai messo l'apice due volte

$query = "SELECT campo1,campo2,campo3 FROM tabella WHERE id=''".$id_img_str."''";
la query dovrebbe essere

$query = "SELECT campo1,campo2,campo3 FROM tabella WHERE id='".$id_img_str."'";

@eliox
come mai il var dump non si vede?
 
Provando in quel modo ... la query mi va in errore.

Ad ogni modo ho fatto un test ... popolando una semplice variabile con una stringa e inserendola nella query ... funziona, mi recupera i valori dei campi e me li stampa a video.
Per cui ... è il modo in cui popolo sta variabile maledetta che è sbagliata.


Cosi funziona :
PHP:
$id_img = "nomefile";
$id_img_str = $id_img;

$query = "SELECT campo1,campo1,campo1 FROM tabella WHERE id='".$id_img_str."'";

Cosi NON funziona :

PHP:
nomefile = imgName[elementNumber]+'.jpg';";			
define('id_img',"nomefile");
$id_img = (string) "'+nomefile+'";
$id_img_str = (string) "{$id_img}";

... nomefile è una variabile JavaScript ...
 
ciao
credo proprio di sì
non puoi passare variabili js (lato client) a php (lato server).
il contario è possibile mettendo echo $variabile
 
Cercherò di trovare un'altra soluzione :(
Magari provando a collegare javascript a mysql memorizzandomi in tabella le informazioni utili da recuperare poi tramite php ...
 

Discussioni simili