Форум → Программирование → PHP для идиотов → Запутался в условии цикла! Нужна помощь профессионала!
Запутался в условии цикла! Нужна помощь профессионала!
-
Пыхеры, выручайте, ни чего не пойму, условие правильное а он выводит мне какую-то "чушь".
хост: localhost
юзер: barosha
база: barosha
таблица: tb_users
поля: id username referer visits и т.д.
Создаю таблицу и делаю вывод пользователей и их визитов:
<table align="center">
<tr>
<td colspan="2">Статистика</td>
</tr>
<tr>
<td>Пользователь</td>
<td>Кликов</td>
</tr>
<?php
// Вывод статистики пользователей не привлеченных по реферальной системе
$con = mysql_connect("localhost","barosha","passwd");
mysql_select_db("barosha",$con);
$result = mysql_query("SELECT * FROM tb_users ORDER BY -visits");
$myrow = mysql_fetch_array($result);
do
{
if($myrow['referer'] == "")
break;
if($myrow['id'] < 1) break;
else
{
printf("<tr>
<td align='center'>%s</td>
<td align='center'>%s</td>
</tr>",$myrow['username'],$myrow['visits']);
}
}
while(mysql_fetch_array($result));
?>
</table>
и вот вам результат:
Статистика
Пользователь Кликов
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
antiscam 158
……….. …..
и т.д.
Что не так? -
6 октября 2008 г. 19:21, спустя 7 минут 52 секунды
Не do…while, а просто while(mysql_fetch_array($res)); используй.
И оформляй код в теги -
-
6 октября 2008 г. 19:33, спустя 10 минут 38 секунд
Зачем там минус?
Минус формирует числа: снизу идет наименьшее а сверху наибольшее -
6 октября 2008 г. 19:34, спустя 1 минуту 30 секунд
AdmBuxonly, учи мат часть - ASC - меньшие вначате, DESC - большие в начале -
6 октября 2008 г. 19:35, спустя 16 секунд
<?php
// Вывод статистики пользователей не привлеченных по реферальной системе
$con = mysql_connect("localhost","barosha","sberbank");
mysql_select_db("barosha",$con);
$result = mysql_query("SELECT * FROM tb_users ORDER BY -visits");
$myrow = mysql_fetch_array($result);
$i = 1;
while(mysql_fetch_array($result) and $i = 10);
{
$i++;
if($myrow['referer'] == "") break;
if($myrow['id'] <= 1) break;
else
{
printf("<tr>
<td align='center'>%s</td>
<td align='center'>%s</td>
</tr>",$myrow['username'],$myrow['visits']);
}
}
?>
Он теперь выводит только одного…. с наибольшим посещением…(-visits) -
6 октября 2008 г. 19:38, спустя 3 минуты 28 секунд
Я же тебе говорю, минус убери.$result = mysql_query("SELECT * FROM tb_users ORDER BY visits DESC");
while(mysql_fetch_array($result) and $i = 10);
Что это за бред? Какое $i = 10 в условии? Может $i <= 10? -
6 октября 2008 г. 19:40, спустя 1 минуту 36 секунд
Что это за бред? Какое $i = 10 в условии? Может $i <= 10?
Я и так = и так <= пробовал, а он что так, что так… реально бред… -
6 октября 2008 г. 19:41, спустя 1 минуту 32 секунды
Короче.$result = mysql_query("SELECT * FROM tb_users ORDER BY visits DESC");
while ($myrow = mysql_fetch_assoc($result))
{
printf("<tr>
<td align='center'>%s</td>
<td align='center'>%s</td>
</tr>",$myrow['username'],$myrow['visits']);
}
Все. -
6 октября 2008 г. 19:51, спустя 9 минут 57 секунд
<?php
mysql_select_db("barosha",$con);
$result = mysql_query("SELECT * FROM tb_users ORDER BY visits DESC");
$myrow = mysql_fetch_array($result);
while(mysql_fetch_array($result));
{
printf("<tr>
<td align='center'>%s</td>
<td align='center'>%s</td>
</tr>",$myrow['username'],$myrow['visits']);
}
?>
</table>
Все сделал, а выводит вот, посмотрите: http://buxonly.com/while.php -
6 октября 2008 г. 19:52, спустя 1 минуту 15 секунд
Я не пойму, почему он всех не выводит, а только одного? Все же правильно, вы же видите? -
6 октября 2008 г. 20:03, спустя 10 минут 56 секунд
while($myrow = mysql_fetch_array($result));
даже скопипастить не можешь нормально, пазор! -
6 октября 2008 г. 20:06, спустя 2 минуты 25 секунд
бля я вахуе ну далиж рабочий код куда ты его еще улучшаешь
наделал глупастей не понимая что ваще происходит а потом жалуесся$myrow = mysql_fetch_array($result);
чё это? -
6 октября 2008 г. 21:34, спустя 1 час 28 минут 41 секунду
Я думаю что тип поля visits стоит VARCHAR(символьный), поставь INT
Это видно по обратной сортировке, 9 8 7 6 и т.п.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!