Эта тема на forum.dklab.ru


Zm: Запрос к двум таблицам базы и последующем выводом одной.
загвоздочка получилась, не знаю как расписать.
делаю вот такой запросик:
mysql_query("SELECT * FROM Имя1, Имя2 ,$db)
а в результате хочу что бы выводились данные только из Имя1.
вот такой кривой вывод:
А_1 href=1
А_1 href=2
В_2 href=1
В_2 href=2
а хочу:
А_1 href=1
В_2 href=2
С_3 href=3
Может чем поможете или скажите где посмотреть.
Юрий Насретдинов:
Zm
Напишите нормально, что за запрос Вы делаете и как именно выводите
Zm:
извиняюсь за криво написанное, лучше напишу все как есть и постараюсь объяснить чего:

таблицы в базе:
1. таблица: nouts_brends_list
id_brends smallint(6) Нет auto_increment
brend text Да NULL
img text Да NULL

2. таблица: models
id smallint(6) Нет auto_increment
producer text Да NULL
model text Да NULL
... в сумме 26 пунктов.


первая страница:


Здесь я добавляю, удаяю и редактирую производителей...
<?php

$db = mysql_connect("localhost", "root");
mysql_select_db("mybase",$db);


// Удаление записи

if ($id) {
$sql = "DELETE FROM nouts_brends_list WHERE id_brends=$id";
$result = mysql_query($sql);
echo "<table border=1 width=100% border=1 cellpadding=1 cellspacing=0>\n"
."<tr>"
."<td width=16 height=16 align=left>&nbsp;</td>"
."<td width=16 height=16 align=left><a href=nouts_brends_list_edit.php><img src=/nb.ru/admin/images/add.gif border=0 alt=Добавить></a></td>"
."<td>&nbsp;</td>"
."</tr>"
."</table>\n";
$result = mysql_query("SELECT * FROM nouts_brends_list,models ORDER BY `brend` ASC",$db);
while ($mybase = mysql_fetch_array($result)) {
echo "<table border=1 width=100% border=1 cellpadding=1 cellspacing=0>\n"
."<tr>";
printf("<td width=16 height=16><a href=\"%s?id=%s&delete=yes\"><img src=/nb.ru/admin/images/dell.gif border=0 alt=Удалить></a></td>", $PHP_SELF, $mybase["id_brends"]);
printf("<td width=16 height=16><a href=\"view_models.php?%s\"><img src=/nb.ru/admin/images/view.gif border=0 alt=Открыть></a></td>", $mybase["producer"]);
printf("<td width=16 height=16><a href=\"nouts_brends_list_edit.php?id=%s\"><b><img src=/nb.ru/admin/images/edit.gif border=0 alt=Редактировать></a></td>", $mybase["id_brends"]);
printf("<td><b>&nbsp%s</b></td>", $mybase["brend"]);
echo "</tr>"
."</table>\n"; }
} else {
// просмотр записей
if (!$id) {

$result = mysql_query("SELECT * FROM nouts_brends_list,models ORDER BY `brend` ASC",$db);
echo "<table border=1 width=100% border=1 cellpadding=1 cellspacing=0>\n"
."<tr>"
."<td width=16 height=16 align=left>&nbsp;</td>"
."<td width=16 height=16 align=left><a href=nouts_brends_list_edit.php><img src=/nb.ru/admin/images/add.gif border=0 alt=Добавить></a></td>"
."<td>&nbsp;</td>"
."</tr>"
."</table>\n";
while ($mybase = mysql_fetch_array($result))
{
echo "<table border=1 width=100% border=1 cellpadding=1 cellspacing=0>\n"
."<tr>";
printf("<td width=16 height=16><a href=\"%s?id=%s&delete=yes\"><img src=/nb.ru/admin/images/dell.gif border=0 alt=Удалить></a></td>", $PHP_SELF, $mybase["id_brends"]);
printf("<td width=16 height=16><a href=\"view_models.php?%s\"><img src=/nb.ru/admin/images/view.gif border=0 alt=Открыть></a></td>", $mybase["producer"]);
printf("<td width=16 height=16><a href=\"nouts_brends_list_edit.php?id=%s\"><b><img src=/nb.ru/admin/images/edit.gif border=0 alt=Редактировать></a></td>", $mybase["id_brends"]);
printf("<td><b>&nbsp%s</b></td>", $mybase["brend"]);
echo "</tr>"
."</table>\n";
}

?>
<?php
}
?>
<?php
}
?>

при нажатии кнопоки "Открыть" у меня открывается данная страница, в которой я добавляю и редактирую модели...

<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mybase",$db);
if ($id) {
$sql = "DELETE FROM models WHERE id=$id";
$result = mysql_query($sql);
echo "<table border=1 width=100% border=1 cellpadding=1 cellspacing=0>\n"
."<tr>"
."<td width=16 height=16 align=left>&nbsp;</td>"
."<td width=16 height=16 align=left><a href=edit_model.php><img src=/nb.ru/admin/images/add.gif border=0 alt=Добавить></a></td>"
."<td>&nbsp;</td>"
."</tr>"
."</table>\n";
$result = mysql_query("SELECT * FROM models",$db);
while ($mybase = mysql_fetch_array($result)) {
echo "<table border=1 width=100% border=1 cellpadding=1 cellspacing=0>\n"
."<tr>";
printf("<td width=16 height=16><a href=\"%s?id=%s&delete=yes\"><img src=/nb.ru/admin/images/dell.gif border=0 alt=Удалить></a></td>", $PHP_SELF, $mybase["id"]);
printf("<td width=16 height=16><a href=\"edit_model.php?id=%s\"><b><img src=/nb.ru/admin/images/edit.gif border=0 alt=Редактировать></a></td>", $mybase["id"]);
printf("<td><b>%s</b>&nbsp%s</td>", $mybase["producer"], $mybase["model"]);
echo "</tr>"
."</table>\n"; }
} else {
// this part happens if we don't press submit
if (!$id) {

$result = mysql_query("SELECT * FROM models",$db);
echo "<table border=1 width=100% border=1 cellpadding=1 cellspacing=0>\n"
."<tr>"
."<td width=16 height=16 align=left>&nbsp;</td>"
."<td width=16 height=16 align=left><a href=edit_model.php><img src=/nb.ru/admin/images/add.gif border=0 alt=Добавить></a></td>"
."<td>&nbsp;</td>"
."</tr>"
."</table>\n";
while ($mybase = mysql_fetch_array($result)) {
echo "<table border=1 width=100% border=1 cellpadding=1 cellspacing=0>\n"
."<tr>";
printf("<td width=16 height=16><a href=\"%s?id=%s&delete=yes\"><img src=/nb.ru/admin/images/dell.gif border=0 alt=Удалить></a></td>", $PHP_SELF, $mybase["id"]);
printf("<td width=16 height=16><a href=\"edit_model.php?id=%s\"><b><img src=/nb.ru/admin/images/edit.gif border=0 alt=Редактировать></a></td>", $mybase["id"]);
printf("<td><b>%s</b>&nbsp%s</td>", $mybase["producer"], $mybase["model"]);
echo "</tr>"
."</table>\n";
}

?>
<?php
}
?>
<?php
}
?>

Хотел сделать так что бы на первой странице, там где просмотр производителей при нажатии "Открыть" перелетал на вторую страницу но там были только фиксированные модели. к примеру список Acer моделей.

Сейчас у меня:
При добавлении 2 разных моделей к примеру Acer 55 и Bliss 77
на странице где выводятся производители вот такая штука:

Acer со ссылкой на Acer 55
Acer со ссылкой на Bliss 77
Bliss со ссылкой на Acer 55
Bliss со ссылкой на Bliss 77

а я хочу что бы выводилось
Acer со ссылкой на Acer 55
Bliss со ссылкой на Bliss 77

Вот, вроде все. Конечно может у меня все криворуко написано... но все же... :)
Maus:
Zm
пользуйтесь подсветкой кода, ничего не понятно...
Владимир Хоменко:
Как у вас таблицы nouts_brends_list и models связаны между собой?

Должно быть какое-то поле в таблице models, которое указывает на запись в таблице nouts_brends_list, иначе все, о чем Вы нам говорите, не имеет смысла.
Maus:
Zm
Если Вы про эту строчку$result = mysql_query("SELECT * FROM nouts_brends_list,models ORDER BY `brend` ASC",$db);
То:
У Вас 2 таблицы - список брэндов и модели. Должна быть связь между этими таблицами, типа
"SELECT * FROM nouts_brends_list AS nbl, models AS m WHERE m.brand_id=nbl.id ORDER BY ...
В сортировке вероятно, Вам надо указывать 2 поля: имя брэнда и имя модели.
Zm:
Спасибо за подсказки, порылся в инете по связям таблиц в базе и в результате все работате.
строчка:
$result = mysql_query("SELECT brend, producer FROM nouts_brends_list, models WHERE nouts_brends_list.brend=models.producer ORDER BY `brend` ASC",$db);
Maus:
Zm
Вот и славно. Тему можно закрывать? Если да - сделайте это, пожалуйста
Zm:
Вопрос решен, тему можно закрыть.
Евгений Галашин:
Тема закрыта.

Эта тема на forum.dklab.ru