namen rangschikken op <div> A/B/C enz
ik ben nieuw met PHP en databases. Ik vroeg mij af of iemand mij zou kunnen helpen.
Ik wil graag voor mijn edelstenenverzameling een website maken.
Hierbij wil ik de stenen die ik heb invoeren in de database.
Nu wil ik als menu graag dat de <div>'s A / B/ C enz. worden aangemaakt met behulp van php.
Ik heb nu dit geschreven:
<div class="kolom">
<h2 class="kolomtitel">A</h2>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$resulta = mysql_query("SELECT * FROM edelsteen WHERE naam LIKE 'A%'");
$rowa = mysql_fetch_assoc($resulta);
$resulta = mysql_query("SELECT * FROM edelsteen WHERE naam LIKE 'A%'");
while (($rowa = mysql_fetch_assoc($resulta)) != NULL) {
$eruit = $rowa['naam'];
print("<div><a href='overzicht.php?getid=$eruit'>" .$rowa['naam']."</a></div>");
}
?>
$resulta = mysql_query("SELECT * FROM edelsteen WHERE naam LIKE 'A%'");
$rowa = mysql_fetch_assoc($resulta);
$resulta = mysql_query("SELECT * FROM edelsteen WHERE naam LIKE 'A%'");
while (($rowa = mysql_fetch_assoc($resulta)) != NULL) {
$eruit = $rowa['naam'];
print("<div><a href='overzicht.php?getid=$eruit'>" .$rowa['naam']."</a></div>");
}
?>
</div>
<div class="kolom">
<h2 class="kolomtitel"> B</h2>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
include("db.php");
$result = mysql_query("SELECT * FROM edelsteen");
$row = mysql_fetch_assoc($result);
$result = mysql_query("SELECT * FROM edelsteen WHERE naam LIKE 'B%'");
while (($row = mysql_fetch_assoc($result)) != NULL) {
$eruit = $row['naam'];
print("<div><a href='overzicht.php?getid=$eruit'>" .$row['naam']."</a></div>");
}
?>
include("db.php");
$result = mysql_query("SELECT * FROM edelsteen");
$row = mysql_fetch_assoc($result);
$result = mysql_query("SELECT * FROM edelsteen WHERE naam LIKE 'B%'");
while (($row = mysql_fetch_assoc($result)) != NULL) {
$eruit = $row['naam'];
print("<div><a href='overzicht.php?getid=$eruit'>" .$row['naam']."</a></div>");
}
?>
Nu zou dat makkelijker moeten kunnen door in de php code te zetten dat als er bv stenen zijn met de beginletter K dat er dan automatisch een divtabel wordt aangemaakt van K.. Alleen heb ik geen idee hoe?
Zou fijn zijn als iemand mij zou kunnen helpen!
Ik kan zeker makkelijker. Ik heb een script voor je geschreven dat laat zien hoe het werkt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
// Array met alle values die verwerkt moeten worden
$results = array('apple', 'andre', 'beer', 'tostie', 'zeep');
// Een loop die van a tot z loopt
foreach(range('a', 'z') as $letter) {
echo '<div class="kolom">
<h2 class="kolomtitel">'.$letter.'</h2>';
// Door de values in de array results loopen
foreach($results as $result) {
// Kijken of de eerste letter van de value gelijk is aan de letter waardoor op dat moment word geloopt
if(substr($result, 0, 1) == $letter) {
echo '<div><a href="overzicht.php?getid=$eruit">'.$result.'</a></div>';
}
}
echo '</div>';
}
?>
// Array met alle values die verwerkt moeten worden
$results = array('apple', 'andre', 'beer', 'tostie', 'zeep');
// Een loop die van a tot z loopt
foreach(range('a', 'z') as $letter) {
echo '<div class="kolom">
<h2 class="kolomtitel">'.$letter.'</h2>';
// Door de values in de array results loopen
foreach($results as $result) {
// Kijken of de eerste letter van de value gelijk is aan de letter waardoor op dat moment word geloopt
if(substr($result, 0, 1) == $letter) {
echo '<div><a href="overzicht.php?getid=$eruit">'.$result.'</a></div>';
}
}
echo '</div>';
}
?>
Ik hoop dat je er iets aan hebt.
Code (php)
Tevens is het onnodig een kolom met een letter te echoën als die helemaal geen results heeft. Beter is gewoon gebruik maken van de sorteer methode in SQL:
Dan krijg je alle resultaten al in een gesorteerde volgorde, je hoeft vervolgens alleen nog deze te echoën.