@jenya7771

Почему mysql_query отдаёт только одно значение?

Здравствуйте, делаю страницу в которой будут все производители, а при нажатии на одного из них должен быть переход на случайный товар этого производителя, список производителей я написал, а вот с случайным получение нужного id проблема. Тот код что ниже отдаёт только один id, и то непонятно по какому принципу, пожалуйста помогите.
$resultVendor = array_unique($arrayRow);

$resultVendor = array_values($resultVendor);

$countRes = count($resultVendor);

echo $countRes;

for ($i = 0; $i < $countRes; $i++) {
	$randVendor = $resultVendor[$i];
	$queryRandom = "SELECT id FROM `pudra` WHERE `vendor` = $randVendor ORDER BY RAND() LIMIT 1";
	$resRandom = mysql_query($queryRandom);

	$arrayRowrand = array();

	while($rowRandom = mysql_fetch_array($resRandom))
	{
		array_push($arrayRowrand, $rowRandom['id']);
		echo $rowRandom['id']."<br>";
		$liknId = NAMELINK."/?id=".$rowRandom['id'];
	};

	echo "<a href=".$liknId.">".$resultVendor[$i]."</a><br>";
};


Кроме того что отдаётся только одна Id-шка, ещё и предупреждение вылазит на каждый запрос я так понимаю.
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/sanerix/domains/sanerix.tk/public_html/serverhome.php on line 49
49 строка это
while($rowRandom = mysql_fetch_array($resRandom))
  • Вопрос задан
  • 179 просмотров
Решения вопроса 1
NeLexa
@NeLexa
Тот код что ниже отдаёт только один id

LIMIT 1 как бы намекает, что вернётся только 1 запись.

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/sanerix/domains/sanerix.tk/public_html/serverhome.php on line 49

Значит $resRandom возвращает false.
Проверьте на ошибку в запросе, при помощи mysql_error().

P.S.: Перейдите на расширение mysqli или PDO для работы с БД. Расширение mysql является устаревшим.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
romy4
@romy4
Exception handler
как бэ
> LIMIT 1

> Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/sanerix/domains/sanerix.tk/public_html/serverhome.php on line 49
всегда проверяйте ресурс не равен ли он !== false перед тем как отдать fetch_*
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега PHP
Добрый день.
Возможно надо $rowRandom = mysql_fetch_array($resRandom) убрать из цикла, а в цикле обрабатывать просто $rowRandom
$rowRandom = mysql_fetch_array($resRandom);
while($rowRandom as $value){
   // остальной код
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы