Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите плиз, вопрос по SELECT
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Помогите плиз, вопрос по SELECT

Страниц (2): [1] 2 »
 

1. Maksim337 - 19 Ноября, 2009 - 18:59:34 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. SELECT `name` FROM `users` WHERE `id`='$id'
  3.  

Вот делаю к примеру такую выборку для определения имени юзера с определенным id.
Так вот хотел узнать как сделать чтобы выбрать имена юзеров нескольких по определенным ID ?

чтото типа такого

PHP:
скопировать код в буфер обмена
  1.  
  2. SELECT `name` FROM `users` WHERE `id`='$id',`id`='$id_2'`id`='$id_3'`id`='$id_3'
  3.  

где переменные $id $id_2 $id_3 определяються в php скрипте и всегда разные.
Я понимаю что код что описан выше нерабочий ну хотел бы узнать как реализовать чтото подобное?
Если по другому это только в цикле подставлять и выбирать, но это же накладноНедовольство, огорчение как сделать подскажите! Пожалуйста!
2. Мелкий - 19 Ноября, 2009 - 19:04:20 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1. SELECT `name` FROM `users` WHERE `id`='$id' or `id`='$id_2' or `id`='$id_3' or `id`='$id_3'
3. Maksim337 - 19 Ноября, 2009 - 19:15:29 - перейти к сообщению
Мелкий если не ошибаюсь подобная штука выведет имя для первого
(Добавление)
Недовольство, огорчение
4. Монстр_11111 - 19 Ноября, 2009 - 19:19:15 - перейти к сообщению
Ну раз энд не катит . То ор верное решение .

Ты уверен что правильно выводишь массив ?
5. Maksim337 - 19 Ноября, 2009 - 19:30:44 - перейти к сообщению
Спасибо вам ребята за помошь, ну вы хоть думайте что предлогаете, and не катит тоже!
6. Монстр_11111 - 19 Ноября, 2009 - 19:42:47 - перейти к сообщению
mysql_fetch_array
mysql_fetch_row
mysql_fetch_assoc
Одно из трех у тебя используется ?
7. Maksim337 - 19 Ноября, 2009 - 19:45:38 - перейти к сообщению
Радость or и and не подходит!!!!!!! Если and то ничего не выводит, так как id принимает только одно значение! а если or то выбирает имя любого из предложеных id в нашем случае первого... если первого не находит то второго и так далее!
(Добавление)
Монстр_11111 не хорошо редактировать свои сообщения если я уже ответил на них, я пользуюсь mysql_fetch_array
8. Монстр_11111 - 19 Ноября, 2009 - 19:51:46 - перейти к сообщению
Макс , было б не хорошо если б я не изменил его , то озадачил бы половину помогающих тебе .
Ты не правильно выводишь , запрос с or верный.
Посмотри результат echo count($твоя переменная);
(Добавление)
Выложи свой код с запросом и выводом
9. Maksim337 - 19 Ноября, 2009 - 19:54:53 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $select="SELECT * FROM `b` WHERE `id`='Petya' OR `id`='Maks' ";
  2.  $resource=mysql_query($select);
  3.  
  4. $data=mysql_fetch_array($resource,MYSQL_NUM);
  5.  
  6. echo '<pre>';
  7. print_r($data);
  8. echo '<pre>';


там смотри или or или and Радость
10. Монстр_11111 - 19 Ноября, 2009 - 20:06:18 - перейти к сообщению
Максим , почему у тебя в запросе * если тебе имена нужны? И зачем иды через имена писать.
Вот по идее должно работать

PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT `name` FROM `b` WHERE `id`='Petya' OR `id`='Maks';");
  2. while ($data = mysql_fetch_array($query))
  3. {
  4. echo $data['name'].'<br>';
  5. }

(Добавление)
И вместо mysql_fetch_array , используй один нужный тебе вид ( либ row либ assoc )
11. Maksim337 - 19 Ноября, 2009 - 20:17:31 - перейти к сообщению
Монстр_11111 ну ты хоть сам пробовал что пишешь? там будет всеравно одно значение в масиве!
(Добавление)
Ё-мае народ помогите! Я ж говорю целый день просидел, и каждый метод перепробывал на практике.... фишка с and и or не катит, или как-то по другому надо или я не знаю...
Вот наткнулся на UNION... Только хотелось бы знать как в этом случае правильно и лучше для скорости обработки скрипта и нагрузке и т.д. и т.п.
12. OverNik - 19 Ноября, 2009 - 20:21:36 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT `name` FROM `b` WHERE `id`='Petya' OR `id`='Maks';");
  2. $data = mysql_fetch_array($query);
  3. do
  4. {
  5.   echo $data['name'].'<br>';
  6. }
  7. while($data = mysql_fetch_array($query));

а так?
13. Maksim337 - 19 Ноября, 2009 - 20:25:48 - перейти к сообщению
OverNik,Монстр_11111,Мелкий большое спасибо, понял в чем ошибка... Если что извините
14. OverNik - 19 Ноября, 2009 - 20:26:23 - перейти к сообщению
оу, так нам хотя бы роскажи Улыбка
нашел и ушел.... Ха-ха
15. Maksim337 - 19 Ноября, 2009 - 20:31:45 - перейти к сообщению
да вы все правильно написали ребятаУлыбка я ступил с fetch_assoc
(Добавление)
Спасибо все очень помогли, просто благодаря вам понял что функции mysql_fetch_array n подобные возвращают строку результата, а не значения всего результата, я то выбирал раньше or , но выводил только одну строку...

 

Powered by ExBB FM 1.0 RC1