Query werkt niet zoals ik bedoel
Ik zit met de volgende "uitdaging":
a. Ik heb een tabel met namen (pod__support)
b. Ik heb een tabel met met beschikbare functies (sys__select)
c. Ik heb een tabel die bovenstaande tabellen koppelt (kt__support)
Als een vrijwilliger zich aanmeldt worden zijn NAW-gegevens opgeslagen in de tabel pod__support. Voor de taken waarvoor hij zich beschikbaar stelt worden records aangemaakt in de tabel kt__support
Middels deze koppeltabel en de tabel sys__select zijn dan de gekozen activiteiten in beeld.
Dit werkt allemaal naar behoren.
Mijn uitdaging zit in de presentatie van een overzicht.
Als de vrijwilliger aangewezen is voor een bepaalde functie dan wordt in de tabel kt__support het veld <aangewezen> op TRUE gezet terwijl alle andere records dit veld op FALSE hebben staan.
Draai ik nu onderstaande query dan krijg ik niet wat ik graag zou willen zien:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$sql = "SELECT
ps.*,
ss.inhoud,
kt.aangewezen
FROM
pod__support AS ps
JOIN
kt__support AS kt
ON
kt.id_supportzijde = ps.email
JOIN
sys__select AS ss
ON
kt.id_selectzijde = ss.waarde
ORDER BY
ps.datum ASC";
?>
$sql = "SELECT
ps.*,
ss.inhoud,
kt.aangewezen
FROM
pod__support AS ps
JOIN
kt__support AS kt
ON
kt.id_supportzijde = ps.email
JOIN
sys__select AS ss
ON
kt.id_selectzijde = ss.waarde
ORDER BY
ps.datum ASC";
?>
Deze query toont wel alle records uit de tabel kt__support. Zo zie ik in phpMyAdmin nu zeven records verschijnen waarvan één record het veld <aangewezen> de waarde TRUE heeft.
Run ik echter onderstaande code, dan heeft het veld <aangewezen> in alle records de waarde TRUE. Dus lijkt het mij dat de query in mijn geval niet goed verwerkt wordt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
while($rowAanmeldingen = mysqli_fetch_array($cResultAanmeldingen)) {
$lAangewezen = $rowAanmeldingen['aangewezen'];
if($lAangewezen === FALSE ) {
$cAangewezen = "Nee";
} else {
$cAangewezen = "Ja";
}
?>
<tr>
<td class="kolom2a" style="width: 10%;" ><div class="midden"><a href=""><img src="images/vinkje.jpg" width="28px" /></div></a></td>
<td class="kolom2a" style="width: 10%;" ><div class="midden"><a href=""><?Php echo $cAangewezen ; ?></div></a></td>
<td class="kolom2a" style="width: 20%;"><div class="standaardtekst"><?php echo $rowAanmeldingen['datum']; ?></div></td>
<td class="kolom2a" style="width: 30%;"><div class="standaardtekst"><?php echo $rowAanmeldingen['voornaam'] . " " . $rowAanmeldingen['tussenvoeg'] . " " . $rowAanmeldingen['achternaam'] ; ?></div></td>
<td class="kolom2a" style="width: 25%;"><div class="standaardtekst"><?php echo $rowAanmeldingen['inhoud'] ; ?></div></td>
</tr>
<?php } ?>
while($rowAanmeldingen = mysqli_fetch_array($cResultAanmeldingen)) {
$lAangewezen = $rowAanmeldingen['aangewezen'];
if($lAangewezen === FALSE ) {
$cAangewezen = "Nee";
} else {
$cAangewezen = "Ja";
}
?>
<tr>
<td class="kolom2a" style="width: 10%;" ><div class="midden"><a href=""><img src="images/vinkje.jpg" width="28px" /></div></a></td>
<td class="kolom2a" style="width: 10%;" ><div class="midden"><a href=""><?Php echo $cAangewezen ; ?></div></a></td>
<td class="kolom2a" style="width: 20%;"><div class="standaardtekst"><?php echo $rowAanmeldingen['datum']; ?></div></td>
<td class="kolom2a" style="width: 30%;"><div class="standaardtekst"><?php echo $rowAanmeldingen['voornaam'] . " " . $rowAanmeldingen['tussenvoeg'] . " " . $rowAanmeldingen['achternaam'] ; ?></div></td>
<td class="kolom2a" style="width: 25%;"><div class="standaardtekst"><?php echo $rowAanmeldingen['inhoud'] ; ?></div></td>
</tr>
<?php } ?>
Waar maak ik nu de denkfout?
Toevoeging op 16/02/2014 12:34:10:
Topic gesloten, fout gevonden:
Code (php)
moet zijn
Code (php)
FALSE en TRUE worden blijkbaar niet ondersteund middels SQL
Gewijzigd op 16/02/2014 11:39:01 door George van Baasbank
En het is niet waar dat true en false niet worden ondersteund.
Je hebt gewoon niet de juiste veld waarde ingesteld. Als je met true en false wil werken dan moet het veld een boolean zijn. ;)
Toevoeging op 16/02/2014 12:45:58:
Waar en hoe sluit ik wel ee topic????
Was al een tijdje geleden dat ik me in mysql had verdiept.
Het is/wordt een synoniem.
Dus deels is het waar dat het met 0 of 1 werkt. Dan zou je aan de php kant iet moeten doen met (bool).
Je kan geen topics sluiten.
Ze verdwijnen naar verloop van tijd gewoon naar beneden. Dus dan word er ook niet meer op gereageerd.
Maar het gaat nog verder, want je krijgt je resultaten terug uit de database niet als een int, maar als een string. Omdat php een loosely typed taal is maakt dat niet heel veel uit, maar als je wilt checken op false toch wel enigszins: