Цикл по массиву, запрос каждого значения, пока не будет выполнено определенное условие - PullRequest
0 голосов
/ 01 апреля 2011

Я немного новичок в PHP и MySQL.Кажется, у меня проблемы с чем-то.Как выполнить цикл по массиву, опрашивая каждое значение в массиве до тех пор, пока запрос не удовлетворяет определенному условию. В этом случае число строк, возвращаемых запросом, будет меньше пяти.Вот что у меня есть:

$query1="SELECT UserID FROM Users where RefID='$userid'";
$result1=mysql_query($query1);
while ($row = mysql_fetch_array($result1, MYSQL_NUM) && $sql2querynum < '5')
{
echo ($row[0]);
echo "
";
$sql2 = "SELECT * FROM Users WHERE RefID=$row[0]";
$sql2result = mysql_query($sql2);
$sql2querynum = mysql_numrows($sql2result);
}

Проблема в том, что для каждого значения, которое он выводит, я получаю следующее предупреждение: mysql_numrows (): предоставленный аргумент не является допустимым ресурсом результата MySQL

Как я уже сказал, я новичок, так что, возможно, я даже не собираюсь делать это правильно.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2011
$query1="SELECT UserID FROM Users where RefID='$userid'";
$result1=mysql_query($query1);
while ($row = mysql_fetch_array($result1, MYSQL_NUM) && $sql2querynum < '5')
{
echo ($row[0]);
echo "
";
$sql2 = "SELECT * FROM Users WHERE RefID={$row[0]}";
$sql2result = mysql_query($sql2);
$sql2querynum = mysql_numrows($sql2result);
}

Используйте {} для переменных в "" ... и почему вы не используете объединения?

0 голосов
/ 01 апреля 2011

попробуйте

$query1="SELECT UserID FROM Users where RefID='$userid'";
$result1=mysql_query($query1);
if(mysql_num_rows($result1)<5)
{
while ($row = mysql_fetch_array($result1))
{
echo ($row[0]);
echo "
";
$sql2 = "SELECT * FROM Users WHERE RefID=$row[0]";
$sql2result = mysql_query($sql2);
$sql2querynum = mysql_numrows($sql2result);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...