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

    usare while solo per estrarre un dato

    ciao,

    come si fa, dopo una query di SELECT estrarre i dati dalla tabella e mettere solo uno di questi dati in un ciclo while e il resto no?

    ad esempio:
    mi serve estrarre il nome di un marchio, immagine, e le categorie di appartenenza.
    Per la categoria e solo questa, devo fare un ciclo while.

    quindi:
    $sql = "SELECT nome, img, categoria...etc FROM tabella.....";

    $result = mysql_query($sql);
    while($row = mysql_fetch_assoc($result)) {
    extract($row);

    echo $nome;
    echo $img ;
    echo $categoria;
    }

    in questo modo però metto tutto nel while....
    io voglio avere solo $categoria

    mi spiego?

    grazie

  2. #2
    No, non ti spieghi per niente VVoVe:

    Quello che ho capito è che vuoi solo $categoria ma mi sembra un po' troppo banale dirti di fare solo echo $categoria, probabilmente vuoi fare qualcosa d'altro, ma non si capisce
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    ma scusa se fai..

    $sql = "SELECT * FROM tabella.....";

    $result = mysql_query($sql);

    while($row = mysql_fetch_array($result)) {

    echo $row['categoria'];
    }


    prova

  4. #4
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Io farei cosi:

    Codice PHP:

    $sql 
    "SELECT * FROM tabella.....";

    $result mysql_query($sql);

    while(
    $row mysql_fetch_assoc($result)) {

    echo 
    $row['categoria'];


    Con i sogni possiamo conoscere il futuro...

  5. #5
    Codice PHP:
    $sql "SELECT * FROM tabella.....";  $result mysql_query($sql);  while($row mysql_fetch_array($result)) {  echo $row['categoria']; } 
    ok, così metto nel while $row['categoria'] e questo va bene.

    Però io devo estrarre anche

    $nome;
    $img ;

    e questi non li voglio nel while, perchè $categoria, ha più di un dato da estrarre dalla tabella ( query con join tra varie tabelle), mentre per gli altri ne ho uno solo.

    se metto nel while $row = mysql_fetch_array($result), poi come faccio a usare di nuovo mysql_fetch_array($result) per estrarre $nome; e $img; ?

    non so se mi spiego, spero di si!

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2005
    residenza
    http://www.okkioalprezzo.com/it/
    Messaggi
    206
    le altre due righe dove le devi stampare? posta anche il codice html dove vuoi mettere il while e dove vuoi stampare le le altre due righe..

  7. #7
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Farai cosi per stampare gli altri due campi:


    [PHP]
    $sql = "SELECT * FROM tabella.....";

    $result = mysql_query($sql);

    while($row = mysql_fetch_assoc($result)) {

    echo $row['categoria'] . '
    ' . $row['img'] . '
    ' . $row['nome'];

    }

    Ciao!
    Con i sogni possiamo conoscere il futuro...

  8. #8
    vediamo di fare un esempio:

    devo estrarre quante categorie sono associate ad un marchio, marchio che ha anche un immagine e ovviamente un nome il tutto stampato all'interno di una tabella html, quindi

    <table>
    <tr>
    <td>nome marchio: ($marchio)</td>
    <td>categoria/e di appartenenza: while($categorie)</td>
    <td>img marchio: ($img)</td>
    </tr>
    </table>

    se inserisco tutto nel while

    $sql = "SELECT * FROM tabella.....";

    $result = mysql_query($sql);

    while($row = mysql_fetch_assoc($result)) {

    echo $row['categoria'] . '
    ' . $row['img'] . '
    ' . $row['nome'];

    }

    mi stampa una tabella con ripetuti i nomi del marchio/immagini quante sono le categorie...mi spiego?
    mentre io voglio che mi stampi nel while il numero di categorie e per 1 marchio e 1 immagine...
    ritornando alla domanda iniziale: è possibile fare un ciclo while solo per $categorie e stampare il nome marchio e immagine una sola volta?

    potrebbe essere che la query non fa quello che vorrei oppure il DB non è progettato bene, ma questo è un'altro discorso, nel senso che se con php riesco a ottenere quello che mi serve, ok, altrimenti trovo un altra strada

    cmq questo è il codice:

    che fatica....
    Codice PHP:
    $sql = "SELECT DISTINCT(cat_name), img_thumbnail, img_name,  i.id_accessorio,i.cat_id FROM  tbl_category AS c
    JOIN tbl_id_item AS i 
    ON i.cat_id = c.cat_id 
    JOIN tbl_marchi AS m 
    ON m.id_accessorio = i.id_accessorio
    ORDER BY img_name ASC"; 

    $result     = dbQuery(getPagingQuery($sql, $rowsPerPage)); 
    $pagingLink = getPagingLink($sql, $rowsPerPage, $queryString);  $categoryList = buildCategoryOptions($catId);  ?>  
    <div style="text-align:center;margin:auto"> 
    <form action="index.php?view=add_category" method="post"  name="frmListProduct" id="frmListProduct">  
    <table class="tabella">
    <tr>
    <th>Nome Marchio</th>
    <th>Categoria</th>
    <th>Immagine</th>
    <th>Modifica</th>
    <th>Cancella</th>
    </tr>

       <?php 
    $parentId 
    0

    if (
    dbNumRows($result) > 0) {     
    $i 0;      
    while(
    $row dbFetchAssoc($result)) {         
    extract($row);          
    if (
    $img_thumbnail) {             
    $img_thumbnail WEB_ROOT 'images/product/' $img_thumbnail;         
    } else {             
    $img_thumbnail WEB_ROOT 'images/no-image-small.gif';         }
    if (
    $i%2) {             
    $class 'row1';         
    } else {             
    $class 'row2';         
    }          
    $i += 1?>  
    <tr class="<?php echo $class?>">    
    <td class="invio"><?php echo $img_name?></td>    
    <td class="invio"><?php echo $cat_name?></td>    
    <td class="invio">[img]<?php echo $img_thumbnail?>[/img]</td>    
    <td class="invio"><a href="javascript:modifyMarchio(<?php echo $id_accessorio?>
    <?php echo $cat_id?>);">Modifica</a></td>    <td class="invio">[url="javascript:deleteCatMarchio(<?php echo $id_accessorio?><?php echo $cat_id?>);"]Elimina[/url]</td>  </tr>
    anche qui, tutto è nel while come avete proposto voi, la modifica che vorrei fare è quella della domanda....si può fare o no?

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    forse dico una stupidaggine, ma se fai un GROUP BY in modo che la select ti raggruppi già lei i marchi?

  10. #10
    non credo sia questo il problema.. il marchio è sempre 1, sono le categorie che possono essere più di una
    il problema è che

    while($row = mysql_fetch_assoc($result))

    mi estrae tutta la riga e quindi non ci scappo..per quel che ne so io

    dovrei fare penso un pastrocchio per rimediare un mio errore di veduta generale su cosa voglio che faccia tutta sta cosa....
    adesso devo fare un bel respiro e vedere cosa posso fare per rimediare...


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.