Вывод циклом

Программирование, которое не связано с API.
Ответить
Аватара пользователя
112
Модератор
Модератор
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53

Вывод циклом

Сообщение 112 »

Здравствуйте!Вообщем,не могу решит не большую проблему с циклом.Надо что-бы оно выводило по очереди-от большего к меньшему.Но оно выводит в таком порядке в котором прислал.

Код: Выделить всё

 <?php$db_host="localhost"; $db_user="ivanz"; $db_password="800800"; $db_name = "ivanz"; $table_name = "ripok";$friend_id = $_POST['friend_id'];  mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());mysql_select_db($db_name) or die (mysql_error());mysql_query("SET NAMES 'utf8'");  preg_match_all("#(.+?),#is", $friend_id, $matches);  echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";echo "<response>"; foreach ($matches[0] as $every_user_id) {$query ='SELECT * from `'.$table_name.'` WHERE `user_id`="'.$every_user_id.'" order by record desc limit 100';$sql = @mysql_query($query); for ($i=0; $i<mysql_num_rows($sql);$i++){$r = mysql_fetch_array($sql);echo"<user>";echo"<user_id>".$r['user_id']." </user_id>";echo"<score>".$r['record']." </score>";echo"<name>".$r['name']." </name>";echo"<photo_rec>".$r['photo']." </photo_rec>";echo"</user>";}} echo "</response>";?> 
Есть какие нибудь предложения?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод циклом

Сообщение Александр »

order by record без desc не то?
Аватара пользователя
112
Модератор
Модератор
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53

Re: Вывод циклом

Сообщение 112 »

Александр
неа :cry:
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод циклом

Сообщение Александр »

У тебя обращение к базе в цикле происходит... Это ж какая нагрузка на сервер может быть.
Лучше опиши примерную структуру твоей базы и что ты хочешь получить запросом.
Аватара пользователя
112
Модератор
Модератор
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53

Re: Вывод циклом

Сообщение 112 »

Александр
База такая.
user_id name mark record visits photo
ид имя монетки рекорд посещения фото

Запросом передаю user_id, пытаюсь получить в ответе user_id,name,record,photo в порядке убывания по record.
Но все выводится по порядку,т.е как прислал,допустим id=1,2,3,4,5,6, то оно вернется в этом порядке,даже если record user'a 6 больше чем user'a 1.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод циклом

Сообщение Александр »

112
Так какой конечный результат хочешь видеть?
Для чего вообще нужно это?

Код: Выделить всё

`user_id`="'.$every_user_id.'"
Аватара пользователя
112
Модератор
Модератор
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53

Re: Вывод циклом

Сообщение 112 »

Александр
чтобы данные [user_id,record,photo,name] вывело тех юзеров ,которые я присылаю,

Код: Выделить всё

 $friend_id = $_POST['friend_id']; 
и чтобы эти данные вывелись в порядке убывания поля рекордов (поля record)
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод циклом

Сообщение Александр »

Так почему бы не собрать эти id через запятую, и не сделать примерно так:

Код: Выделить всё

SELECT * FROM table_name WHERE `user_id` IN (1,2,3,4,5) ORDER BY record DESC LIMIT 100
Без обращений к базе данных в цикле.
Аватара пользователя
112
Модератор
Модератор
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53

Re: Вывод циклом

Сообщение 112 »

Александр
0o работает),спасибо )
Ответить