есть такой запрос Код (Text): $result = mysql_query(" SELECT id, categoria FROM table ORDER BY id", $db); $myrow = mysql_fetch_array($result); и такой вывод: хотелось бы чтоб выводился ряд и три разные categor но как вы увидите появляется ряд и три одинаковые categor потом новый ряд и новые categor Код (Text): echo "<table>"; printf(" <tr> <td><a href='%s'> %s</a></td> <td><a href='%s'> %s</a></td> <td><a href='%s'> %s</a></td> </tr>", $myrow["id"], $myrow["categor"], $myrow["id"], $myrow["categor"], $myrow["id"], $myrow["categor"]); } while($myrow = mysql_fetch_array($result)); echo "</table>"; Как сделать чтоб categor не повторялись, какой запрос нужен? Пробовала так всеровно выводит ряд и 3 одинаковые categor Код (Text): "SELECT DISTINCT id, marca FROM type_auto ORDER BY id"
в смысле нужно сделать это? Код (Text): echo "<table>"; printf(" <tr> <td><a href='%s'> %s</a></td> <td><a href='%s'> %s</a></td> <td><a href='%s'> %s</a></td> </tr>", $myrow["id"], $myrow["categor"]); } while($myrow = mysql_fetch_array($result)); echo "</table>"; Добавлено спустя 2 минуты 36 секунд: все кажется поняла шас попробую
Что то типа этого Код (Text): $table = '<table><tr>'; while ($row = mysql_fetch_array($result)) { $table .= '<td><a href='.$row['id'].'> '.$row['categor'].'</a></td>'; } $table .= '</tr></table>'; echo $table;
не получается ПРАВИЛЬНО сделать еще один цикл подскажите =) Код (Text): echo "<table>"; printf(" <tr> <td><a href='%s'> %s</a></td> <td><a href='%s'> %s</a></td> <td><a href='%s'> %s</a></td> </tr>", do{$myrow["id"], $myrow["categor"]} while($myrow = mysql_fetch_array($result));); } while($myrow = mysql_fetch_array($result)); echo "</table>"; Добавлено спустя 36 секунд: вы меня опередили шас попробую
А откуда такие названия categor, categoria, на сколько я помню в одной из таблиц поле было prise Почему бы сразу не писать грамотно на английском языке
нет тут я просто для примера пишу table1 table2 =) вродебы все выводится только проблема что один ряд и все категории в ней а хотелось один ряд три категории потом второй ряд следушие три категории
Можно так например Код (Text): $table = '<table><tr>'; $count = 1; while($row = mysql_fetch_array($result)) { if(($count-1)%3 == 0 && ($count-1) !=0) $table .= '</tr><tr>'; $table .= ' <td><a href='.$row['id'].'> '.$row['categor'].'</a></td>'; $count++; } $table .= '</tr></table>'; echo $table; Добавлено спустя 2 минуты 15 секунд: А по какому учебнику ты все это делаешь? Что то не припоминаю в каком учебнике в примерах использовалась ф-я printf()?
к сожалению это были видео уроки Сначала смотрела киберсантвидеомастер полная лажа Потом попался Евгений Попов которого все так "любят" =) шас скачала PHP в подлинике
все выводится как надо но первое поле в таблице не выводится а все остальные да а если в запросе ставлю ORDER BY id DESC то последнее поле не выводится =(
1. делала вот так: Код (Text): $res = mysql_query("SELECT id, type FROM type_ob ORDER BY id", $db); $row = mysql_fetch_array($res); Код (Text): $table = '<table id="center" width="700"><tr>'; $count = 1; while($row = mysql_fetch_array($res)) { if(($count-1)%3 == 0 && ($count-1) !=0) $table .= '</tr><tr>'; $table .= ' <td><a href='.$row['id'].'> '.$row['type'].'</a></td>'; $count++; } $table .= '</tr></table>'; echo $table; все хорошо, но увы не выводит первое поле =( 2. А вообще в итоге мне нужно вывести то что мы с вами раньше делали =) Код (Text): $res = mysql_query("SELECT type_ob.id, type_ob.type, count(catalog.categoria) AS total FROM type_ob LEFT JOIN catalog ON type_ob.type = catalog.categoria GROUP BY catalog.categoria, type_ob.type ORDER BY id", $db); $row = mysql_fetch_array($res);
Тут ошибка: Код (Text): $res = mysql_query("SELECT id, type FROM type_ob ORDER BY id", $db); $row = mysql_fetch_array($result); mysql_fetch_array пытается брать из переменной $result, но указатель на ресурс запроса был дан в переменную $res строкой выше.
Боюсь даже спрашивать но все же ... Я как вижу по коду ты 2 раза используешь mysql_fetch_array($res); Это действительно так или же опять опечатка??? Если это правда то все понятно. После 1 вызова этой ф-и первая строчка данных помещается в массив.Когда ты используешь DESC последнее значение помещается в массив. Затем ты уже в цикле выводишь оставшиеся значения.Убери первый вызов $row = mysql_fetch_array($res); оставь только тот который используется в цикле.
а не проще обозначить 2е переменные запроса и вывести их в цикле? первый пример по мне с ошибками, да и смысл генерировать по 3и одинаковых потом ссылки из запроса таблицы...