Imapginazione dati

Ciao a tutti

premetto che sono un principiante.

Sto cercando di impaginare dei dati estratti dal db.

Lo schema html prevede una tabella a due colonne, nella prima colonna della prima riga inserisco la foto del prodotto, nella seconda colonna la foto del secondo prodotto; nella seconda riga prima colonna il nome del primo prodotto e nella seconda colonna il nome del secondo prodotto e così via.

Ora riesco a inserire le immagini, ma non so come fare per i testi.

Riporto di seguito ilcodice per le immagini:

<?php 
               if ($numCategory > 0) {
                  $i = 0;
                  for ($i; $i < $numCategory; $i++) {
                    echo ('num= ' . $i);
                    
                    // estraggo i dati dall'array
                     extract ($categoryList[$i]);
                     
                     if ($i % $categoriesPerRow == 0) {//COLONNA 1
                        echo '<tr>';                     
                        echo "<!--FOTO SX-->\r\n";
                         echo "<td class=\"tdFotoSxPrima\"><img src=\"$image\" width=\"168\" alt=\"$name\" /></td>
                <td width=\"1\" bgcolor=\"#CCCCCC\"><img src=\"img/0.gif\" height=\"1\" width=\"1\" /></td>\r\n";

                     if ($i + 1  == $numCategory) {//Chiude la riga
                        echo "<td class=\"tdFotoDxPrima\"></td>\r\n";
                        echo '</tr>';
                     }//chiude if
                                                                              
                     }//chiude if Colonna 1
                                                         
                  if ($i % $categoriesPerRow ==1) {//COLONNA 2
                     echo "<!--FOTO DX-->\r\n";
                     echo "<td class=\"tdFotoDxPrima\"><img src=\"$image\" width=\"168\" alt=\"$name\" /></td>\r\n";
                                                            
                  if ($i % $categoriesPerRow == $categoriesPerRow - 1) {//Chiude la riga
                     echo '</tr>';
                  }//chiude if
                  }//chiude if Colonna 2   
               }//chiude for

qui sotto dovrei inserire la riga del testo, ma non so come ciclarla per ottenere la corrispondenza tra immagine e testo

mi potete aiutare?

grazie mille

ciao

inviato 10 anni fa
vico
vico
1
X 0 X

Il codice che hai riportato non è sufficiente per poterti aiutare. Infatti non è mostrato come i dati vengano estratti dal DB ed in quali variabili vadano a finire.

Inoltre lo script prevede la possibilità di avere un numero variabile di categorie per riga, non semplicemente 2 come tu hai detto di volere.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Hai ragioni, in realtà il tutto è un po' più complesso è che ho crecato di semplificare...

Provo a spiegare meglio il tutto:

Sto realizzando un catalogo prodotti che prevede tre livelli di categoria e una scheda prodotto.

Per ogni categoria ho 3 img un nome e una descrizione.

La pagina su cui sto lavorando mostra il primo livello di categorie e le sottocategorie associate al primo livello. Qui la funzione che chiamo per estrarre i dati dal db e passarli alla pagina per la visualizzazione:

function getCategoryList($catId)
{

//$catId= 0; //assegnazione per test
            
   $sql = "SELECT cat_id, cat_parent_id, cat_liv, cat_name, cat_description, cat_image,    cat_image_grande, cat_image_grande_sec
        FROM tbl_category
      WHERE cat_parent_id = $catId
      ORDER BY cat_name";      
   
    $result =& dbQuery($sql);
    
    $cat = array();
    while ($row =& dbFetchAssoc($result)) {
      extract($row);

//Verifica se le immagini sono settate, in caso negativo inserisce segnaposto      
      if ($cat_image) {
         $cat_image = WEB_ROOT . 'images/category/' . $cat_image;
      } else {
         $cat_image = WEB_ROOT . 'images/no-image-small.png';
      }
      
      if ($cat_image_grande) {
         $cat_image_grande = WEB_ROOT . 'images/category/' . $cat_image_grande;
      } else {
         $cat_image_grande = WEB_ROOT . 'images/no-image-small.png';
      }
      
      if ($cat_image_grande_sec) {
         $cat_image_grande_sec = WEB_ROOT . 'images/category/' . $cat_image_grande_sec;
      } else {
         $cat_image_grande_sec = WEB_ROOT . 'images/no-image-small.png';
      }

//Inserisce dati in array da restituire      
      $cat[] = array('url'   => $_SERVER['PHP_SELF'] . '?c=' . $cat_id,
                     'image' => $cat_image,
                     'imageGrande' => $cat_image_grande,
                     'imageGrandeSec' => $cat_image_grande_sec,
                  'name'  => $cat_name,
                  'description'  => $cat_description,
                  'liv'  => $cat_liv);

    }
   
   return $cat;         
}

Qui di seguito il codice della pagina che deve mostrare i dati impaginati:

<?php
$catId= 0;//serve per il primo livello di categoria
$categoryList    = getCategoryList($catId);
$categoriesPerRow = 2;
$numCategory     = count($categoryList);

?>

<!------Spalla Destra------------------>   
      <div id="spallaDx">
         <h2><img src="img/hpprod_sceglicat.gif" height="16" width="120" alt="Scegli la categoria" /></h2>
         <!--Elenco categorie-->
         <table border="0" cellpadding="0" cellspacing="0">
            <tr>
                <td colspan="3" class="tblRiga"><img src="img/hpprod_lnbasetd.gif" height="21" width="351" /></td>
            </tr>
            <!--FOTO-->
            
            <?php 
               if ($numCategory > 0) {
                  $i = 0;
                  for ($i; $i < $numCategory; $i++) {
                    echo ('num= ' . $i);
                    
                    // estraggo i dati dall'array
                     extract ($categoryList[$i]);
                     
                     if ($i % $categoriesPerRow == 0) {//COLONNA 1
                        echo '<tr>';                     
                        echo "<!--FOTO SX-->\r\n";
                         echo "<td class=\"tdFotoSxPrima\"><img src=\"$image\" width=\"168\" alt=\"$name\" /></td>
                <td width=\"1\" bgcolor=\"#CCCCCC\"><img src=\"img/0.gif\" height=\"1\" width=\"1\" /></td>\r\n";

                     if ($i + 1  == $numCategory) {//Chiude la riga
                        echo "<td class=\"tdFotoDxPrima\"></td>\r\n";
                        echo '</tr>';
                     }//chiude if
                                                                              
                     }//chiude if Colonna 1
                                                         
                  if ($i % $categoriesPerRow ==1) {//COLONNA 2
                     echo "<!--FOTO DX-->\r\n";
                     echo "<td class=\"tdFotoDxPrima\"><img src=\"$image\" width=\"168\" alt=\"$name\" /></td>\r\n";
                                                            
                  if ($i % $categoriesPerRow == $categoriesPerRow - 1) {//Chiude la riga
                     echo '</tr>';
                  }//chiude if
                  }//chiude if Colonna 2                  
/*                  
//------------------------  <!--TESTI SX-->--------------------------
            echo '<tr>';
               echo '<td class="tdTestoSx">';
               echo '<dl>';
                  echo "<dt><a href=\"\">$name</a></dt>";
                  
                  $sCategoryList    = getCategoryList($catId);
                  $numSCategory     = count($sCategoryList);
                  echo ('num= ' . $numSCategory);
                  if ($numSCategory > 0) {
                  $is = 0;
                  for ($is; $is < $numSCategory; $is++) {
                    //echo ('num= ' . $is);
                    
                    // estraggo i dati dall'array
                     extract ($sCategoryList[$is]);
                  
                     echo "<dd><a href=\"\">$name</a></dd>";
                  }//chiude ciclio testi
                  }//chiude if testi
               echo "</dl></td>";
                 echo "<td width=\"1\" bgcolor=\"#CCCCCC\"><img src=\"img/0.gif\" height=\"1\" width=\"1\" /></td>";         
                  
//------------------   <!--TESTI DX--> -----------------------------------
               echo '<td class="tdTestoDx">';
               echo '<dl>';
                  echo "<dt><a href=\"\">$name</a></dt>";
                  
                  $sCategoryList    = getCategoryList($catId);
                  $numSCategory     = count($sCategoryList);
                  if ($numSCategory > 0) {
                  $is = 0;
                  for ($is; $is < $numSCategory; $is++) {
                    //echo ('num= ' . $is);
                    
                    // estraggo i dati dall'array
                     extract ($sCategoryList[$is]);
                  
                     echo "<dd><a href=\"\">$name</a></dd>";
                  }//chiude ciclio testi
                  }//chiude if testi
               echo "</dl></td></tr>";

                 echo "<!--LINEA DI CHIUSURA-->\r\n";
                
               echo "<tr><td class=\"tdRigaSx\"><img src=\"img/hpprod_lnbasetd.gif\" height=\"21\" width=\"168\" /></td>";
                 echo "<td width=\"1\" bgcolor=\"#CCCCCC\"><img src=\"img/0.gif\" height=\"1\" width=\"1\" /></td>";
                 echo "<td class=\"tdRigaDx\"><img src=\"img/hpprod_lnbasetd.gif\" height=\"21\" width=\"168\" /></td></tr>";
 */                  
               }//chiude for
               } else {
               ?>
                  <tr><td width="100%" align="center" valign="center">Nessuna categoria inserita</td></tr>
               <?php   
               }   
            ?>

La parte relativa ai testi è commentata in quanto non è posizionata correttamente, è il problema che non riesco a risolvere. Per chiarezza riporta il codice html senza php in modo che sia più semplice comprendere come dovrebbe risultare

<!------Spalla Destra------------------>   
      <div id="spallaDx">
         <h2><img src="img/hpprod_sceglicat.gif" height="16" width="120" alt="Scegli la categoria" /></h2>
         <!--Elenco categorie-->
         <table border="0" cellpadding="0" cellspacing="0">
            <tr>
                <td colspan="3" class="tblRiga"><img src="img/hpprod_lnbasetd.gif" height="21" width="351" /></td>
            </tr>
            <!--FOTO-->
            <tr>
                <td class="tdFotoSxPrima"><img src="img/hpprod_cat1.jpg" height="126" width="143" align="Cornici Confezionate" /></td>
                <td width="1" bgcolor="#CCCCCC"><img src="img/0.gif" height="1" width="1" /></td>
                <td class="tdFotoDxPrima"><img src="img/hpprod_cat2.jpg" height="116" width="152" align="Aste" /></td>
             </tr>
            <!--TESTI-->
            <tr>
                <td class="tdTestoSx">
               <dl>
                  <dt><a href="">Cornici Confezionate</a></dt>
                     <dd><a href="">Cornici per stampe</a></dd>
                     <dd><a href="">Cornici Tecniche</a></dd>
                     <dd><a href="">Cornici per tele e vuote</a></dd>
                     <dd><a href="">Cornici Vuote</a></dd>
                     <dd><a href="">Specchiere</a></dd>
                     <dd><a href="">Articoli Complementari</a></dd>
               </dl></td>
                <td width="1" bgcolor="#CCCCCC"><img src="img/0.gif" height="1" width="1" /></td>
                <td class="tdTestoDx">
               <dl>
                  <dt><a href="">Aste</a></dt>
                     <dd><a href="">Baroque</a></dd>
                     <dd><a href="">Classic</a></dd>
                     <dd><a href="">Country Style</a></dd>
                     <dd><a href="">Trendy</a></dd></td>
             </tr>
            <!--LINEA DI CHIUSURA-->
            <tr>
                <td class="tdRigaSx"><img src="img/hpprod_lnbasetd.gif" height="21" width="168" /></td>
                <td width="1" bgcolor="#CCCCCC"><img src="img/0.gif" height="1" width="1" /></td>
                <td class="tdRigaDx"><img src="img/hpprod_lnbasetd.gif" height="21" width="168" /></td>
             </tr>
            <!--FOTO-->
            <tr>
                <td class="tdFotoSx"><img src="img/hpprod_cat1.jpg" height="126" width="143" align="Cornici Confezionate" /></td>
                <td width="1" bgcolor="#CCCCCC"><img src="img/0.gif" height="1" width="1" /></td>
                <td class="tdFotoDx"><img src="img/hpprod_cat2.jpg" height="116" width="152" align="Aste" /></td>
             </tr>
            <!--TESTI-->
            <tr>
                <td class="tdTestoSx">
               <dl>
                  <dt><a href="">Articoli per la Fotografia</a></dt>
                     <dd><a href="">Cornici</a></dd>
                     <dd><a href="">Cornici Tecniche</a></dd>
                     <dd><a href="">Cornici per tele e vuote</a></dd>
                     <dd><a href="">Cornici Vuote</a></dd>
                     <dd><a href="">Specchiere</a></dd>
                     <dd><a href="">Articoli Complementari</a></dd>
               </dl></td>
                <td width="1" bgcolor="#CCCCCC"><img src="img/0.gif" height="1" width="1" /></td>
                <td class="tdTestoDx">
               <dl>
                  <dt><a href="">Esposizioni</a></dt>
                     <dd><a href="">Baroque</a></dd>
               </dl></td>
             </tr>
            <!--LINEA DI CHIUSURA-->
            <tr>
                <td class="tdRigaSx"><img src="img/hpprod_lnbasetd.gif" height="21" width="168" /></td>
                <td width="1" bgcolor="#CCCCCC"><img src="img/0.gif" height="1" width="1" /></td>
                <td class="tdRigaDx"><img src="img/hpprod_lnbasetd.gif" height="21" width="168" /></td>
             </tr>
            <!--FOTO-->
            <tr>
                <td class="tdFotoSx"><img src="img/hpprod_cat1.jpg" height="126" width="143" align="Cornici Confezionate" /></td>
                <td width="1" bgcolor="#CCCCCC"><img src="img/0.gif" height="1" width="1" /></td>
                <td class="tdFotoDx"><img src="img/hpprod_cat2.jpg" height="116" width="152" align="Aste" /></td>
             </tr>
            <!--TESTI-->
            <tr>
                <td class="tdTestoSx">
               <dl>
                  <dt><a href="">Articoli per la Fotografia</a></dt>
                     <dd><a href="">Cornici</a></dd>
                     <dd><a href="">Cornici Tecniche</a></dd>
                     <dd><a href="">Cornici per tele e vuote</a></dd>
                     <dd><a href="">Cornici Vuote</a></dd>
                     <dd><a href="">Specchiere</a></dd>
                     <dd><a href="">Articoli Complementari</a></dd>
               </dl></td>
                <td width="1" bgcolor="#CCCCCC"><img src="img/0.gif" height="1" width="1" /></td>
                <td class="tdTestoDx">
               <dl>
                  <dt><a href="">Esposizioni</a></dt>
                     <dd><a href="">Baroque</a></dd>
               </dl></td>
             </tr>
        </table><br />     
      </div>
   </div>

Spero che così il tutto sia più chiaro e che tu abbia la possibilità di aiutarmi, in ogni caso grazie

ciao

risposto 10 anni fa
vico
vico
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda