Autor Zpráva
tomas3333
Profil
Taham z databazy udaje. Z tych udajov sa chystam postavit tabulku. Problem je, ze jeden riadok v databaze obsahuje data pre 2 riadky tabulky. Aky je teda najidealnejsi sposob postavit takuto tabulku? Mna napadlo take riesenie, ze budem davat riadky do pola, nieco ako

while() {
   pole[$row] .= '<td>xyz</td>';
   pole[$row+1] .= '<td>abc</td>';
}

echo "<tr>".implode('</tr><tr>', $pole)."</tr>";

To vsak nie je najlepsie, lebo by som riadkom potreboval pridelit rozlicne triedy.
tiso
Profil
while(...) {
  echo '<tr><td>bunky</td><td>pre</td><td>prvý<td><td>riadok</td></tr>';
  echo '<tr><td>bunky</td><td>pre</td><td>druhý<td><td>riadok</td></tr>';
}
tomas3333
Profil
to nepojde, musim predsa z db. vybrati tie udaje, tzn. 1 riadok v datab. = 2 bunky pod sebou. takto by som mohol robit jednobunkovy riadok
tiso
Profil
tomas3333 - ako sa volajú stĺpce tabuľky?
tomas3333
Profil
cat_plain, file_name
tiso
Profil
Takže chceš dať 2 bunky do 2 riadkov tabuľky?
while($row=mysql_fetch_assoc($result)) {
  echo '<tr><td>'.$row['cat_plain'].'</td></tr>';
  echo '<tr><td>'.$row['file_name'].'</td></tr>';
}
tomas3333
Profil
ano, toto by bolo jednoduche, ale ja tam potrebujem mat viac buniek vedla seba, to hovorim od zaciatku :)
tomas3333
Profil
tak ak by niekoho zaujimalo, ako som to vyriesil ja nakoniec, tak tu (dolezita) cast kodu:

      $i = 0;
      $row = 0;
      $row_arr = Array();

       while($array = dbarray($select_cats)) {
         if($i == $cols) {
             $row += 2;
             $i    = 0;
         }

           $row_arr[$row][]   = "<td><a href='".PLUGIN_SELF.$array['cat_id']."'><img src='".PLUGIN_IMAGES."dir_closed_icon.jpg'></a></td>";
           $row_arr[$row+1][] = "<td>".$array['cat_name']."</td>";
        
        $i++;
       }

     // vypisanie tabulky
      echo "<center>"
             ."<table class='gm_table'>";
                foreach($row_arr as $row_id => $values) {
                    if ($row_id%2 != 0) {
                        $class = " class='gm_text'";
                    } else {
                        $class = "";
                    }
                    echo "<tr$class>".implode("", $values)."</tr>";
                }
         echo "</table>"
          ."</center>";
tiso
Profil
tomas3333 konečne som pochopil čo si to chcel:
echo "<center><table class='gm_table'>";
	$i = 0;
	$line1 = $line2 = '';
	while($array = dbarray($select_cats)) {
		if($i == $cols) {
			echo "<tr class='gm_text'>$line1</tr>"; 
			echo "<tr>$line2</tr>";
			$line1 = $line2 = '';
			$i = 0;
		}

		$line1 .= "<td><a href='".PLUGIN_SELF.$array['cat_id']."'><img src='".PLUGIN_IMAGES."dir_closed_icon.jpg'></a></td>";
		$line2 .= "<td>".$array['cat_name']."</td>";
		$i++;
	}
	$cells=str_repeat('<td>&nbsp;</td>', $cols-$i);
	echo "<tr class='gm_text'>$line1{$cells}</tr>"; 
	echo "<tr>$line2{$cells}</tr>";
echo "</table></center>";

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: