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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Прошу помощи,проблема с объежинением полей!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
likvidator
Отправлено: 25 Марта, 2012 - 14:42:27
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Я замучался...прошу помощи! У меня в бд есть два поля id и userid. Причем значения userid могут совпадать,а значения id нет.( т.е id=1,userid=1;id=1,userd=1 => не может, id=1,userd=1;id=2,userd=1=> может). Вид таблицы:
_________
id | userid|
__|_____|
1 |_12___|
2 |_56___|
6 |_12___|
4 |_3____|
Так вот задача: Выбрать все поля с ОДИНАКОВЫМИ полями userid,объединить их в один массив и удалить все значения userid,чтоб остались только id,принадлежащие userid.

(Отредактировано автором: 25 Марта, 2012 - 14:47:29)

 
 Top
likvidator
Отправлено: 25 Марта, 2012 - 16:50:14
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


ну объясните ужеее!!
 
 Top
LIME
Отправлено: 25 Марта, 2012 - 16:54:26
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `id` FROM `table` WHERE `userid`=$var;
 
 Top
DeepVarvar Супермодератор
Отправлено: 25 Марта, 2012 - 17:00:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




А вот тут хз..
Я не уверен что одним запросом выйдет, но мысли ушли вот сюда:
CODE (SQL):
скопировать код в буфер обмена
  1. DELETE FROM tbl WHERE id IN(SELECT id FROM tbl GROUP BY id HAVING COUNT(user_id) > 1)
 
 Top
likvidator
Отправлено: 25 Марта, 2012 - 17:01:52
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


LIME пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `id` FROM `table` WHERE `userid`=$var;

и??
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM friends WHERE userid='$userid'", $db);
  2. $myrow = mysql_fetch_row($result);

переменная муров будет давать значения id только 1 строчки,а мне надо,чтоб нескольких,ну я же норм описал((!!
PS ДАЖЕ ЕСЛИ ВЫБИРПТЬ НЕ * а id?все равно он схватит только 1 строчку с id
(Добавление)
Огорчение

(Отредактировано автором: 25 Марта, 2012 - 17:03:12)

 
 Top
LIME
Отправлено: 25 Марта, 2012 - 17:09:46
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




DeepVarvar а че не дроп сразу)) выборка нужна
просто парень вообще не читал как с мускулом работать
PHP:
скопировать код в буфер обмена
  1.  while ($row = mysql_fetch_array($result)) {
  2.         $arr[]=$row['id'];  
  3.     }
  4. var_dump($arr);

(Отредактировано автором: 25 Марта, 2012 - 17:10:04)

 
 Top
likvidator
Отправлено: 25 Марта, 2012 - 17:10:27
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


DeepVarvar пишет:
А вот тут хз..
Я не уверен что одним запросом выйдет, но мысли ушли вот сюда:
CODE (SQL):
скопировать код в буфер обмена
  1. DELETE FROM tbl WHERE id IN(SELECT id FROM tbl GROUP BY id HAVING COUNT(user_id) > 1)

Можешь мне объяснить,что мы делаем этим запросом?
 
 Top
DeepVarvar Супермодератор
Отправлено: 25 Марта, 2012 - 17:10:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. $arr = array();
  2. while ($myrow = mysql_fetch_assoc($result)) $arr[] = $myrow;
  3. var_dump($arr);

(Добавление)
likvidator пишет:
Можешь мне объяснить,что мы делаем этим запросом?
Судя по твоим текущим знаниям - не смогу, не поймешь.
 
 Top
likvidator
Отправлено: 25 Марта, 2012 - 17:11:24
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


и я не говорил,что одним запросом,цель в том,чтоб получить массив с несколькими значениями,взятых из бд и принадлежащих к userid
(Добавление)
DeepVarvar пишет:
PHP:
скопировать код в буфер обмена
  1. $arr = array();
  2. while ($myrow = mysql_fetch_assoc($result)) $arr[] = $myrow;
  3. var_dump($arr);

(Добавление)
likvidator пишет:
Можешь мне объяснить,что мы делаем этим запросом?
Судя по твоим текущим знаниям - не смогу, не поймешь.

Постарайся Подмигивание
 
 Top
DeepVarvar Супермодератор
Отправлено: 25 Марта, 2012 - 17:15:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Этим запрослом мы пытаемся (я его не проверял) удалить все записи из таблицы где для конкретного id существует больше одного user_id
 
 Top
likvidator
Отправлено: 25 Марта, 2012 - 17:16:45
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Хотя,знаешь,я уловил ход твоих мыслей!Щас,кое-что в мануале посмотрю!
(Добавление)
DeepVarvar пишет:
Этим запрослом мы пытаемся (я его не проверял) удалить все записи из таблицы где для конкретного id существует больше одного user_id

А это нам зачем? Щас я просто из массива удалю userid и будет мне счастье,а тебе "спасибо"!
(Добавление)
Сделал!! И даже проще!
PHP:
скопировать код в буфер обмена
  1. while ($myrow = mysql_fetch_assoc($result)) $arr[] = $myrow;
Заменил на
PHP:
скопировать код в буфер обмена
  1. while ($myrow = mysql_fetch_assoc($result)) $arr[] = $myrow['id'];
И все отл,спасибо!!
 
 Top
Давит
Отправлено: 25 Марта, 2012 - 20:46:48
Post Id



Частый гость


Покинул форум
Сообщений всего: 147
Дата рег-ции: Май 2011  


Помог: 2 раз(а)




PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT id from table WHERE user_id = $user_id");
  2. $arr = array();
  3. while ($row = mysql_fetch_array($result)) {
  4.         $arr[]=$row['id'];  
  5.     }
  6.  
  7. print_r($arr);

(Отредактировано автором: 25 Марта, 2012 - 20:47:13)

 
 Top
likvidator
Отправлено: 26 Марта, 2012 - 16:19:31
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result - вот что будет...
 
 Top
DelphinPRO
Отправлено: 26 Марта, 2012 - 16:30:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




ошибка в запросе


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
likvidator
Отправлено: 26 Марта, 2012 - 21:05:24
Post Id


Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Март 2012  


Помог: 4 раз(а)

[+]


А,не подумал,все..но все равно,я нашел решение своей проблемы!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB