- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- problema mysql_fetch_array
-
problema mysql_fetch_array
ciao ragazzi come faccio ad avere nel vettore
$riga = mysql_fetch_array($result1); tutti gli id lista
cioè vi spiego meglio, io ho
idlista idutente dataora 162 522 2006-11-26 18:11:21 163 521 2006-11-26 18:09:22 162 520 2006-11-26 18:09:03
allora ad ogni idlista corrispondono uno o piu idutente, pero non riesco ad ottenere tutti gli idutente.se provo mettendo $riga = array ('162','163'); riesci a avere tutti gli id utente, però io li ho messi a mano per prova.
dove sbaglio?
<?php //Includo i file per la connessione //e per la verifica Utente require_once('connessione.php'); require_once('verificalogin.php'); ?> <html> <head> </head> <body> <?php if(!isset($_SESSION['utenteM'])){ echo 'errore'; }else{ $user=$_SESSION['utenteM'][0]; } $query1 = "SELECT * FROM utente WHERE username = '$user'"; $result1 = mysql_query($query1) or die("Errore nella query1:".mysql_error()); $row = mysql_fetch_array($result1); $idutente = $row['idutente']; //echo $idutente ; $query1 = "SELECT * FROM definisce WHERE idutente = '$idutente'"; $result1 = mysql_query($query1) or die("Errore nella query1:".mysql_error()); $numerorighe = mysql_num_rows($result1); //echo $numerorighe; for($x=0; $x<$numerorighe; $x++){ $riga = mysql_fetch_array($result1); //$riga = array ('162','163'); foreach ($riga as $value) { $query2 = "SELECT * FROM include WHERE idlista = '$value'"; $result1 = mysql_query($query2) or die("Errore nella query2:".mysql_error()); $numerorighe = mysql_num_rows($result1); //echo "<br>$numerorighe"; for($x=0; $x<=$numerorighe; $x++){ $resrow = mysql_fetch_row($result1); $idutente=$resrow['1']; echo "<br>$idutente"; } }} ?> </body> </html>
-
ragazzi aiuto. come faccio?
-
for($x=0; $x<$numerorighe; $x++){ $riga = mysql_fetch_array($result1); //$riga = array ('162','163');
dove lo chiudi?
In fondo?ad occhio potresti mettere al suo posto:
$riga=array(); for($x=0; $x<$numerorighe; $x++){ $riga[] = mysql_fetch_array($result1); } ```e togliere una } da }} ?> prima della fine della pagina. :ciauz:
-
non fare mai select * a meno di casi molto particolari (tabelle con un numero di campi elevato e veramente ti servono tutti).
la risoluzione dell'asterisco comporta una elaborazione ulteriore da parte del database il quale prima deve interrogare la tabella per recuperare la lista di campi e poi restituire il set di dati ordinati per campo.
cerca di privilegiare la formula select .
se ti serve solo l'id come nel caso da te indicato è un totale spreco di risorse e quindi di rallentamento del server e sito chiedere al database che ti restituisca tutto.
un'alternativa alla soluzioen proposta da massy è:
$riga=array(); while($row=mysql_fetch_array($rs)) $riga[]=$row['id'];
questa alternativa ti consente di risparmiare un'elaborazione a php dove chiedi che ti venga restituito il numero di record.
sono piccole e grandi ottimizzazioni che devono essere valutate mentre scrivi il codice altrimenti, se trascurate, ti ritroverai in mano un'applicazione lenta e di difficile ottimizzazione a posteriori.
-
ragazzi grazie mille x l'aiuto e x i consigli x migliorare il codice.
vorrei chiedervi una cosa :ma scivere:
$riga = array(); è la stessa cose ti $riga= mysql_feth_array() ?
e poi vorrei sapere ma la funzione print_r xche a me non funziona?
ciao e grazie