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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
abm
Отправлено: 30 Октября, 2011 - 01:33:58
Post Id


Новичок


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


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




Всем привет,
сделал таблицу в которой есть станции Питерского метро, они все находятся в одной ячейке. Мне нужно отсортировать данные относительно конкретного метро. Как это сделать?
Допустим у меня человек живет рядом с тремя станциями: Невский, Маяковская, Восстание. Когда я фильтрую по Невскому, то я его вижу и т.д..
спасибо! Улыбка
 
 Top
caballero
Отправлено: 30 Октября, 2011 - 02:39:59
Post Id


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


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


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




Шо сие такое ячейка?
В БД такого термина нет.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
abm
Отправлено: 30 Октября, 2011 - 11:08:47
Post Id


Новичок


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


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




ХЗ как правильно сказать - еще изучаю это все, может строка:

Вот так выглядит база:

ФИО | АДРЕС | МЕТРО
ИВАНОВ | СПБ, ... | Невский, Маяковска, ...

вот от сюда...
(Добавление)
В эту ячейку (строку) я вносил данные вот таким образом:

<select id="metro" name="station[]" multiple>
тут список...
 
 Top
ant
Отправлено: 30 Октября, 2011 - 13:54:50
Post Id



Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Янв. 2011  
Откуда: Украина, Крым


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




Вообще ничего не понятно. Думаю, чтобы вам помогли, нужно более понятно сформулировать вопрос.
 
 Top
abm
Отправлено: 30 Октября, 2011 - 14:42:13
Post Id


Новичок


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


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




Ок, давайте с начала.

Есть таблица:
Названия полей: | fio | adress | metro |
Строкa1: |ИВАНОВ | СПБ | Невский |
Строкa2: |Петров | СПБ. | Невский, Маяковская |
Строка3: |Сидоров| СПБ | Восстания, Маяковская |

Я заношу данные в базу методом POST, через форму добавления. В в форме добавления у меня есть список станций:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <select name="metro[]" multiple>
  2.     <option>Автово</option>
  3.     <option>Академическая</option>
  4.     <option>Балтийская</option>
  5.     <option>Василеостровская</option>
  6.     <option>Владимирская</option>
  7.     <option>Волковская</option>
  8. </select>

Сл-но человек может выбрать множество станций , а не только одну. Если он выбирает несколько то в базу они записываются через запятую. Запись производится посредством:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $metro = implode(", ", $metro);


Теперь мне нужно вытащить информацию из базы.
Для этого пишу скрипт выборки:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $base = mysql_query("SELECT * FROM $table WHERE metro='Маяковская'",$db);

Но у меня ничего не появляется, хотя должны повлятся данные из 2 и 3 строк. если я фильтрую по "Невскому", то отображается только 1 строка, а должны: 1 и 2.

Вопрос
Как сделать так чтобы все работало верно, explod'ом не получилось... хотя наверное не правильно сделал..
Спасибо
 
 Top
Мелкий Супермодератор
Отправлено: 30 Октября, 2011 - 16:30:31
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Т.е. связь многие-ко-многим.

В рамках реляционной модели подобное делается так:
таблица пользователей не содержит никаких данных данных о ближайшем метро
есть таблица станций метрополитена
есть таблица связей - составной ключ по пользователю и по id станции.


-----
PostgreSQL DBA
 
 Top
abm
Отправлено: 30 Октября, 2011 - 16:58:36
Post Id


Новичок


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


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




Не совсем понял,
можно про это по подробнее:
Цитата:
есть таблица связей - составной ключ по пользователю и по id станции.
 
 Top
Itan
Отправлено: 30 Октября, 2011 - 19:38:55
Post Id


Частый гость


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


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




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `metro` FROM $table WHERE metro LIKE 'Маяковская'


Может так? Не проверял. Попробуйте.

И только потом, по-идее, надо делать разбор по explode.

(Отредактировано автором: 30 Октября, 2011 - 19:40:40)

 
 Top
Мелкий Супермодератор
Отправлено: 30 Октября, 2011 - 19:54:07
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




abm, с какого места подробнее? Обычная таблица, 2 поля. Первичный ключ на оба.
(Добавление)
Itan пишет:
И только потом, по-идее, надо делать разбор по explode.

Но всё же, лучше сделать правильно.


-----
PostgreSQL DBA
 
 Top
abm
Отправлено: 30 Октября, 2011 - 21:47:20
Post Id


Новичок


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


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




Itan - Lik'ом вариант конечно, если не получится "понять что имеет ввиду" b]Мелкий[/b], то так и сделаю...

Мелкий,
Цитата:
еще изучаю это все, может строка:
как я писал, я все это пока изучаю и не оч. хорошо разбираюсь...

Я понял, что ты рекомендуешь в двух таблицах это делать, согласен есть смысл. Но как мне это реализовать, можешь на пальцах по подробнее объяснить.. Что значит:
Цитата:
Первичный ключ на оба


спс
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Октября, 2011 - 22:17:19
Post Id



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


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


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




abm, таблицы три, а не две:
1) Юзеры. (айди, имя)
2) Станции метро. (айди, название)
3) Связи. (тут просто айдишники: метро - юзер, метро - юзер, метро - юзер...)
 
 Top
abm
Отправлено: 30 Октября, 2011 - 22:36:00
Post Id


Новичок


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


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




DeepVarvar, понял, что не понял.. Не понял
Цитата:

3) Связи. (тут просто айдишники: метро - юзер, метро - юзер, метро - юзер...)
каким образом я буду записвать айдишники: метро - юзер?
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Октября, 2011 - 22:41:19
Post Id



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


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


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




CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO tbl3 (metro_id, user_id) VALUES (3,54)
 
 Top
abm
Отправлено: 30 Октября, 2011 - 23:00:54
Post Id


Новичок


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


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




это я понимаю, а если одному user три-четыре станции?
 
 Top
DeepVarvar Супермодератор
Отправлено: 31 Октября, 2011 - 00:45:37
Post Id



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


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


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




Значит три-четыре строчки таких и записываете.
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO tbl3 (metro_id, user_id)
  2.   VALUES
  3.   (3,54),
  4.   (1,54),
  5.   (7,54),
  6.   (2,54),
  7.   (6,54)
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB