mysql_fetch_assoc

efisio

Utente Attivo
5 Ago 2008
95
0
0
Buogiorno a tutti,
stamattina mi sono accorto che quando inserisco nome utente e password, utilizzando i seguenti browser, opera, firefox, safari, va tutto liscio.
Quando utilizzo il fantomatico windows mi dà il seguente errore: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource,...
Windows oltre a creare impicci con i css e quant'altro li crea anche con il php?
Non ci credo:incazz:
 
È sicuramente un errore tuo, perché PHP viene processato dal server, e non dal browser. Al browser il codice PHP neanche arriva, per lui è sempre e comunque HTML. Posta il codice dello script e vediamo. Comunque ti consiglio di non usare la vecchissima e caotica libreria mysql. Usa PDO, che oltre ad essere orientato agli oggetti è anche molto più efficiente.
 
Utilizzi le sessioni nel tuo script? Quale versione di IE da problemi?
 
Buon pomeriggio
la query che mi dà problemi è la seguente:
...
$query = "Select * from ".$_SESSION['discipline']." where id = ".$_SESSION['id']."";
};
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
$nome = $row['nome'];
$_SESSION['nome'] = $nome;
mysql_close ($db);

La versione IE 6 che mi dà l'errore, ma come è possibile?
Mi piacerebbe capire perchè questo browser mi dà dei problemi, quando non dovrebbe "leggere" il php?

Grazie per l'aiuto
efisio
 
Perchè non posti il codice completo? Cos'è quel .""; alla fine della query? e la graffa chiusa col ; che non serve a niente? Sarà parte di un if? sei sicuro che ci entri e che quindi la variabile $query sia valorizzata? $_SESSION['discipline'] e $_SESSION['id'] sono valorizzate? Mille dubbi, mille quesiti.
 
vi posto il codice php per essere più chiaro.

<?php
include("dbnuovi.php");


$db = @mysql_connect($host, $user, $pass);
@mysql_select_db($database, $db);
session_start();
if(isset($_SESSION['username'])&& isset($_SESSION['password']) && isset($_SESSION['id']) && isset($_SESSION['discipline']))
{
$query = "Select * from ".$_SESSION['discipline']." where id = ".$_SESSION['id']."";
};
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
$nome = $row['nome'];
$_SESSION['nome'] = $nome;
mysql_close ($db);

?>
 
Ho provato ad inserire un else ma niente di nuovo sotto il sole...
forse perchè stò facendo qualche errore ma non sò prorpio dove.:-(
<?php
include("dbnuovi.php");


$db = @mysql_connect($host, $user, $pass);
@mysql_select_db($database, $db);
session_start();
if(isset($_SESSION['username'])&& isset($_SESSION['password']) && isset($_SESSION['id']) && isset($_SESSION['discipline']))
{
$query = "Select * from ".$_SESSION['discipline']." where id = ".$_SESSION['id']."";
}
else { echo " dati non disponibili <br><br>"} ;
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
$nome = $row['nome'];
$_SESSION['nome'] = $nome;
mysql_close ($db);

?>
 
Scusami Satifal ma non capisco a quale query ti riferisci.
Io ho inviato il contenuto completo del file contenente l'errore, cosi per IE, ma forse dovrei aggiungere una query?
 
PHP:
$result = mysql_query($query) or die(mysql_error());
vedi se ti restituisce un errore
 
Buongiorno Eliox,

stò effettuando un test cross browser ed effettuando la modifica che mi hai detto funziona tutto regolarmente su IE5, Firefox, Opera e Safari.
Invece sulla versione IE 6 e successive mi restituisce il seguente errore: Query was empty.

Ma come è possibile?
 
Riproviamoci ancora, ce la fai a loggare la query con un echo, un var_dump o quello che preferisci?

PHP:
echo $query;

PHP:
var_dump($query);
 

Discussioni simili