• User Attivo

    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

    image idlista idutente dataora image image 162 522 2006-11-26 18:11:21 image image 163 521 2006-11-26 18:09:22 image image 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>
    
    

  • User Attivo

    ragazzi aiuto. come faccio?


  • Moderatore
    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:

  • Super User

    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.


  • User Attivo

    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