- Home
- Categorie
- Coding e Sistemistica
- Coding
- problema mysql_fetch_array
- 
							
							
							
							
							
problema mysql_fetch_arrayciao 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 idlista  idutente  dataora   162     522     2006-11-26 18:11:21 162     522     2006-11-26 18:11:21   163     521     2006-11-26 18:09:22 163     521     2006-11-26 18:09:22   162     520     2006-11-26 18:09:03 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