- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Problema con mysql_num_rows
-
Problema con mysql_num_rows
Ciao a tutti. Sono nuovo di qui e colgo l'occasione di farvi gli auguri di Buona Pasqua. Passo subito al mio problema. Io vorrei ottenere il valore del campo 'ID' dell'ultimo record inserito in una tabella my sql; quindi dopo che ho creato la connesione scrivo questo:
$query = "SELECT * FROM files2";
$result = mysql_query ($query);
$num = mysql_num_rows ($result);
$i = 0;
while ($info = mysql_fetch_row ($result)){
if($i == $num){
echo $info[0]; //info[0] corrisponde al campo ID
}
$i++;
}Ora se lo lascio così non entra mai nell'if; mentre se al posto di $i mettessi manualmente il valore che corrisponde all'ultima riga inserita (chessò $num == 24) il frammento funziona correttamente.. Dove sbaglio? Sicuramente è un errore del cacchio, ma è tutto il giorno che programmo e mi si incrociano gli occhi...
-
O se no se avete altre proposte su come agire sono ben accette... Mi affido a voi.. Grazie a tutti!
-
Per ottenere l'id + alto inserito é sufficiente:
select id from tabella order by id desc limit 1
-
Ciao ho fatto come mi hai detto:
mysql_connect ($myhost,$myuser,$mypwd);
mysql_select_db($mydb);$query = "SELECT ID FROM files2 ORDER BY ID desc limit 1"; $result = mysql_query ($query); echo $result; mysql_close();
Mi stampa a video questo risultato: Resource id #29, che significa? Scusa ma è da poco che ho iniziato a studiare MySQL e sono un pò newbie..
-
mysql_query ritorna la risorsa che poi va letta con mysql_fetch...
Fai così:
mysql_connect ($myhost,$myuser,$mypwd); mysql_select_db($mydb); $query = "SELECT ID FROM files2 ORDER BY ID desc limit 1"; $result = mysql_query ($query); $record = mysql_fetch_assoc($result); // DENTRO RECORD HO TUTTI I CAMPI DELLA SELECT // IN QUESTO CASO SOLO ID $id = $record['ID']; echo $id; mysql_close();
-
Ok sei un grande funziona perfettamente... Grazie ancora e buone feste..
-
Ora però ho un altro problema... non so neanche io se è il caso di aprire una nuova discussione.. Allora io ho una pagina che funziona con il get a cui gli voglio passare due parametri, ovvero $sessione e $data, in modo che mi vada a trovare il record univoco di una tabella identificato appunto univocamente dalla coppia sessione-data. Sessione è ottenuto con la funzione session_id(), data è calolata con la funzione date('U'); la query che faccio dopo essermi connesso è la seguente:
$query = "SELECT * FROM files2 WHERE data=".$_GET['data']." AND nomecasuale=".$_GET['sessione']; $result = mysql_query ($query); $info = mysql_fetch_row ($result);
solo che sql mi da errore dicendomi: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in..
Allora ho provato a semplificare non passando la coppia session e data, ma solo l'ID anchesso univoco ma ben poco sicuro da passare con il get.. E così facendo funziona:$query = "SELECT * FROM files2 WHERE ID=".$_GET['id']; $result = mysql_query ($query); $info = mysql_fetch_row ($result);
Solo che io non vorrei usare l'ID ma vorrei che mi funzionasse con la coppia sessione/data.. Mi potete aiutare? Grazie...[/code]
-
In questi casi consiglio sempre di fare un echo $query; subito dopo aver creato la stringa di interrogazione. Poi si vede cosa c'é scritto e magari si prova a copiaincollare direttamente come comando del dB. Se c'è qualche errore lo si vede subito!
-
Hai ragione; non avevo voglia di fare un echo perchè pensavo che la query fosse giusta.. Invece mi ero dimenticato gli apici nei valori di session... Ore spese a cercare l'errore per niente...