Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Prelevare valore di una riga i-esima e di uno specificio attributo dal risultato della query

    Cerco di spiegarmi meglio, io ho il seguente codice:
    codice HTML:
    $result = mysql_query("SELECT * FROM ecc"); //la parte sopra è ok
    $righe = mysql_num_rows($result); 
    
    while($row= mysql_fetch_assoc($result))
    {  
            $a[] = $row['a'];
            $b[] = $row['b'];
            $c[] = $row['c'];
        while ($i<$righe){
    
        //come faccio qui ad assegnare ad una nuova variabile $new il valore riferito alla riga i-esima,
    ed       //una colonna specifica (come 'a') del $result?
     // vorrei fare $new=$row[i,'a']...ma come farlo?
    
        }
    }
    
    Ultima modifica di blastoise; 17-10-2014 a 10:08

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    non puoi farlo come lo hai pensato, credo ti convenga mettere tutte le righe del resulset in un nuovo array multidimensionale e fare poi le elaborazioni con quello

  3. #3
    Quote Originariamente inviata da clasku Visualizza il messaggio
    non puoi farlo come lo hai pensato, credo ti convenga mettere tutte le righe del resulset in un nuovo array multidimensionale e fare poi le elaborazioni con quello
    Ho provato a fare, senza successo:
    $new=$a[$i];

    Provo a trovare un'altro modo. Ma perchè l'istruzione di sopra non funziona? ho verificato che non mi inserisce solo l'elemento i-esimo ma tutto il vettore.
    Mi puoi spiegare brevemente come usare l'array multidimensionale?
    Ultima modifica di blastoise; 17-10-2014 a 11:12

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    allora...
    le funzioni mysql*_fetch_* restituiscono array di vario tipo per ogni riga del resultset con tutti i valori individuati da una chiave
    in pratica, la funzione prende una riga del risultato e la rende un array, poi cancella questo array e passa alla seconda riga e fa lo stesso. Dato che non ha "memoria", non puoi saltare di riga in riga

    se invece fai una cosa tipo
    Codice PHP:
    $risultati = array();
    while(
    $rowmysql_fetch_assoc($result))
    {  
            
    $risultati[] = $row;

    dovresti ottenere un array che per ogni sua chiave contiene un sottoarray composto dai campi e valori estratti dalla tua tabella

    se vuoi provare, usa un codice tipo questo e guarda le differenze

    Codice PHP:
    echo "var_dump per ogni riga restituita dalla query\n<pre>\n";
    $risultati = array();
    while(
    $rowmysql_fetch_assoc($result))
    {  
            
    $risultati[] = $row;
            
    var_dump($row); // mostra i dati del record
    }
    echo 
    "</pre>\nRisultati uniti in un nuovo array\n<pre>\n";
    var_dump($risultati); // mostra tutti i dati uniti
    echo "\n</pre>"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.