Naam 1x tonen uit 4 kolommen
Ik wil uit een sql database van alle voorkomende namen 1x tonen, echter er moet gekeken worden in 4 kolommen;
ID scheids1 scheids2 scheids3 scheids4
1 piet henk ramon frits
2 ryan joop henk frits
3 frits robert henk piet
4 ryan joop henk frits
zou de volgende resultaten moeten geven:
piet henk ramon frits ryan joop robert
ik heb onderstaande werkend voor 1 kolom. Echter hoe zorg ik er voor dat er 1 lijst komt met alle namen (1x) uit de 4 kolommen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
include"db.inc.php";
$q = $_GET['q'];
$result = mysql_query("
SELECT DISTINCT scheids1 FROM wedstrijden
WHERE waar='thuis'
ORDER BY scheids1");
while ($row=mysql_fetch_array($result)){
echo ("$row[scheids1]<br>");
}
?>
include"db.inc.php";
$q = $_GET['q'];
$result = mysql_query("
SELECT DISTINCT scheids1 FROM wedstrijden
WHERE waar='thuis'
ORDER BY scheids1");
while ($row=mysql_fetch_array($result)){
echo ("$row[scheids1]<br>");
}
?>
Gewijzigd op 22/09/2015 08:57:59 door Henrik Maartens
Een tabel scheidsrechters waarin je de namen van de scheidsrechters zet, met een Auto Incr. ID is een beter idee. Deze ID's koppel je dan met de tabel wedstrijden via een koppeltabel wedstrijden_scheids. Daar staan de ID's van de wedstrijden en de ID's van de scheidsrechters. Zo kan je een wedstrijd dan één tot meerdere scheidsrechters geven.
Met jouw query en code wat je nu hebt, loop je gegarandeerd later tegen problemen aan. Dus omgooien dat roer ;-).
Gewijzigd op 22/09/2015 10:09:05 door - Ariën -
Mocht dit niet mogelijk zijn dan kun je met UNION werken:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
SELECT scheids1 FROM wedstrijden
WHERE waar='thuis'
UNION SELECT scheids2 FROM wedstrijden
WHERE waar='thuis'
UNION SELECT scheids3 FROM wedstrijden
WHERE waar='thuis'
UNION SELECT scheids4 FROM wedstrijden
WHERE waar='thuis'
GROUP BY scheids1
WHERE waar='thuis'
UNION SELECT scheids2 FROM wedstrijden
WHERE waar='thuis'
UNION SELECT scheids3 FROM wedstrijden
WHERE waar='thuis'
UNION SELECT scheids4 FROM wedstrijden
WHERE waar='thuis'
GROUP BY scheids1
Gewijzigd op 22/09/2015 11:00:42 door Jan de Laet
Jan, bedankt voor je reactie. ik heb dit geprobeerd. En het werkt. hij laat alleen unieke namen zien.
Maar klopt mijn echo dan nog wel?
echo ("$row[scheids1]<br>"); ????
Gewijzigd op 22/09/2015 12:04:53 door Henrik Maartens
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
SELECT scheids1 AS scheids FROM wedstrijden
WHERE waar='thuis'
UNION SELECT scheids2 AS scheids FROM wedstrijden
WHERE waar='thuis'
UNION SELECT scheids3 AS scheids FROM wedstrijden
WHERE waar='thuis'
UNION SELECT scheids4 AS scheids FROM wedstrijden
WHERE waar='thuis'
GROUP BY scheids1
WHERE waar='thuis'
UNION SELECT scheids2 AS scheids FROM wedstrijden
WHERE waar='thuis'
UNION SELECT scheids3 AS scheids FROM wedstrijden
WHERE waar='thuis'
UNION SELECT scheids4 AS scheids FROM wedstrijden
WHERE waar='thuis'
GROUP BY scheids1
Henrik Maartens op 22/09/2015 11:49:41:
Wat Aar zegt is zeker waar! alleen gezien de omvang van de database voor nu niet haalbaar om het aan te passen. Er staan zeker 1.200 rijen met 4 scheidsrechters.
Valt overigens prima om te zetten met een PHP-scriptje, of een flinke SQL-query.
1.200 rijen stelt niks voor voor een database.