PHP: mysql_fetch_assoc() postato il 24/05/2007 20:30:59 nel forum programmazione, gdrcd, open source, hosting
Buona sera a tutti. Ringrazio anticipatamente per le risposte che gentilmente vorrete formirmi.
Non riesco ad utilizzare questa maledetta funzione.
mysql_fetch_assoc()
Il codice in cui compare questa funzione è il seguente, generalizzato.
$conn=@mysql_connect('localhost','root','password') or die ("Messaggio di errore.");
mysql_select_db('miosito', $conn);
$query=mysql_query("SELECT * FROM utenti WHERE nomeutente='$nomeutente' passutente='$passutente'");
$result=mysql_fetch_assoc($query);
Considerate che le variabili $nomeutente e $passutente sono state settate da un form con metodo POST.
Ma non è quello il problema. Quando compilo il form, che in pratica vuol essere un form di login, il risultato è il seguente.
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in [PERCORSO] on line [LINEA]
La linea dove mi segnala l'errore è proprio quella dove compare la funzione. Per qualche dannato motivo sembra che l'argomento fornito alla funzione non sia valido.
Qualcuno può aiutarmi, per favore?
Pagine → 1
25/05/2007 00:22:40
Ho provato, ma sfortunatamente fa lo stesso errore... Sinceramente, non capisco... Non mi sembra che la sintassi del codice sia scorretta o incompleta. Eppure continua a darmi lo stesso errore.
Ho potuto intuire dall'errore che non considera valida la query, o meglio, non considera validi i risultati della query...
Ma, vi prego, ditemi di più..
25/05/2007 09:04:39
L'errore è - come segnala il php - nella query...
devi modificare:
$query=mysql_query("SELECT * FROM utenti WHERE nomeutente='$nomeutente' AND passutente='$passutente'");
sempre premetendo che il resto della query sia giusta
25/05/2007 14:58:17
Niente da fare. Ho utilizzato echo con le variabili prima e dopo la query, e vengono tutte visualizzate senza problemi. Non è un problema di variabili a quanto pare.
Per quanto riguarda la query, avevo già pensato che potesse essere la mancanza di AND a dare problemi, ma anche la sua aggiunta non ha cambiato le cose.
L'errore è sempre lo stesso.. Non so proprio cosa fare. Sono fermo a questo punto.
A essere sincero, non è la prima volta che trovo problemi con mysql_fetch_array o assoc o quant'altro. Ho scritto altre pagine utilizzando questa funzione, e talvolta la esegue correttamente. Poi continuo a scrivere il codice, modifico qualcosa e di colpo prende a non funzionare più.. Ma non capisco COSA non fa eseguire la funzione...
25/05/2007 15:11:00
Va bene, allora facciamo così. Vi posto direttamente tutto il file, così magari avete le idee più chiare sul problema.
<html>
<head>
<title>Menu</title>
</head>
<body bgcolor="#99CCFF" background="Immagini/SF02.jpg" bgproperties="fixed" link="blue" alink="blue" vlink="blue">
<font face="Verdana" size="3" color="black">
<font face="Verdana" size="1" color="black">
<p>
<b>
<?
if(isset($_POST['accedi'])){
$nomeimm=$_POST['nomeutente'];
$passimm=$_POST['passutente'];
echo "$nomeimm";
echo "$passimm";
$connessione=@mysql_connect('localhost','cifitadmin','3009') or die("Tentativo di connessione al server MySQL fallito.");
mysql_select_db('cif_italia',$connessione);
$qlogin=mysql_query("SELECT * FROM utenti WHERE nomeutente='$nomeimm' AND passutente='$passimm'");
$res=mysql_fetch_assoc($qlogin);
echo "Login effettuato.<br>Utente: ";
echo $res['nome'];
echo " ";
echo $res['cognome'];
echo ".";
} else {
echo <<< EOD
Login non effettuato. Vai alla procedura di <a href="Login.php" target="Pagina">Login</a> o alla <a href="Registrazione.php" target="Pagina">Registrazione</a>.
EOD;
}
?>
</b>
</p>
</font>
</body>
</html>
25/05/2007 15:36:21
scusa ma quando fai la query non puoi aggiungere la riga così:
$query = mysql_query("SELECT etcetc") or die(mysql_error()); così capisci se c'è un errore nella query?
25/05/2007 16:05:06
Ho cercato di capire l'errore.. Ho inserito la funzione die sull stringa della query, e in effetti mi restituisce il testo di die, quindi c'è un errore nella query. Ho provato anche a semplificare la query tanto per fare una verifica. Risultato?
Mi restituisce il testo die anche con una semplicissima query del genere.
$var=mysql_query("SELECT * FROM utenti");
A quanto pare è per questo che mysql_fetch_assoc non funziona.. Ora, la domanda è.. come cavolo si setta la dannatissima query? Sbaglio la forma?
O magari, comincio a pensare, c'è qualche impostazione in php.ini o comunque qualche altra configurazione non settata?
25/05/2007 16:23:38
Ecco qui, posto l'ultimo stato dello codice. Lo script viene interrotto a causa della query.
<html>
<head>
<title>Menu</title>
</head>
<body bgcolor="#99CCFF" background="Immagini/SF02.jpg" bgproperties="fixed" link="blue" alink="blue" vlink="blue">
<font face="Verdana" size="3" color="black">
<font face="Verdana" size="1" color="black">
<p>
<b>
<?
if(isset($_POST['accedi'])){
$nomeimm=$_POST['nomeutente'];
$passimm=$_POST['passutente'];
echo "$nomeimm";
echo "$passimm";
$connessione=@mysql_connect('localhost','cifitadmin','3009') or die("Tentativo di connessione al server MySQL fallito.");
mysql_select_db('cif_italia',$connessione) or die("Errore nella selezione del database!");
$qlogin=mysql_query("SELECT * FROM utenti") or die("Errore nella query");
$res=mysql_fetch_assoc($qlogin);
echo "Login effettuato.<br>Utente: ";
echo $res['nome'];
echo " ";
echo $res['cognome'];
echo ".";
} else {
echo <<< EOD
Login non effettuato. Vai alla procedura di <a href="Login.php" target="Pagina">Login</a> o alla <a href="Registrazione.php" target="Pagina">Registrazione</a>.
EOD;
}
?>
</b>
</p>
</font>
</body>
</html>
25/05/2007 16:42:06
Il problema è stato finalmente risolto grazie alla funzione mysql_error() inserita nella funzione die() dopo la query. Il risultato?
Ho scoperto che a causa di un mio errore precedente, non avevo garantito i privilegi all'utente per effettuare la query al server.
Grazie a tutti per l'aiuto.
25/05/2007 16:43:08
e per fortuna che te l'avevo detto 1 ora fa qui..
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Lineage II: Sblocca il tesoro del drago!
Enlisted: Cambiamento del software anti-cheat
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Le Cronache di Alderon: Record demografico a Alderon
I dati del generatore di rank sono stati aggiornati!
can_can ha risposto alla discussione: Peregrine GDR
staffsc ha aperto un annuncio di ricerca: Sun City ricerca Beta Tester
Immortals Revenge → Il Signore Oscuro Zeus aprì il vaso di Pandora, liberando innumerevoli demoni dall'abisso nel mondo e facendolo sprofondare nel caos il mondo...
Il gestore di Le Cronache di Alderon ha risposto alla recensione di darkblade
Saint or Sinner?: fine beta test!
Planethos GdR: Casati disponibili
Blood is the new Black: Club scolastici
Road to Hamartia → Sei capitato qui per caso o è stato l'incessante battito ad attirarti nelle spire di Atonement?
fooso ha recensito Le Cronache di Alderon
Immortals Revenge: Quattro nuovissimi mount!
Enlisted: Manutenzione del negozio
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Interviste - Le nostre interviste ai gestori dei giochi! Scopriamo assieme nuovi mondi direttamente da chi li ha creati!
Role Players Community - Intervista al gestore di Role Players Community il servizio gratuito di creazione di GdR Play By Chat!
Vulkania - Recensione del gioco di ruolo online ambientato in un misterioso mondo fantasy
Giochi Fantascienza - Lista completa dei giochi di ruolo online fantascientifici
Anello del Drago - Spunta la versione italiana dell'MMORPG "Anello del Drago", nuovi Cosplay all'orizzonte!
Gli Utenti di Gdr-Online - Articolo semiserio sugli utenti che si possono trovare su GDR-online suddivisi per tipologia!