У меня на сайте стоит скрипт регистрации с сайта Попова. Я решил привести код в порядок. Начал по алфавиту, первый был all_users.php.
Вот кусок кода поповского:
$result = mysql_query("SELECT login,id FROM users ",$db); //извлекаем логин и идентификатор пользователей
$myrow = mysql_fetch_array($result);
do
{
//выводим их в цикле
printf("<a href='page.php?id=%s'>%s</a><br>",$myrow['id'],$myrow['login']);
}
while($myrow = mysql_fetch_array($result));
Начал править:
$q = mysql_query("SELECT login,id FROM users");
//извлекаем логин и идентификатор пользователей
$n_arr = mysql_fetch_assoc($q);
//цикл
while ($n_arr = mysql_fetch_assoc($q))
{
echo "<a href=page.php?id=$n_arr[id]>$n_arr[login]</a><br>";
};
Но столкнулся с проблемой: исправленный while(вместо do-while) выводит всех юзеров, кроме первого.
То есть должно:
Админ
Ю2
Ю3
Выводит:
Ю2
Ю3.
Исправьте цикл)
Спустя 7 минут, 8 секунд (20.09.2011 - 10:31) Michael написал(а):
$q = mysql_query("SELECT login,id FROM users");
//извлекаем логин и идентификатор пользователей
//цикл
while ($n_arr = mysql_fetch_assoc($q))
{
echo "<a href=page.php?id=$n_arr[id]>$n_arr[login]</a><br>";
};
Спустя 53 секунды (20.09.2011 - 10:31) Phpprogger написал(а):
Спс. Заработало.
Добавил + в карму))
Добавил + в карму))
Спустя 1 минута, 8 секунд (20.09.2011 - 10:33) Renden написал(а):
Phpprogger
Michael Оперативный ты :)
$query = mysql_query("SELECT login,id FROM users");
while ($row = mysql_fetch_assoc($query))
echo "<a href=page.php?id=".$row['id'].">".$row['login']."</a><br>";
Michael Оперативный ты :)
Спустя 5 минут, 7 секунд (20.09.2011 - 10:38) Phpprogger написал(а):
Renden
Ваш вариант так же работает, но есть вопрос: какой код лучше использовать при кодировании?
Ваш вариант так же работает, но есть вопрос: какой код лучше использовать при кодировании?
Спустя 1 минута (20.09.2011 - 10:39) Renden написал(а):
Phpprogger
Он идентичен, просто имена переменных другие, и стиль оформления\написания
Он идентичен, просто имена переменных другие, и стиль оформления\написания
Спустя 3 минуты, 41 секунда (20.09.2011 - 10:42) Phpprogger написал(а):
Renden
Просто не хочу снова стать поповщиной/говнокодером))
Просто не хочу снова стать поповщиной/говнокодером))
Спустя 3 минуты, 40 секунд (20.09.2011 - 10:46) Renden написал(а):
Phpprogger
В таком случае думаю мой пример в плане оформления более правильный
В таком случае думаю мой пример в плане оформления более правильный
Спустя 1 минута, 7 секунд (20.09.2011 - 10:47) Phpprogger написал(а):
Renden
Ок, буду работать дальше над исправлением
Ок, буду работать дальше над исправлением
Спустя 22 минуты, 17 секунд (20.09.2011 - 11:09) m4a1fox написал(а):
Renden
Phpprogger
Ну же, господа, либо я старомоден, но вы, кажется, если по правилам делать забыли про один символ ` - вот такой. И тогда код, ваще красиво выглядит.
ИМХО!
Phpprogger
Ну же, господа, либо я старомоден, но вы, кажется, если по правилам делать забыли про один символ ` - вот такой. И тогда код, ваще красиво выглядит.
$query = mysql_query("SELECT `login`, `id` FROM `users`");
while ($row = mysql_fetch_assoc($query))
echo '<a href="page.php?id='.$row['id'].'">'.$row['login'].'</a><br>';
ИМХО!
Спустя 7 минут, 54 секунды (20.09.2011 - 11:17) Phpprogger написал(а):
m4a1fox
Согласен, так лучше.
Согласен, так лучше.
Спустя 49 минут, 33 секунды (20.09.2011 - 12:07) Renden написал(а):
m4a1fox
По каким это правилам?)) Оф дока mysql не использует обратных кавычек, врочем и я тоже
По каким это правилам?)) Оф дока mysql не использует обратных кавычек, врочем и я тоже
Спустя 8 минут, 10 секунд (20.09.2011 - 12:15) m4a1fox написал(а):
Renden
Ну я так привык! Да и к тому же вот тут, так же происходит! Еще раз говорю - ИМХО! Не претендую на эксклюзивность. Просто я так например делаю!
P.S. Только что проверил, в PMA запросы оформляются например так
Целые числа - не берутся в обратные кавычки, это видно из примера, а остальные значения - беруться!
Ну я так привык! Да и к тому же вот тут, так же происходит! Еще раз говорю - ИМХО! Не претендую на эксклюзивность. Просто я так например делаю!
P.S. Только что проверил, в PMA запросы оформляются например так
UPDATE `DB`.`table` SET `storke` = 'text' WHERE `table`.`id` = 181 LIMIT 1 ;
Целые числа - не берутся в обратные кавычки, это видно из примера, а остальные значения - беруться!
Спустя 1 час, 14 минут, 25 секунд (20.09.2011 - 13:29) twin написал(а):
Тут много интересного по теме.
Спустя 5 минут, 1 секунда (20.09.2011 - 13:34) killer8080 написал(а):
Цитата (Renden @ 20.09.2011 - 12:07) |
По каким это правилам?)) Оф дока mysql не использует обратных кавычек, врочем и я тоже |
И тем не менее m4a1fox прав.
Во первых, используя обратные кавычки, вы избавляете sql сервер от лишних действий при разборе запроса, на предмет принадлежности к зарезервированным словам. Да, на производительности это особо не скажется, но тем не менее.
Во вторых, без них невозможно обращаться к столбцам или таблицам, чьи имена входят в список зарезервированных слов SQL, например fulltext, delete, add и т.п.
Лучше сразу привыкать писать запросы в едином стиле.
Спустя 4 минуты, 40 секунд (20.09.2011 - 13:39) m4a1fox написал(а):
twin
Цитата |
Тут много интересного по теме. |
Уже давал эту ссылку, я так подозреваю ТС сейчас там и находится!
Спустя 43 минуты, 54 секунды (20.09.2011 - 14:23) Phpprogger написал(а):
Есть еще вопрос: как посчитать сколько всего юзеров в базе?
Спустя 5 минут, 54 секунды (20.09.2011 - 14:29) Winston написал(а):
Цитата (Phpprogger @ 20.09.2011 - 14:23) |
как посчитать сколько всего юзеров в базе? |
$q = mysql_query("SELECT COUNT(`login`) FROM `users`");
echo 'Количество юзеров: ' . mysql_num_rows($q);
Спустя 4 минуты, 5 секунд (20.09.2011 - 14:33) Phpprogger написал(а):
Winston
Цитата |
Количество юзеров: 1 |
хотя их больше...
Спустя 2 минуты, 31 секунда (20.09.2011 - 14:36) Winston написал(а):
А так
$q = mysql_query("SELECT COUNT(*) FROM `users`");
echo 'Количество юзеров: ' . mysql_num_rows($q);
Спустя 1 минута, 34 секунды (20.09.2011 - 14:37) Phpprogger написал(а):
тоже самое...
Приду позже
Приду позже
Спустя 4 минуты, 10 секунд (20.09.2011 - 14:41) Winston написал(а):
Ну тогда так попробуй
$q = mysql_query("SELECT COUNT(*) AS `k` FROM `users`");
$res = mysql_fetch_assoc($q);
echo 'Юзеров ' . $res['k'];
Спустя 2 минуты, 38 секунд (20.09.2011 - 14:44) m4a1fox написал(а):
$q = mysql_query("SELECT `id` FROM `users`");
echo 'Количество юзеров: ' . mysql_num_rows($q);
Спустя 32 минуты (20.09.2011 - 15:16) killer8080 написал(а):
m4a1fox
функцию mysql_num_rows нужно избегать, особенно в больших таблицах.
функцию mysql_num_rows нужно избегать, особенно в больших таблицах.
$q = mysql_query("SELECT COUNT(*) FROM `users`");
echo 'Количество юзеров: ' . mysql_result($q, 0);
Спустя 1 час, 15 минут, 15 секунд (20.09.2011 - 16:31) inpost написал(а):
Winston
COUNT - вернёт 1 лишь запись, поэтому mysql_num_rows - возвращает 1, даже если записей будет 0, всё равно вернётся 1 запись с цифрой 0.
Надо выводить через mysql_result, как показал Киллер!
COUNT - вернёт 1 лишь запись, поэтому mysql_num_rows - возвращает 1, даже если записей будет 0, всё равно вернётся 1 запись с цифрой 0.
Надо выводить через mysql_result, как показал Киллер!
Спустя 35 минут (20.09.2011 - 17:06) Phpprogger написал(а):
killer8080
робит.
m4a1fox
робит.
Winston
3 вариант...робит!
Спасибо ребята! Все заслужили плюсы))
Смотрел по постам, вариант Киллера лучше поставлю
робит.
m4a1fox
робит.
Winston
3 вариант...робит!
Спасибо ребята! Все заслужили плюсы))
Смотрел по постам, вариант Киллера лучше поставлю
_____________
хе-хе.