Я пытаюсь отобразить строку из моей базы данных, где первый символ находится между 0 и 9, я попробовал его, но все еще не работал ниже, это мой код, помог мне с этим благодаря.
if(isset($_REQUEST['num'])){ $num = explode('-',$_REQUEST['num']);
$query1 = "SELECT usercode FROM user WHERE code like '".$num."%'" ORDER BY id DESC ";
$result1 = mysql_query ($query1) or die('query error');
while( $line1 = mysql_fetch_assoc($result1)){
echo $line1[usercode];
}
<a href="home.php?num=<?php echo urlencode('0-9');?>">#</a>
Ваш код в настоящее время ищет вашу базу данных для Array
так как вы explode()
' $_REQUEST['num']
, который возвращает массив.
Вы можете создать диапазон чисел из вашего $num
а затем сделать несколько LIKE
или попробовать с REGEXP
.
Используйте функцию REGEXP
в MySQL для соответствия code
^[0-9]
что означает: "первая буква должна быть от 0 до 9", а в ASCII - числа от 0 до 9.
Это сделает то, что вы хотите:
<?php
if (isset($_REQUEST['num'])) {
$num = explode('-', $_REQUEST['num']);
$query1 = "SELECT usercode FROM user WHERE code REGEXP '^[" . $num[0] . "-" . $num[1] . "]' ORDER BY id DESC";
$result1 = mysql_query ($query1) or die('query error');
while ($line1 = mysql_fetch_assoc($result1)) {
echo $line1['usercode'];
}
}
?>
<a href="home.php?num=<?php echo urlencode('0-9'); ?>">#</a>
cOle2 также прав о функции разрыва. Он возвращает массив, элементы которого являются входной строкой, обозначенной некоторым разделителем. В вашем случае, $_REQUEST['num']
на основе разделителей -
.