SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.10.2016 05:03:29

Lipkiy
Участник
Зарегистрирован: 30.10.2016
Сообщений: 4

Выборка по выборке в виде списка

Прошу помощи по созданию выборки из другой выборки..
Сам новичёк, поиск не помог...

С помощью:

echo "<select name=\"ORG111\">";
$sql = "SELECT name FROM company";
$result_select = mysql_query($sql);
while($object = mysql_fetch_object($result_select)){
echo "<option value = '$object->name' > $object->name </option>";
}
echo "</select>";

Получаю выпадающий список.

Как сделать, что бы при выборе определённого параметра, от этого параметра зависела выборка:

$query = "SELECT id, name, adr, tel, dir, oth, data FROM $table WHERE org='ORG111'";
$res = mysql_query($query) or die(mysql_error());
 
while ($row = mysql_fetch_array($res)) {
    echo "<tr>\n";
    echo "<td>".$row['id']."</td>\n";
    echo "<td>".$row['data']."</td>\n";
    echo "<td>".$row['name']."</td>\n";
    echo "<td>".$row['adr']."</td>\n";
    echo "<td>".$row['tel']."</td>\n";
    echo "<td>".$row['dir']."</td>\n";
    echo "<td>".$row['oth']."</td>\n</tr>\n";
}
echo ("</table>\n");


То-есть вместо org='ORG111' получить org='значение выпадающего списка'.

Прошу принять мою непросвещённость и описать всё более подробно smile

Неактивен

 

#2 30.10.2016 13:39:46

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Выборка по выборке в виде списка

Давайте не будем смешивать в одну кучу sql и неsql smile. У Вас, как понял, есть две таблицы - одна из них это компании, а в другой содержатся данные о компаниях, так? Приведите структуры таблицы, небольшой набор тестовых данных - и что Вы хотите получить?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 31.10.2016 01:44:34

Lipkiy
Участник
Зарегистрирован: 30.10.2016
Сообщений: 4

Re: Выборка по выборке в виде списка

Да две таблицы одна список организаций, другая сообщения (заявки).
Когда создаю заявку - указываю организацию из списка и добавляю в базу сообщений.
При просмотре всех заявок необходим был фильтр, что бы смотреть заявки от каждой организации по отдельности..

Пока решил так:


if(@$_POST['submit_fff']) {
$query = "SELECT id, data, org, wks, hour, job, mass FROM $table WHERE org='{$_POST['morg']}'";
}
else {
$query = "SELECT id, data, org, wks, hour, job, mass FROM $table";
}

echo "<form action=\"111.php\" method=\"post\" name=\"submit_fff\">\n";
echo "<select name=\"morg\">";
$sql = "SELECT name FROM company";
$result_select = mysql_query($sql);
while($object = mysql_fetch_object($result_select)){
echo "<option value = '$object->name' > $object->name </option>";
}
echo "</select>";
echo "<input type=\"submit\" class=\"buttons\" name=\"submit_fff\" value=\"Go\" />";
echo "</form>";
 

Неактивен

 

#4 31.10.2016 02:24:21

Lipkiy
Участник
Зарегистрирован: 30.10.2016
Сообщений: 4

Re: Выборка по выборке в виде списка

И ещё если несложно опять про две таблицы.. Как вернуть имя некого id из другой таблицы..
То есть если я например не имя организации хочу хранить в таблице сообщений, а её id.
Если я его в сообщения записываю с помощью:


$sql = "SELECT name, id FROM $table";
$result_select = mysql_query($sql);
while($object = mysql_fetch_object($result_select)){
echo "<option value = '$object->id' > $object->name </option>";
 

То в общем списке вижу его номер, как вернуть имя по id обратно, дабы подставлять его в нужное поле?
Таблица сообщений формируется:

while ($row = mysql_fetch_array($res)) {
    echo "<tr>\n";
    echo "<td>".$row['id']."</td>\n";
    echo "<td>".$row['data']."</td>\n";
    echo "<td>".$row['org']."</td>\n";
    echo "<td>".$row['wks']."</td>\n";
    echo "<td>".$row['hour']."</td>\n";
    echo "<td width=\"40%\">".$row['job']."</td>\n";
    echo "<td width=\"40%\">".$row['mass']."</td>\n</tr>\n";
}
 
echo ("</table>\n");
 


name сейчас соответствует org в разных таблицах,
сейчас просто записываю полностью имя организации '$object->name' > $object->name в поле org другой таблицы.
Естественно уверен, что это нехорошо, хочется сократить до id.
Но не смог в конструкцию     echo "<td>".$row['org']."</td>\n"; вставить возврат имени типа '$object->name' > $object->id опять же из другой таблицы...
Список таблиц:
company (список организаций)
id, name, adr, tel, dir, oth, data
mass (сообщения)
id, data, org, wks, hour, job, mass
id у разных таблиц - принадлежат разным категориям, в смысле: есть id компаний, а есть id сообщений, все они начинаются с 01, 02 и т.д. но ничего общего не имеют.

Неактивен

 

#5 31.10.2016 02:39:06

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Выборка по выборке в виде списка

ваш вопрос отношения к mysql не имеет
имеет смысл спрашивать его на соответствующем форуме по php, например webew.ru/php/

если я правильно вас понял, то в чем сложность написать
     echo "<td>".$object['name']."</td>\n";

Неактивен

 

#6 31.10.2016 03:40:26

Lipkiy
Участник
Зарегистрирован: 30.10.2016
Сообщений: 4

Re: Выборка по выборке в виде списка

Не работает..
Видимо я ещё совсем зелёный..

Подскажите как преобразовать это:
$sql1 = "SELECT name, id FROM company";
$result_select1 = mysql_query($sql1);
while($object1 = mysql_fetch_object($result_select1)){
echo "<option value = '$object1->id' > $object1->name </option>";
}

Что бы использовать так:
while ($row = mysql_fetch_array($res)) {
    echo "<td>".$object1['name']."</td>\n";
}

Отредактированно Lipkiy (31.10.2016 03:43:25)

Неактивен

 

#7 31.10.2016 12:30:11

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Выборка по выборке в виде списка

не понятно, что значит "не работает"
сложно сказать что-то, видя отдельные куски.
и вы скорее получите ответ на ресурсе по php

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson