Wij zijn met een glasvezel project bezig en willen voor ons zelf een vergelijkingstabel maken. Als test heb ik even 1 tabel aangemaakt en er wat testgegevens ingezet. Die gegevens kan ik eruit halen en in een tabel zetten.
Nu is de tabel als volgt:
Provider | Prijs | Internet | Televisie
-----------------------------------
KPN | 50 | ja | ja
Tele2 | 40 | ja | ja
Telfort | 70 | ja | ja
Je moet eerst de MySQL result set in een array zetten. Ik heb dat hieronder weggelaten en even zelf een array ingevuld. Dit kan je zelf doen met mysql_fetch_assoc maar sneller via bijvoorbeeld http://nl1.php....tchall.php
Nu moet je inzien dat elke rij gelijk is aan een subitem van je array. Er is dus een rij met provider, prijs, etc. Vervolgens wordt bij de eerste rij telkens het eerste subitem van elk item weergegeven, bij de tweede rij alle tweede subitems and so on.
Aan de hand van deze sketch kom je ongeveer uit op het volgende. Je zal het nog moeten aanpassen naar jouw situatie.
Ik snap de bedoeling wel van de code die je gegeven hebt en de uitleg is me duidelijk, maar ik snap niet helemaal hoe ik de array moet vullen met de gegevens uit de tabel.
Dat werkt. Maar nu nog combineren met de code van Joost.
We prutsen gewoon verder, maar alle hulp is natuurlijk welkom
Zal dat van vinTage ook ff nalopen.
mysql_fetch_array, mysql_fetch_assoc en alle andere fetch functies geven één item terug als resultaat. Je kan dus over de hele resultaatset loopen en elk item aan een array toevoegen.
$res = mysql_query("SELECT provider,prijs,verzendkosten FROM vergelijk");
// Initialiseer een lege array waar alle items inkomen.
$items = array();
// Loop over het resultaat met mysql_fetch_row. Dit geeft een array terug met numerieke indexen, niet de database kolomnamen. Zie: http://nl3.php.net/mysql_fetch_row
while ($item = mysql_fetch_row($res)) {
$items[] = $item;
}
$res=mysql_query("SELECT provider,prijs,verzendkosten FROM vergelijk");
// Initialiseer een lege array waar alle items inkomen.
// Loop over het resultaat met mysql_fetch_row. Dit geeft een array terug met numerieke indexen, niet de database kolomnamen. Zie: http://nl3.php.net/mysql_fetch_row
$res = mysql_query("SELECT provider,prijs,verzendkosten,aansluitkosten,borg,monteur,abonnement,internet,snelheid,televisie,analoog,digitaal,interactief FROM vergelijk");
$items = array();
while ($item = mysql_fetch_row($res))
{
$items[] = $item;
}
$subItems = array('Provider', 'Prijs', 'Verzendkosten','Aansluitkosten','Borg','Monteur','Abonnement','Internet','Snelheid','Televisie','Analoog','Digitaal','Interactief');
echo '<table>';
$numItems = count($items);
$numSubItems = count($items[0]);
// Loop over het aantal subitems dat er is.
for($i = 0; $i < $numSubItems; $i++){
echo '<tr><td><b>' . $subItems[$i] . '</b></td>';
// Pak nu telkens het $i'de element van elke $j'de item.
for($j = 0; $j < $numItems; $j++){
echo '<td>' . $items[$j][$i] . '</td>';
}
echo '</tr>';
}
echo '</table>';
$res=mysql_query("SELECT provider,prijs,verzendkosten,aansluitkosten,borg,monteur,abonnement,internet,snelheid,televisie,analoog,digitaal,interactief FROM vergelijk");