Ik heb hier een scriptje met een while, er komt dan een echo en die print nummers op het scherm.
Maar die nummers stellen een 'vak' voor.
Hij print bijvoorbeeld:
2
3
5
2
1
2 is dan bijvoorbeeld Nederlands, 3 Engels, etc...
Hij haalt die nummers uit 1 tabel. Maar daar staan dus alleen nummers die ik dan echo in een while met '.$rijtaakjes->vaktabel.'.
Maar nu komt het dilemma, ik wil dat die nummers de naam van het vak worden.
Ik heb in een andere tabel de vakken staan en de nummers (vakid) dat daar bij hoort.
Hoe krijg ik het voor elkaar dat hij in een while steeds de vaknaam print en niet het nummer??
Ik heb eerder met een array gewerkt waar je zelf alles in moet vullen en dan kon je aangeven van af welk nummer die moest gaan nummeren en dan kon je in de while $array[nummer] doen of zo en dan kwam er een naam in plaats van een nummer. Maar dit zal nu niet werken omdat het kan zijn dat je een nummer overslaat en ik niet weet hoe je automatisch de namen uit de database als opties in de array zet.
Ik zat dus aan een ander soort array te denken maar de mogelijkheden die ik op internet vond waren niet goed.
Ik zoek dus naar een soort array (of een andere mogelijkheid) die de id's en de vaknamen opslaat en dat als je het id print de vaknaam er komt te staan.
Weet iemand de oplossing of waar ik naar moet zoeken?
Ik zal vanavond eens even naar foreach kijken, ik moet nu namelijk werken, de code:
<?php
include('config.php');
$id = $_SESSION['id_sessie'];
$taakophaal = mysql_query("SELECT * FROM takentabel WHERE gebruikersid='".$id."'");
if(mysql_num_rows($taakophaal) > 0){
while($rijtaakjes = mysql_fetch_object($taakophaal)){
echo '<tr onmouseover=\'this.style.background="#C0CFCF"\' onmouseout=\'this.style.background=""\' >
<td width="120" class="style10">'.$rijtaakjes->vaktabel.'</td>
<td width="346" class="style10">'.$rijtaakjes->taakomschrijving.'</td>
<td width="80" class="style10">'.$rijtaakjes->soorttabel.'</td>
<td width="150" class="style10">'.$rijtaakjes->datum.'</td>
<td width="35" class="style10">'.$rijtaakjes->af.'</td>
</tr>';
}
} else {
echo '<tr>
<td colspan="5" align="center" valign="top" class="style15"><span class="style13">U heeft momenteel geen taken in de database staan. Voer deze in zodat u de agenda kan gebruiken.</span></td>
</tr>';
?>
Ik heb 2 tabellen, vaktabel en takentabel.
Die ene is inderdaad wat jij zegt chris.
Maar takentabel word geprint, daar staat een row die vaktabel heet, waar dan nummers in staan.
Die nummers staan ivm de vaktabel, elk nummer wat geprint word heeft eigenlijk een naam en bij elk nummer staat een naam in vaktabel.
Ik bedoel het zeg maar zo:<?php
$vakken = array(1 => 'Engels', 'Nederlands', 'Duits');
echo $vakken[$rijtaakjes->vaktabel];
?>
Als in de database staat dat de gebruiker het vak 1 heeft geselecteerd dan laat hij op het scherm Engels zien.
Maar het probleem is nu dat die vakken niet vast staan. De gebruiker kan (uiteindelijk) zelf selecteren welke vakken hij allemaal in het vakkenpakket wil, dus je kunt niet op voorhand de array schrijven.
Een query moet voor de resultaten zorgen en die moeten in een array zodat je zoals hierboven de boel kan gebruiken.
Maar hoe ik er voor zorg dat je de resultaten uit een query in een array krijgt, daar kom ik niet uit...
<?php
$sql = "SELECT
t.*,
v.*
FROM
takentabel AS t
LEFT JOIN
vakkentabel AS v
ON
t.nummer= v.vakid
";
?>
Wat je hierboven doet is 2 tabellen samen laten voegen DMV het joincommando. De database die jij hebt is een genormaliseerde database. het nummer wat in die takentabel staat is eigenlijk het vakid van de andere tabel en MBV het bovenstaande script (of soortgelijk) kun je die info heel makkelijk ophalen.