In een script haal ik gegevens uit mijn database. Met deze regel laat hij alle woorden beginnend met 0 zien. Hoe laat ik alle woorden beginnend met 0 t/m 9 zien?

SELECT artiest, titel, id FROM `media` WHERE artiest LIKE 0% ORDER BY artiest ASC
<?php
$b = range(0, 9);

$q = "SELECT artiest, titel, id FROM media WHERE ";

$c = count($b) - 1;
for ($i=0;$i<$c;$i++) {
$q .= "artiest LIKE '{$i}% ' ";
if ($i != $c) {
$q .= "OR ";
}
}

$q .= "ORDER BY artiest ASC";

//nu kan je mysql_query($q) doen
?>
Ik heb nu dit script, maar hij werkt nog niet, kan iemand een fout ontdekken?

<?

#Mysql connectie
mysql_connect($mysql_host,$mysql_user,$mysql_pass) or die(mysql_error());
#Tabel selecteren
mysql_select_db($mysql_db);


if ($_GET['functie'] == 'schrijven' && $_SERVER['REQUEST_METHOD'] == 'POST'){

$b = range(0, 9);

$q = "SELECT artiest, titel, id FROM media WHERE ";

$c = count($b) - 1;
for ($i=0;$i<$c;$i++) {
$q .= "artiest LIKE '{$i}% ' ";
if ($i != $c) {
$q .= "OR ";
}
}

$q .= "ORDER BY artiest ASC";


}else{

$b = range(0, 9);

$q = "SELECT artiest, titel, id FROM media WHERE ";

$c = count($b) - 1;
for ($i=0;$i<$c;$i++) {
$q .= "artiest LIKE '{$i}% ' ";
if ($i != $c) {
$q .= "OR ";
}
}

$q .= "ORDER BY artiest ASC";


}

#shouts selecteren
$query = @mysql_query($lijst_sql) or die(mysql_error());

if(mysql_num_rows($query)==0)
{
// er zijn geen gegevens
echo'<strong>(Nog) Geen clips aanwezig</strong>';
}
else
{
while($record = mysql_fetch_assoc($query)){
// en de rest van de while
echo'<a href="javascript:popUp(\'/media/video.php?id='.$record['id'].'\')" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage(\''.$record['id'].'w\',\'\',\'../images/cam2.gif\',1)"><img src="../images/cam.gif" name="'.$record['id'].'w" width="12" height="8" border="0" id="'.$record['id'].'w" /> '.$record['artiest'].' - '.$record['titel'].'</a><br>';
}
}
?>
MySQL heeft ook regex support:

<?php
// regex gebruiken
$sql = "
SELECT artiest, titel, id
FROM media
WHERE artiest REGEXP '^[0-9]'";
?>
Ja dat was waar ook, had ook gekunt :-)
Net lokaal uitgetest en werkt prima. Bovendien super kort :-)

Reageren