Tellen met letters
A
--------
aap
arie
achoso
B
--------
bami
bal
boek
nu heb ik dat wel werkend, maar door continue het zelfde riddeltje te doen, oftewel 26 keer copy & paste, is er een manier om die 26 dus in 1 te verwerken?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$sql = "
SELECT DISTINCT catogorie
FROM data
WHERE catogorie LIKE 'a%'
ORDER BY catogorie ASC
";
$result = mysql_query($sql,$con);
echo '<u>A </u><br>';
while ($row = mysql_fetch_assoc($result)) {
echo $row["catogorie"],'<br>';
}
?>
$sql = "
SELECT DISTINCT catogorie
FROM data
WHERE catogorie LIKE 'a%'
ORDER BY catogorie ASC
";
$result = mysql_query($sql,$con);
echo '<u>A </u><br>';
while ($row = mysql_fetch_assoc($result)) {
echo $row["catogorie"],'<br>';
}
?>
zo niet is het niet erg, maar ik dacht dat het mooier kon scheelt weer een hele hoop scrollen in je code.
Het is maar een ideetje en er is waarschijnlijk wel een betere oplossing, maar je zou door middel van asci codes een loop kunnen doen door het alfabet.
zie het en dan van a naar z latten tellen?
Door alle data heen lopen en steeds kijken of de beginletter van deze, gelijk is aan de vorige.
Is dat niet het geval, heb je een nieuwe letter te pakken.
Kijk ook eens naar CSS.
hoe kan ik dan het eerste letter van een word/naam selecteren? zodat ik het kan vergelijken?
ohja, is ook zo. ok dat was een beetje dommig
$row['naam'][0].
Een string kan je ook als array benaderen. Je wilt de eerste letter, die is altijd op de eerste plek, je wilt maar één letter, dus je hoeft niet moeilijk te doen met substr o.i.d.
Karl Karl op 13/10/2010 15:17:32:
Nog simpeler:
$row['naam'][0].
Een string kan je ook als array benaderen. Je wilt de eerste letter, die is altijd op de eerste plek, je wilt maar één letter, dus je hoeft niet moeilijk te doen met substr o.i.d.
$row['naam'][0].
Een string kan je ook als array benaderen. Je wilt de eerste letter, die is altijd op de eerste plek, je wilt maar één letter, dus je hoeft niet moeilijk te doen met substr o.i.d.
Moet je ook maar net weten dat je een string ook als array kunt benaderen, dan weet ik dat ook weer :) Thx
Alle letters van het alfabet in een array zetten en loopen in een for lusje.
Internet Verslaafde op 13/10/2010 16:41:00:
Alle letters van het alfabet in een array zetten en loopen in een for lusje.
Daar komt hij vandaan en wilt ie vanaf.
@Internet Verslaafde Je hoeft niet alle letters van het alfabet in een array te zetten daar heeft PHP de functie range() voor.
2.) Zoiets:
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
<?
$last = '';
$str.= '';
$used = array();
while ($row = mysql_fetch_assoc($result)) {
$current = strtoupper($row['category'][0]);
if($last != $current){
// drop hier je head. BV:
print '<a href="#'.$current.'">'.$current.'</a>';
$str.= '<a name="'.$current.'" id="letter_'.$current.'">' .$current.'</a><br />';
}
$str.= $row["categorie"],'<br>'."\r\n";
$last = $current;
}
echo $str;
?>
$last = '';
$str.= '';
$used = array();
while ($row = mysql_fetch_assoc($result)) {
$current = strtoupper($row['category'][0]);
if($last != $current){
// drop hier je head. BV:
print '<a href="#'.$current.'">'.$current.'</a>';
$str.= '<a name="'.$current.'" id="letter_'.$current.'">' .$current.'</a><br />';
}
$str.= $row["categorie"],'<br>'."\r\n";
$last = $current;
}
echo $str;
?>
Gewijzigd op 13/10/2010 18:10:43 door Pieter van Linschoten
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
ini_set ('display_errors', 1);
error_reporting (E_ALL & ~E_NOTICE);
echo "<b>Bestaande zoekacties:</b><br />";
$con = mysql_connect("localhost","root","");
mysql_select_db("gegevens",$con);
$sql = "
SELECT DISTINCT catogorie
FROM data
ORDER BY catogorie ASC
";
$result = mysql_query($sql,$con);
$last = '';
$str = '';
$used = array();
while ($row = mysql_fetch_assoc($result)) {
$current = strtoupper($row['catogorie'][0]);
if($last != $current){
echo '<b><a name="'.$current.'">'.$current.'</a></b><br>';
}
$str = '<font color="#FF0000">'.$row["catogorie"]."</font>\r\n";
$last = $current;
echo $str.'<br>';
}
?>
ini_set ('display_errors', 1);
error_reporting (E_ALL & ~E_NOTICE);
echo "<b>Bestaande zoekacties:</b><br />";
$con = mysql_connect("localhost","root","");
mysql_select_db("gegevens",$con);
$sql = "
SELECT DISTINCT catogorie
FROM data
ORDER BY catogorie ASC
";
$result = mysql_query($sql,$con);
$last = '';
$str = '';
$used = array();
while ($row = mysql_fetch_assoc($result)) {
$current = strtoupper($row['catogorie'][0]);
if($last != $current){
echo '<b><a name="'.$current.'">'.$current.'</a></b><br>';
}
$str = '<font color="#FF0000">'.$row["catogorie"]."</font>\r\n";
$last = $current;
echo $str.'<br>';
}
?>