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 :: Что такое алиасы??? Помогите вывести повторяющиеся строки из бд
Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010 Откуда: Россия, Ижевск
Помог: 1 раз(а)
Здравствуйте!!! У меня получилась такая ситуация - есть таблица, где хранятся данные об автомобилях пользователей. Идентификатором является ID пользователя, и он может повторяться (вдруг пользователь захочет добавить больше одного автомобиля). Надеюсь, что объяснил понятно и приводить всю таблицу не надо. А функции PHP? например, самая понятная мне mysql_fetch_assoc выводит только одну строку. На сайте в описаниях функций для mysql что-то видел про алиасы, но не понял, как их использовать.
Пробовал конструкцию типа
Но, как я понял, mysql_query срабатывает только один раз....
Пожалуйста, подскажите
Может как-то по-другому можно реализовать то, что я хочу.
Я хочу, чтобы пользователь заходил на страницу и ему (то есть его client_id) выдавалась вся информация об автомобилях, которые он добавил (добавить автомобилей он может сколько угодно).
Неужели надо получать содержимое всей таблицы и выводить для отдельного клиента информация с помощью цикла, обрабатывая все значения таблицы. Тогда может как-то отсортировать по client_id строки таблицы??? К сожалению, не знаю, как называется такая функция (вроде есть)??? Вообщем, объясните новичку...
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Везде по всему интренету, в том числе и здесь, если ты щелкнешь по названию функции в твоем коде, ты увидишь, что ее вызывать надо в цикле и она будет возвращать по одной строке.
Алиас - псевдоним. Можно назначать столбцам, таблицам, процедурам, подзапросам, представлениям. Как правило, он короткий и используется, чтоб не писать длинное настоящее имя объекта. Либо если в запросе используется один объект БД два раза - чтоб их стало как будто два.
awiz
Отправлено: 28 Июня, 2010 - 19:46:34
Гость
Покинул форум
Сообщений всего: 69
Дата рег-ции: Май 2010
Помог: 0 раз(а)
не совсем понял саму проблему, но помойму надо просто убрать LIMIT 1 и все
koka
Отправлено: 28 Июня, 2010 - 19:53:08
Гость
Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010 Откуда: Россия, Ижевск
Помог: 1 раз(а)
Champion пишет:
Везде по всему интренету, в том числе и здесь, если ты щелкнешь по названию функции, ты увидишь, что ее вызывать надо в цикле и она будет возвращать по одной строке.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
koka пишет:
Идентификатором является ID пользователя, и он может повторяться (вдруг пользователь захочет добавить больше одного автомобиля).
В данном случае это не ключевой идентификатор а поле для ограничения условия в выборке - по нему к примеру можно составить JOIN-запрос для получения информации о пользователя по текущей информации об автомобиле А сами записи строк автомобилей должны содержать уникальный ключевой индекс - чтобы каждую записть можно было однозначно выбрать и связать с ней данные
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
koka
Отправлено: 29 Июня, 2010 - 22:12:13
Гость
Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010 Откуда: Россия, Ижевск
Помог: 1 раз(а)
JustUserR пишет:
koka пишет:
Идентификатором является ID пользователя, и он может повторяться (вдруг пользователь захочет добавить больше одного автомобиля).
В данном случае это не ключевой идентификатор а поле для ограничения условия в выборке - по нему к примеру можно составить JOIN-запрос для получения информации о пользователя по текущей информации об автомобиле А сами записи строк автомобилей должны содержать уникальный ключевой индекс - чтобы каждую записть можно было однозначно выбрать и связать с ней данные
Спасибо всем за советы!!! Но вот совершенно неожиданно возникла другая проблема. Я решил добавить в таблицу поле auto_id (c auto_increment); Но появляется ошибка
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'condition,privod,country,comment) VALUES('Mazda', 'MPV', ' at line 1
Запрос для бд следующий, в скрипте регистрации работает нормально
$result=mysql_query("INSERT INTO automobiles(marka,model,dvig_nomer,dvig_cod,dvig_value,kyzov,kpp,kpp_number,vin,year,month,abs,gyr,condition,privod,country,comment) VALUES('{$_POST['marka']}',
'{$_POST['model']}',
'{$_POST['dvig_nomer']}',
'{$_POST['dvig_cod']}',
'{$_POST['dvig_value']}',
'{$_POST['kyzov']}',
'{$_POST['kpp']}',
'{$_POST['kpp_number']}',
'{$_POST['vin']}',
'{$_POST['year']}',
'{$_POST['month']}',
'{$_POST['abs']}',
'{$_POST['gyr']}',
'{$_POST['condition']}',
'{$_POST['privod']}',
'{$_POST['country']}',
'{$_POST['comment']}')");
Причём этот запрос даже не работает без auto_id в таблице, то есть вообще без идентификаторов. Если я не перечисляю поля таблицы (не знаю как это называется)
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
Ну нужно же и auto_id заполнять. вставлять 'NULL'
koka
Отправлено: 29 Июня, 2010 - 22:31:43
Гость
Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010 Откуда: Россия, Ижевск
Помог: 1 раз(а)
SAD пишет:
Ну нужно же и auto_id заполнять. вставлять 'NULL'
auto_id нужно сделать null по умолчанию в таком случае????
Но запрос и не работает без auto_id и таблице. Обязательно ли нужно заполнять auto_id и тому подобные??? У меня есть таблица, где client_id (c autoincrement) стоит в начале, перечисляю поля таблицы и нормально вставляется.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
koka пишет:
Теперь всё работает. Но почему я не могу перечислить поля таблицы, в чём проблема????
По умолчанию SQL-синтаксис позволяет использовать имена SQL-полей без обрамления их обратные кавычки если они соответствуют неким синтаксическим правилам - но в общем случае если они содержат пробелы или начинаются с цифры или содержат символы не-ASCII-кодировки то их нужно обрамлять соответствующим образом В вашем случае видно что проблема в поле abs - которое совпадает с именем встроенной функции и которое требует явного обрамления в обратные кавычки
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.