Gå til innhold

LØST- med eksempel. Teller som generer tabell


Anbefalte innlegg

Hei.

 

Jeg henter ut linjer fra en database og skal vise dette i en tabell i HTML.

Jeg skal legge innholdet i en HTML-tabell som er tre kolonner bred og X linjer høy (avhengig hvor mange linjer det er i databasetabellen).

 

Problemet er at jeg på en eller annen måte må telle slik at man alltid får med seg tre TD inne i en TR, selv om det ikke antall linjer som hentes er delelig med 3. Hvis den ikke er det skal TD'ene være tomme.

 

Eksempel, hvis det er lagt inn fire linjer i databasen:

<table>
<tr>
   <td>Innhold fra første</td>
   <td>Innhold fra andre</td>
   <td>Innhold fra tredje</td>
</tr>
<tr>
   <td>Innhold fra fjerde</td>
   <td>Tom, siden det bare er fire linjer i databasen</td>
   <td>Tom, siden det bare er fire linjer i databasen</td>
 </tr>
</table>

 

EDIT: Har lagt med vedlegg som visualiserer eksempelet:

post-94098-1169293586_thumb.jpg

Noen som kan hjelpe?

Endret av SparKnekt
Lenke til kommentar
Videoannonse
Annonse

Mener du sånn her?

 

<?php
$con = mysql_connect("locahost","brukernavn","passord");
if (!$con)
 {
 die('Could not connect: ' . mysql_error());
 }

mysql_select_db("database_navn", $con);

$result = mysql_query("SELECT * FROM tabell_navn ORDER BY `id`");

while($row = mysql_fetch_array($result))
 {
echo "<table>";
echo "<tr>";
echo "   <td>$row[1]</td>";
echo "   <td>$row[2]</td>";
echo "   <td>$row[3]</td>";
echo "</tr>"; // dette vil doble seg opp hvis det for eksempel er 6 i stedet for 3.
echo "</table>";
 }
mysql_close($con);
?>

 

Edit; vet det trrunde, men jeg husker ikke hvor <table> skulle stå når den ikke skal bli doblet opp slik.

Endret av Andy-Pandy
Lenke til kommentar

Nei, ikke helt.

 

//Henter ut alle rader i tabellen
if($result)
{
echo '<table>';
while($nyhet = mysql_fetch_array($result)){ //for hver nyhet som er lagt inn

 /* Her må det være en slags teller(modulus?) som sørger for å legge på en <tr> hvis det trengs for å starte raden, eller </tr> til slutt for å avslutte raden hvis den har nådd 3. Tabellen skal jo ha rad-lengde lik 3 (som i vedleggsbildet)*/

echo '<td>'.$nyhet['tittel'].'</td>';
   	
}echo '</table>';

Lenke til kommentar

Yes! Hvorfor tenke vanskelig når man kan gjøre det enkelt. Fant ut av det.

Poster kode her i tilfelle noen andre vil bruke det.

 

$teller = 0;
if($result)
{
echo '<table>';
while($nyhet = mysql_fetch_array($result)){
 /* Hvis teller er tre er det på tide å lage ny TR*/
 if ($teller == 3){ $teller = 0;	}
 if ($teller != 3){ $teller++; }
 
 if ($teller == 1){ 
 echo '<tr><td><p>'.$nyhet['tittel'].'</p></td>';
 }
 if ($teller == 2){
 <td><p>'.$nyhet['tittel'].'</p></td>';
 }
 if ($teller == 3){
 <td><p>'.$nyhet['tittel'].'</p></td></tr>';
 }
}
if ($teller == 3){
echo '<td> </td><td> </td></tr>';
}
if ($teller == 2){
echo '<td width="33%"> </td></tr>';
}
echo '</table>';

 

Har kuttet ut litt formaterings-kode for å gjøre det enklere å lese, men skal funke dette også.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...