[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с выборкой
dubushka1990
здравствуйте! у меня следующая проблема:
нужно сделать выборку по полю базы данных и вывести данные списком относящиеся лишь к этой выборке...
есть код, но он выводит все данные без выборки


$result = mysql_query ("SELECT insty, id FROM insitut");
$myrow = mysql_fetch_array($result);

if($myrow['insty'] == 'Институт Мультимедиа')
{
$result = mysql_query ("SELECT sername , name , faname , id FROM abit");
$myrow = mysql_fetch_array($result);

do
{
printf ("<p><a href='edit_abit.php?id=%s'>%s %s %s</a></p>",$myrow["id"],$myrow["sername"],$myrow["name"],$myrow["faname"]);
}
while($myrow = mysql_fetch_array($result));
}


помогите пожалуйста разобраться, подправьте... буду крайне благодарен



Спустя 7 минут, 6 секунд (28.03.2012 - 12:26) Visman написал(а):
В запросах нужно писать условия, например
SELECT insty, id FROM insitut WHERE id=546738

тогда будет возвращать, то что требуется.

Спустя 4 минуты, 57 секунд (28.03.2012 - 12:31) dubushka1990 написал(а):
увы, но ничего абсолютно не выводит...
user posted image

Спустя 3 минуты, 37 секунд (28.03.2012 - 12:35) wplounge написал(а):
1. А по чем выборку-то делать?
2.

$result = mysql_query ("SELECT sername , name , faname , id FROM abit");
$myrow = mysql_fetch_array($result);

do
{
printf ("<p><a href='edit_abit.php?id=%s'>%s %s %s</a></p>",$myrow["id"],$myrow["sername"],$myrow["name"],$myrow["faname"]);
}
while($myrow = mysql_fetch_array($result));
}

Поищи в гугле словосочетание "индусский код" :P . Все делается намного проще:

$result = mysql_query ("SELECT sername , name , faname , id FROM abit");
while($myrow = mysql_fetch_array($result)){
printf ("<p><a href='edit_abit.php?id=%s'>%s %s %s</a></p>",$myrow["id"],$myrow["sername"],$myrow["name"],$myrow["faname"]);
}

Спустя 7 минут, 24 секунды (28.03.2012 - 12:42) dubushka1990 написал(а):
у меня несколько институтов в таблице "insitut" и данные в таблице " abit". связаны эти 2 таблице по полю id, нужно сделать выборку по институту , к примеру
'insty' == 'Институт Мультимедиа' 
,
а вывод уже должен содержать данные другой таблицы

printf ("<p><a href='edit_abit.php?id=%s'>%s %s %s</a></p>",$myrow["id"],$myrow["sername"],$myrow["name"],$myrow["faname"]);

вот в чем проблема

Спустя 1 минута, 12 секунд (28.03.2012 - 12:44) dubushka1990 написал(а):
весь список я могу вывести, а вот сделать выборку не получается...

Спустя 9 минут, 42 секунды (28.03.2012 - 12:53) wplounge написал(а):
Первый запрос:
SELECT id FROM insitut WHERE insty = 'Институт Мультимедиа' 


Второй запрос:
 SELECT sername , name , faname , id FROM abit WHERE (здесь условие по типу: 'поле, по которому связаны таблицы' = 'результат, полученный из 1-го запроса')

Спустя 1 минута, 31 секунда (28.03.2012 - 12:55) wplounge написал(а):
Чтобы сказать конкретнее, надо знать точно структуру твоих таблиц

Спустя 8 минут, 21 секунда (28.03.2012 - 13:03) dubushka1990 написал(а):
insitut: [id] [insty] - 2 поля
abit: [id] [sername] [name] [faname] - 4 поля

простая структура...

я попробовал Ваш код - не выходит...
user posted image

Спустя 50 секунд (28.03.2012 - 13:04) Invis1ble написал(а):

Спустя 14 минут, 46 секунд (28.03.2012 - 13:19) wplounge написал(а):
Цитата
insitut: [id] [insty] - 2 поля
abit: [id] [sername] [name] [faname] - 4 поля


а идентификатора пользователя что, нету?

если id в таблице abit - это id института, тогда так:

$result = mysql_query ("SELECT id FROM insitut WHERE insty = 'Институт Мультимедиа' ");
$row = mysql_fetch_assoc($result);

$result = mysql_query ("SELECT sername, name, faname FROM abit WHERE id = " . $row['id']);
while($myrow = mysql_fetch_assoc($result)){
printf ("<p><a href='edit_abit.php?id=%s'>%s %s %s</a></p>",$myrow["id"],$myrow["sername"],$myrow["name"],$myrow["faname"]);
}

Спустя 14 минут, 52 секунды (28.03.2012 - 13:34) Renden написал(а):
dubushka1990
Цитата
у меня несколько институтов в таблице "insitut" и данные в таблице " abit". связаны эти 2 таблице по полю id, нужно сделать выборку по институту , а вывод уже должен содержать данные другой таблицы

Насколько я понял нужно так:

$query = mysql_query("SELECT i.`insty`,i.`id`,a.`sername`,a.`name`,a.`faname`,a.`id`
FROM `insitut` i
LEFT JOIN `abit` a ON a.`id` = i.`id`
WHERE i.`insty` = 'Институт Мультимедиа'"
);
$row = mysql_fetch_assoc($query);
echo $row['id'].$row['sername'].$row['name'].$row['faname'];

Спустя 6 минут, 27 секунд (28.03.2012 - 13:40) dubushka1990 написал(а):
Renden

выводит, но только один ответ...

Спустя 2 минуты, 30 секунд (28.03.2012 - 13:43) dubushka1990 написал(а):
я немного доделал
    $query = mysql_query("SELECT i.`insty`,i.`id`,a.`sername`,a.`name`,a.`faname`,a.`id` 
FROM `insitut` i
LEFT JOIN `abit` a ON a.`id` = i.`id`
WHERE i.`insty` = 'Институт Мультимедиа'"
);
$row = mysql_fetch_assoc($query);
while($row = mysql_fetch_assoc($query))
{
printf ("<p><a href='multimedia.php?id=%s'>%s %s %s</a></p>",$row["id"],$row["sername"],$row["name"],$row["faname"]);
}


но первое изначение из таблиц не выдает, начинает выводить со второго...

Спустя 1 минута, 54 секунды (28.03.2012 - 13:44) Renden написал(а):

$query = mysql_query("SELECT i.`insty`,i.`id`,a.`sername`,a.`name`,a.`faname`,a.`id`
FROM `insitut` i
LEFT JOIN `abit` a ON a.`id` = i.`id`
WHERE i.`insty` = 'Институт Мультимедиа'"
);
while($row = mysql_fetch_assoc($query))
echo $row['id'].$row['sername'].$row['name'].$row['faname'];

Спустя 6 минут, 44 секунды (28.03.2012 - 13:51) dubushka1990 написал(а):
user posted image

СПАСИБО ОГРОМНОЕ!!!!!!!!!!!!!!!!!! 3;!!!!!!!!!!!!

РАБОТАЕТ))) user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.