пропускаются записи
while($myrow2 = mysql_fetch_array($result2)){
echo "<p><a class='nav_link' href='view_cat.php?cat={$myrow2['id']}'>{$myrow2['title']}</a></p>";
}
}
Это костыль.
Ошибка скорее всего из-за того что записи не отстортированы. СУБД может выдавать их в любом порядке, если явно не указана сортировка "ORDER BY" или группировка "GROUP BY"
По человечески код должен выглядеть как-то так:
$r = mysql_query("SELECT * FROM categories ORDER BY id",$db);
if ($r) {
if (mysql_num_rows($r)>0) {
while ($row = mysql_fetch_assoc($r)) {
echo "<p><a class=\"nav_link\" href=\"view_cat.php?cat=".$row["id"]."\">".$row["title"]."</a></p>\n";
}
}
else {
echo "<p>Информация по запросу не может быть извлечена , в таблице нет записей.</p>";
}
}
else {
echo "<p>Запрос на выборку данных из бд не прошел. Напишите об этом администратору <br><strong>код ошибки:</strong></p>";
return mysql_error();
}
?>
вот код
$result2 = mysql_query("SELECT * FROM categories",$db);
if (!$result2)
{
echo "<p>Запрос на выборку данных из бд не прошел. Напишите об этом администратору <br><strong>код ошибки:</strong></p>";
exit (mysql_error());
}
if (mysql_num_rows ($result2) > 0)
{
//выполняем цикл while для вывода категорий
while($myrow2 = mysql_fetch_array($result2)){
echo "<p><a class='nav_link' href='view_cat.php?cat={$myrow2['id']}'>{$myrow2['title']}</a></p>";
}
}
else {
echo "<p>Информация по запросу не может быть извлечена , в таблице нет записей.</p>";
exit();
}
?>
Спасибо теперь заработало !!!
Это костыль.
Ошибка скорее всего из-за того что записи не отстортированы. СУБД может выдавать их в любом порядке, если явно не указана сортировка "ORDER BY" или группировка "GROUP BY"
Это не костыль. Это обычный безопасный подход к решению задачи в предложенном контексте. Загляните в документацию по PHP. Там связка sql_data_seek ($result, 0); while ($record = mysql_fetch_array($result)){...} используется повсеместно. (как и sql_data_seek ($result, 0); while ($record = mysql_fetch_assoc ($result)){...} )
Немного не уловил связи между сортировкой в СУБД и положением курсора в переданном PHP результате.
К тому же результат будет отсортирован согласно первичного ключа таблицы, коем наверняка является поле id и ORDER BY в данном случае ничего не меняет.
Вы вводите людей в заблуждение.