Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361

    conoscere la quantità dei campi di una query

    ciao
    vorrei sapere come ottenere, in php , il numero di field di una query

    conoscete percaso un buon manuale online per le funzioni php con i db (mysql)
    ho cercato in internet, ma generalmente non consentono la ricerca, e ti trovi a dover sfogliare mille link di funzioni e va a finire che ci si perde.

    grazie in anticipo

  2. #2
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    grazie mille.
    Se a qualcuno potesse servire, ciò che cercavo era

    mysql_num_fields($result)

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    ok, ho implementato il mio codice per visualizzare i dati nella tabella.
    ma volevo omettere gli id
    questo è il codice:
    Codice PHP:
    <?

    $sql
    ="select * from " $_SESSION['tabella'] . " ;";   #scrivere stringa sql

    $result=mysql_query($sql); #eseguo la query
    if (!$result) {
       die(
    'Invalid query: ' mysql_error()); #controllo che la query non generi errori
       
    }
    $num_rows mysql_num_rows($result);



    ?>

    <table width="441" border="0" cellspacing="1" cellpadding="1">
      <tr>
      <? 
      $i 
    1;
      while (
    $i mysql_num_fields($result)) {
       
    $meta mysql_fetch_field($result);
       
    ?>
       <td  bgcolor="#BBC8EA"> <? echo $meta->name ?>  </td>
       <?
       $i
    ++;
       }
      
    ?>
        <td  bgcolor="#BBC8EA"> </td>
        <td  bgcolor="#BBC8EA"> </td>
      </tr>

    <? 
    if ($num_rows == 0) {
       
    ?>
       <tr>
        <td bgcolor="#F3F4FC"></td>
        <td bgcolor="#F3F4FC"></td>
        <td bgcolor="#F3F4FC"></td>
        </tr>
        <?
     
    } else {
        
    $colore='#E6E9F8';
        while (
    $riga mysql_fetch_row($result)) { #ricorsione per tutti i record restituiti dalla query
           
    if ($colore == '#F3F4FC') { 
              
    $colore '#E6E9F8';
            } else {
              
    $colore '#F3F4FC';
           }
           
    $i 1;
           while (
    $i mysql_num_fields($result)) {
              
    $meta mysql_fetch_field($result);
           
    ?>
              <td bgcolor="<? echo $colore ?>"><? echo $riga[$i]?></td>
           <?
              $i
    ++;
           }
          
    ?>

         <td bgcolor="<? echo $colore ?>">
              <div align="center"><a href="modifica.php?righa=<? echo $riga[0]?>"> Modifica<a/></div>
         </td>
         <td bgcolor="<? echo $colore ?>">
            <div align="center"><a href="elimina.php?righa=<? echo $riga[0]?>"> Elimina<a/></div>
         </td>
        </tr> 
       <?
        
    }
    }
    ?>
    </table>   



    </p>
    <form id="form2" name="form2" method="post" action="inserimento\a_<? echo $_SESSION['tabella'?>.php">


    <table width="287" border="0" cellspacing="1" cellpadding="1">
      <tr>
        <td width="190" bgcolor="#BBC8EA"> <? echo $_SESSION['tabella'?> </td>
        <td width="90"></td>
      </tr>
      <tr>
        <td bgcolor="#F3F4FC">
          <input name="textfield" type="text" size="31" maxlength="31" />    </td>
        <td>
          <div align="center">
            <input type="submit" name="Submit2" value="Aggiungi" />
            </div></td>
      </tr>
    </table>
    però nella prima parte, in cui creo l'indice della tabella leggendo i nomi dei field, ho settato $i = 1
    ma l'unico effetto è che mi scrive un campo in meno (l'ultimo) ma il nome del primo è appunto l'id che invece volevo omettere.

    come posso fare?

  5. #5


    invece di


    while ($i < mysql_num_fields($result))


    deve essere

    while ($i <= mysql_num_fields($result))



  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    99
    un'altra soluzione è creare una query con i campi interessati elencati.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    ok allora
    gli id non li voglio visualizzare.
    Ma comunque mi servono, e li tengo a disposizione.

    il <= mi recupera l'ultimo valore che stavo perdendo, ma il mio problema è :

    Come faccio a non visualizzare il nome del primo campo della query?

    Codice PHP:
      $i = 1;
      while ($i <= mysql_num_fields($result)) {
       $meta = mysql_fetch_field($result);
       ?>
       <td  bgcolor="#BBC8EA"> <? echo $meta->name ?>  </td>
       <?
       $i
    ++;
       }
      
    ?>
    devo skippare il primo campo.
    avevo provato a mettere 1 nella variabile $i, ma ero quasi sicuro che nn avrebbe cambiato nulla.
    non riesco a capire come si incrementa l'indice del mysql_fetch_field .
    vorrei farlo partire dal secondo, ma nn so come fare.
    l'unica cosa che mi viene in mente, è tipo di usare il comando $meta->name "a vuoto", visto che in corrispondenza di esso pare passare al field successivo, ma è brutto come metodo.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    fatto , ho letto meglio la sintassi e si può indicare l'indice:P
    esattamente così.
    Codice PHP:
      <? 
      $i 
    1;
      while (
    $i mysql_num_fields($result)) {
       
    $meta mysql_fetch_field($result$i);
       
    ?>
       <td  bgcolor="#BBC8EA"> <? echo $meta->name ?>  </td>
       <?
       $i
    ++;
       }
      
    ?>
    il maggiorne uguale invece non serve con il while.

    grazie comunque.
    ciao

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 © 2025 vBulletin Solutions, Inc. All rights reserved.