Страница 1 из 1

Вывод циклом

Добавлено: 25 сен 2011, 20:32
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>";?> 
Есть какие нибудь предложения?

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

Добавлено: 25 сен 2011, 20:38
Александр
order by record без desc не то?

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

Добавлено: 25 сен 2011, 20:55
112
Александр
неа :cry:

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

Добавлено: 25 сен 2011, 21:03
Александр
У тебя обращение к базе в цикле происходит... Это ж какая нагрузка на сервер может быть.
Лучше опиши примерную структуру твоей базы и что ты хочешь получить запросом.

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

Добавлено: 25 сен 2011, 21:54
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.

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

Добавлено: 26 сен 2011, 20:36
Александр
112
Так какой конечный результат хочешь видеть?
Для чего вообще нужно это?

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

`user_id`="'.$every_user_id.'"

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

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

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

 $friend_id = $_POST['friend_id']; 
и чтобы эти данные вывелись в порядке убывания поля рекордов (поля record)

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

Добавлено: 26 сен 2011, 21:09
Александр
Так почему бы не собрать эти id через запятую, и не сделать примерно так:

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

SELECT * FROM table_name WHERE `user_id` IN (1,2,3,4,5) ORDER BY record DESC LIMIT 100
Без обращений к базе данных в цикле.

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

Добавлено: 26 сен 2011, 21:21
112
Александр
0o работает),спасибо )