- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день уважаемые форумчане.
Подскажите как вывести все данные из двух таблиц
Итак в базе есть таблица категори и таблица новости
Мне надо при вызове таблицы новости, получить все значения из таблицы категории
надо их загнать в select
<select name="category">
<option value="1">КИНО</option></select>
<option value="2">Вино</option></select>
<option value="3">Пиво</option></select>
код который выбирает новость
$sql = mysql_query("SELECT news FROM news where id=".$id."");
if(mysql_num_rows($sql) >0) {
while($r=mysql_fetch_array($sql)) {
Тут надо вывести все значения select
}}
Одну категорию получить не проблема.
Потому как новость выбирается всего одна where id=".$id.
Не хочеться делать второго запроса вбазу на выборку значений з таблицы категории.
Спасибо.
А почему не хочется, или вера не позволяет??
Т.к. вы выбираете новость по id то, надо полагать, вы ожидаете всего одну строку. В таком случае нет смысла в цикле while($r=mysql_fetch_array($sql)).
Опять же, если вы там ожидаете одну строку, то как вы хотите получить все категории в том запросе? Можно конечно сделать вложенный типа:
Но это извращение и вам придется парсить результат.
В данном случае лучше сделать 2-мя запросами
запрос
$sql = mysql_query("SELECT news, category_id, category_name FROM news, category where id='".$id."'");
должен вернуть все категории и нужную новость повторяющуюся в каждой строке
но это имхо извращение, надо делать двумя разными запросами
и кстати не забывайте заключать переменную в кавычки (я попытался выделить красным) так переменная $id в умелых руках может быть совсем и не числом - про sql инъекции почитайте обязательно
и кстати не забывайте заключать переменную в кавычки
Лучше таки перейти на использование PDO и юзать плейсхолдеры.
Именно в данной ситуации лучше сделать 2 запроса. Конечно все зависит от данных, от их объема и т.п., но лучше два быстрых запроса, чем один медленный.
Мне надо при вызове таблицы новости, получить все значения из таблицы категории
Хочу попросить автора, или кого-то из ответивших, если не трудно, объяснить мне суть вопроса.
Хочется предположить, что новости, в таблице новостей, распределены по категориям (новости про кино, про вино, и про пиво). Для этого в таблице новостей очевидно имеется внешний ключ, типа category_id. И требуется сначала показать <SELECT>, состоящий из названий категорий (кино, вино, пиво), а затем, когда посетитель выберет нужную категорию, показать ему новости, относящиеся к этой категории. Вопрос в этом?
Хочу попросить автора, или кого-то из ответивших, если не трудно, объяснить мне суть вопроса.
Хочется предположить, что новости, в таблице новостей, распределены по категориям (новости про кино, про вино, и про пиво). Для этого в таблице новостей очевидно имеется внешний ключ, типа category_id. И требуется сначала показать <SELECT>, состоящий из названий категорий (кино, вино, пиво), а затем, когда посетитель выберет нужную категорию, показать ему новости, относящиеся к этой категории. Вопрос в этом?
нет, не совсем
в данном случае на странице показывается одна определенная новость и есть еще <SELECT>, состоящий из названий категорий (кино, вино, пиво)
для вывода новости выполняется один запрос к БД
для вывода селекта надо сделать другой запрос к другой таблице
но ТС почему то захотел все данные получить одним запросом и интересуется как это сделать (какой запрос должен быть) а все остальные ему советуют так не делать
я предполагаю что ТС думает что если будет один запрос а не два то это будет "экономичнее" чтоли и/или быстрее
но на самом деле все будет наоборот и если таблица новостей достаточно большая то потери производительности будут существенными (так как мускуль перемножит две таблицы и потом будет сортировать все получившиеся строки)
KostaShah, Вы будете 5-м, кто ждет ответа ТС
Лучше таки перейти на использование PDO и юзать плейсхолдеры.
возможно
но если ТС их не юзает, то ему надо хоть как то фильтровать поступающие данные
Именно в данной ситуации лучше сделать 2 запроса. Конечно все зависит от данных, от их объема и т.п., но лучше два быстрых запроса, чем один медленный.
Ясно, сделаем 2 запроса.
Просто у меня таких полей несколько, из трех таблиц надо выбрать.
---------- Добавлено 28.12.2012 в 18:38 ----------
А почему не хочется, или вера не позволяет??
Да нет, просто не хотелось городить кучу запросов к базе.
---------- Добавлено 28.12.2012 в 18:42 ----------
Хочу попросить автора, или кого-то из ответивших, если не трудно, объяснить мне суть вопроса.
Хочется предположить, что новости, в таблице новостей, распределены по категориям (новости про кино, про вино, и про пиво). Для этого в таблице новостей очевидно имеется внешний ключ, типа category_id. И требуется сначала показать <SELECT>, состоящий из названий категорий (кино, вино, пиво), а затем, когда посетитель выберет нужную категорию, показать ему новости, относящиеся к этой категории. Вопрос в этом?
Мне нужно отредактировать новость.
есть несколько таблиц.
таблица city news kategory
При редактировании селектом мы можем менять город и категорию.
Ну ошиблись при добавлении.
Так вот я думал можно выбрать один запросом все данные.
Запрос
$sql = mysql_query("SELECT news.*,kategory.* FROM news,kategory where news.kategory=kategory.id and news.id='".$id."'");
Вернет мне ту категорию кторая в news.id='".$id
---------- Добавлено 28.12.2012 в 18:43 ----------
Именно в данной ситуации лучше сделать 2 запроса. Конечно все зависит от данных, от их объема и т.п., но лучше два быстрых запроса, чем один медленный.
Пожалуй вы правы, тем более что категорий всего 10 а городов 20.