Lijst in alfabetische volgorde met links.
Ik ben niet helemaal nieuw hier, ook niet met PHP maar ik zit met een probleem voor mijn website. Ik probeer namelijk een ledenlijst te maken die geheel automatisch gaat. Alle gegevens worden uit de database gehaald en netjes in een rij gezet. Ook netjes in de goede kolom.
Dit is de oude php-code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$qry = "SELECT name, LEFT(name, 1) AS first_char FROM albums
WHERE UPPER(LEFT(name, 1)) BETWEEN 'A' AND 'Z'
OR LEFT(name, 1) BETWEEN '0' AND '9' ORDER BY name";
$result = mysql_query($qry);
$current_char = '';
while ($row = mysql_fetch_assoc($result)) {
if ($row['first_char'] != $current_char) {
$current_char = $row['first_char'];
echo '<br />' . strtoupper($current_char) . '<br />-----<br />';
}
echo $row['name'] . '<br />';
}
?>
$qry = "SELECT name, LEFT(name, 1) AS first_char FROM albums
WHERE UPPER(LEFT(name, 1)) BETWEEN 'A' AND 'Z'
OR LEFT(name, 1) BETWEEN '0' AND '9' ORDER BY name";
$result = mysql_query($qry);
$current_char = '';
while ($row = mysql_fetch_assoc($result)) {
if ($row['first_char'] != $current_char) {
$current_char = $row['first_char'];
echo '<br />' . strtoupper($current_char) . '<br />-----<br />';
}
echo $row['name'] . '<br />';
}
?>
En die heb ik aangepast naar dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$host="***";
$username="***";
$password="***";
$database="***";
mysql_connect("$host", "$username", "$password") or die(mysql_error());
mysql_select_db("$database") or die(mysql_error());
$qry = "SELECT *, LEFT(naam, 1) AS first_char FROM *Tabel*
WHERE UPPER(LEFT(naam, 1)) BETWEEN 'A' AND 'Z'
OR LEFT(naam, 1) BETWEEN '0' AND '9' ORDER BY naam";
$result = mysql_query($qry);
$current_char = '';
while ($row = mysql_fetch_array($result)) {
if ($row['first_char'] != $current_char) {
$current_char = $row['first_char'];
?>
$host="***";
$username="***";
$password="***";
$database="***";
mysql_connect("$host", "$username", "$password") or die(mysql_error());
mysql_select_db("$database") or die(mysql_error());
$qry = "SELECT *, LEFT(naam, 1) AS first_char FROM *Tabel*
WHERE UPPER(LEFT(naam, 1)) BETWEEN 'A' AND 'Z'
OR LEFT(naam, 1) BETWEEN '0' AND '9' ORDER BY naam";
$result = mysql_query($qry);
$current_char = '';
while ($row = mysql_fetch_array($result)) {
if ($row['first_char'] != $current_char) {
$current_char = $row['first_char'];
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php echo "" . strtoupper($current_char) . "</a><br>";
}
echo '<div id=' . strtoupper($current_char) . '>';
echo $row['naam'] . '<br>';
echo $row['adres'] . ',<br>';
echo $row['postcodewoonplaats'] . '<br>';
echo $row['telefoonnummer'] . '<br>';
echo '<b>Bondsnr: </b>' . $row['bondsnummer'] . '<br><br>';
echo '</div>';
}
?>
}
echo '<div id=' . strtoupper($current_char) . '>';
echo $row['naam'] . '<br>';
echo $row['adres'] . ',<br>';
echo $row['postcodewoonplaats'] . '<br>';
echo $row['telefoonnummer'] . '<br>';
echo '<b>Bondsnr: </b>' . $row['bondsnummer'] . '<br><br>';
echo '</div>';
}
?>
Met behulp van het veranderde stuk hoort hij in plaats van de kop een link te plaatsen en als je daar op klikt horen alle namen die met die letter beginnen uit te klappen. Maar nu klapt hij ze wel uit, alleen laat hij alleen maar de eerste persoon zien die bijvoorbeeldmet de letter 'a' begint. terwijl het er dus eigenlijk 4 ofzo zijn.
Hopelijk kan iemand me hiermee helpen?
P.S. Beginnen alle namen niet met een letter tussen de A en Z? "WHERE UPPER(LEFT(naam, 1)) BETWEEN 'A' AND 'Z' OR LEFT(naam, 1) BETWEEN '0' AND '9'" lijkt me een beetje overbodig.
<style type="text/css">
#A {
display: none;
border: none;
} #B {
display: none;
border: none;
} #G {
display: none;
border: none;
}
</style>
<script type="text/javascript">
function kadabra(zap) {
if (document.getElementById) {
var abra = document.getElementById(zap).style;
if (abra.display == "block") {
abra.display = "none";
} else {
abra.display= "block";
}
return false;
} else {
return true;
}
}
</script>
Ja, je hebt wel gelijk, die kan wel weg inderdaad.