php script voor uitvoer array in HTML tabel / <b> ... </b> ???

Status
Niet open voor verdere reacties.

nonono

Gebruiker
Lid geworden
28 jan 2009
Berichten
289
Voor “HTML tabel bouwen met PHP en MySQL“ kun je op meerdere manieren een array aanmaken.
Ik wil de data in een cel van de tabel aanpassen met “vet” en “centreer”.

Als ik de array opmaak als één geheel, dan lukt dit. Item 1 is vet en staat in het midden.
Code:
…
$items = array("<b><center>item  1</center></b>", "item  2", ….. , "item 12");
…

Vervolgens aanmaak van de array met afzonderlijke regels. Dan lukt “vet” en “centreer” niet.
Code:
$items['<b><center>item 1</center></b>'] = 1;							 
$items['item 2'] = 2;	
…

Wat is wel de goede manier in het 2° geval?

HTML tabel bouwen met PHP en MySQL.php
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>HTML tabel bouwen met PHP en MySQL</title>
</head>
<body>
<?php
//$items = array("<b><center>item  1</center></b>", "item  2", "item  3", "item  4", 
//               "item  5", "item  6","item  7", "item  8", 
//               "item  9", "item 10", "item 11", "item 12");
// of
 $items['<b><center>item 1</center></b>'] = 1;							 
 $items['item 2'] = 2;		
 $items['item 3'] = 3;									 
 $items['item 4'] = 4;									 
 $items['item 5'] = 5;							 
 $items['item 6'] = 6;		
 $items['item 7'] = 7;									 
 $items['item 8'] = 8;	
 $items['item 9'] = 9;							 
 $items['item 10'] = 10;		
 $items['item 11'] = 11;									 
 $items['item 12'] = 12;	
						 
// hulpvariabelen
$aantal_kolommen = 4;
$kolom_breedte   = 75; // in pixels
$aantal_items    = sizeof($items);
$huidige_kolom   = 0; // als deze variabele de waarde 0 heeft dan is er een rij afgelopen
                      // en moet er een nieuwe beginnen

// bouw de tabel en doorloop de items
?>
<br><br><br><br>
<center>
 <table width="<?= $aantal_kolommen * $kolom_breedte ?>" border="1" cellspacing="0" cellpadding="2">
 
<?php
foreach($items as $item) {
  // waren we klaar met een rij ?
  if($huidige_kolom == 0) {
    // open een nieuwe rij
    echo "<tr>\n"; // hier is \n toegevoegd om de leesbaarheid van de HTML-source te verhogen
  }

  // druk het item af - hier zou je dus nog tabellen kunnen nesten - in dit voorbeeld houden we het simpel
  echo "<td width=\"".$kolom_breedte."\">".$item."</td>\n";

  // we zijn een kolom verder, verhoog $huidige_kolom
  $huidige_kolom++;

  // waren we klaar met een rij ?
  if($huidige_kolom == $aantal_kolommen) {
    // sluit de rij af en reset $huidige_kolom
    echo "</tr>\n";
    $huidige_kolom = 0;
  }
}
?>
</table>
</center>
</body>
</html>
 

Bijlagen

  • tabel item.jpg
    tabel item.jpg
    16,6 KB · Weergaven: 27
  • tabel 123.jpg
    tabel 123.jpg
    9,5 KB · Weergaven: 16
Volgensmij haal je de keys en de values door elkaar. Als je het zo doet ->

PHP:
$array[ 1 ] = '<b>hier je tekst</b>';

Gaat het waarschijnlijk wel goed. Keys accepteren volgensmij niet zomaar alle vormen van tekst.
 
Inderdaad. Aanvankelijk heb ik dit ook geprobeerd, echter zonder quotes. Met de quotes erbij is het opgelost.
Code:
$items['item 1'] = '<b><center>1</center></b>';
Bedankt :thumb:
 
Je moet altijd quotes om teksten heenzetten :) Anders gaat je parser moeilijk doen. Als je heel veel fouten onderdrukt dan wil het soms nog wel werken... tot alles instort omdat je een fout teveel maakt en je geen idee meer hebt wat er aan de hand is ;)
 
Bedankt voor je tip.
In eerste instantie heb ik het script van de link gevolgd. Als je gebruikt:
Code:
$items['item 1'] = 1;
dan gaat het goed, ook zonder quotes. Maar ik zal je raad opvolgen.

Bedankt :d
 
Het is veel beter om die opmaak uit je script te halen en het in plaats daarvan met CSS te doen, daar is CSS immers voor bedoeld.
Als je dit in je CSS zet.
Code:
td{
text-align:center;
font-weight:bold;
}
Komt de inhoud van je cellen vetgedrukt en in het midden te staan. Mocht je dan later nog iets aan willen passen dan kun je dat makkelijk in het CSS bestand doen in plaats van je hele PHP code te moeten doorlopen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan