Seite 1 von 1

DB auslesen horizontal anzeigen und nach 3 einträgen umbruch

Verfasst: 02.04.2006 13:01
von Nosferatu_v
Hallo,
ich hab eine funktion gemacht wo er horizontal anzeigt und nach 3 einträgen nen umbruch macht. jedoch wenn ich es mit db verbinde und einträge auslöse geht es nicht entweder nur unter einander oder es wird nur ein eintrag angezeigt

Code: Alles auswählen

function printDataHorizontal($data, $col, $id) 
    { 
       $count = count($data); 

       $tdWidth = round(100/$col); 
        
       echo "<table>\n"; 

       for ($i = 0; $i < $count; $i+=$col) 
       { 
           echo "  <tr>\n"; 

           for($j = 0; $j < $col; $j++) 
           { 
              if ($i+$j < $count) 
                $s = $data[$i+$j]; 
              else 
                $s = "&nbsp;"; 

              echo "    <td width=\"$tdWidth%\"><a href=\"sites.php?lan=$lan&zn=13&bp=$id\">$s</a></td>\n"; 
           } 

           echo "  </tr>\n"; 
       } 
       echo "</table>\n"; 
    } 

$sql = "SELECT * FROM pjfpicsys WHERE kid = '$b' ORDER BY ID DESC";
$result = mysql_query($sql,$mysql);

	if(mysql_num_rows($result))
{

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

$link = $row[link];
$id = $row[ID];

$ar = array($link); 
//echo "$ar";

    $col = 3; 
   
}
printDataHorizontal($ar, $col, $id); 
}
also das $link soll neben einander angezeigt werden und nach 3 einträgen ein umbruch gemacht werden :(

bitte um hilfe wär sehr dringend
danke

Verfasst: 02.04.2006 14:06
von Nosferatu_v
das es nicht geht liegt glaub ich daran das bei
$ar = array($link);

nicht getrennt wird oder?

also link, link2, link3

ich weiß leider nicht wie ich das machen soll :oops:

Verfasst: 02.04.2006 15:22
von fanrpg
lasse $i hochzählen bei $i == 3 lasse einen umbruch ausgeben.
Dannach setzt du $i wieder auf 0.
Der Rest nur ganz normal ohne andere Umbrüche einzumachen.

Den bei dir versteh ich nicht mal wann er einen Umbruch machen soll.

Verfasst: 02.04.2006 17:19
von Nosferatu_v
:( könntest du mir das genauer erklären bitte was ich da machen solle bzw wie das geht

soll ich einfach bei $i == 0; auf 3 ändern und dann ?


das mit der horizontalen anzeige hab ich aus dem internet :( weiß mir da auch nicht so recht zu helfen damit

glaube hier wird ihm das gesagt mit dem umbruch for($j = 0; $j < $col; $j++)

Verfasst: 02.04.2006 18:04
von S2B
*brrr*

Es liegt in der Tat an der von dir (Nosferatu_v) zensierten Zeile:

Code: Alles auswählen

while ($row = mysql_fetch_array($result))
{
  $ar[] = $row;
}
Der von dir geschriebene Code hat ein Array mit einem Element erstellt, das bei jedem neuen Eintrag wieder überschrieben wurde. :wink:

In der Funktion müsstest du dann noch das:

Code: Alles auswählen

              if ($i+$j < $count)
                $s = $data[$i+$j];
              else
                $s = "&nbsp;";

              echo "    <td width=\"$tdWidth%\"><a href=\"sites.php?lan=$lan&zn=13&bp=$id\">$s</a></td>\n";
ersetzen durch das:

Code: Alles auswählen

				$sum = $i + $j;
				if ($sum < $count)
				{
					$s = $data[$sum]['link'];
					$id = $data[$sum]['id'];
					echo "    <td width=\"$tdWidth%\"><a href=\"sites.php?lan=$lan&zn=13&bp=$id\">$s</a></td>\n";
				}
				else
				{
					$row = "<td width=\"$tdWidth%\">&nbsp;</td>\n";
				}
Dann müsste es normal laufen.

Verfasst: 02.04.2006 18:37
von Nosferatu_v
vielen dank :P funktioniert wunderbar danke