0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 31
1

Работа с несколькими таблицами в базе данных

27.02.2012, 18:57. Показов 2134. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Я новичок и пытаюсь разбираться с php и базами данных, но не все получается...

У меня задача - доработать некоммерческий проект (это база данных по породе Немецкая овчарка)
Так вот, столкнулась с такой делемой...
Для Вас наверное это будет элементарно и просто, но я уже 2 недели бьюсь и не получается сделать то, что хотелось бы. Видимо я не правильно пишу запросы к разным таблицам в базе.

Я не знаю, можно ли здесь размещать ссылки на ресурс, чтобы наглядно могли посмотреть... если что, скажите и я их удалю.

К сути:

в базе есть страница где хранятся результаты выставок собак http://www.gsd-online.ru/ovchar/shows.php

Пройдя по ссылке, видим результаты собак http://www.gsd-online.ru/ovcha... ?showid=74

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

При нажатии на кличку - переходим на страницу собаки... допустим сюда http://www.gsd-online.ru/ovcha... 1&id=21579

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

После надписи "РЕЗУЛЬТАТЫ УЧАСТИЯ В ВЫСТАВКАХ", я пыталась работать с 2-мя таблицами из базы данных, но у меня вылетают все выставки почему-то...
Сейчас скопирую:

файл dog.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 // вывод результатов участия в выставках
        $query="SELECT * FROM showresults, shows WHERE dogid=$id";
        $dta = mysql_query($query);
 
        echo"<TABLE border=0 width=95% cellspacing=2 cellpadding=2>\n";
        echo"<TR><TD>".ShowTitleLine("<FONT face=Arial size=2><B>РЕЗУЛЬТАТЫ УЧАСТИЯ В ВЫСТАВКАХ</B></FONT>".($isrightuser?"<A href=add.php?id=$id&screen=10><FONT face=Arial size=1><B>[доб]</B></FONT></A>":""))."</TD></TR>\n";
        echo"<TR><TD>";
 
        echo"<TABLE border=0 width=100% cellspacing=1 cellpadding=2>\n";
        while($row = mysql_fetch_array($dta)) {
                echo"<TR><TD bgcolor=White rowspan=2 width=46 height=46><IMG src='img/star.jpg' border=0></TD>\n";
                
                echo"</TR>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['showdate']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['name']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['judge']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['classid']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['place']} </FONT></B></TD>\n";
                echo"</TR>\n";
                };
        echo"</TABLE>";
        echo"</TD></TR>";
под выводом этих данных, я сделала немного по-другому... сделала запрос к базе, где непосредственно хранятся результаты выставки... то, что я хотела - получила, но не совсем...
Запрос выдал именно те выставки в которых учавствовала конкретная собака, но дело в том, что в таблице занесены присваемые ID каждого параметра... и получается, что вылезли одни цифры... (на той же странице ниже, Вы это можете увидеть)

код мной был прописан такой:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 // вывод результатов участия в выставках
        $query="SELECT * FROM showresults WHERE dogid=$id";
        $dta = mysql_query($query);
 
        echo"<TABLE border=0 width=95% cellspacing=2 cellpadding=2>\n";
        echo"<TR><TD>".ShowTitleLine("<FONT face=Arial size=2><B>РЕЗУЛЬТАТЫ УЧАСТИЯ В ВЫСТАВКАХ</B></FONT>".($isrightuser?"<A href=add.php?id=$id&screen=10><FONT face=Arial size=1><B>[доб]</B></FONT></A>":""))."</TD></TR>\n";
        echo"<TR><TD>";
 
        echo"<TABLE border=0 width=100% cellspacing=1 cellpadding=2>\n";
        while($row = mysql_fetch_array($dta)) {
                echo"<TR><TD bgcolor=White rowspan=2 width=46 height=46><IMG src='img/star.jpg' border=0></TD>\n";
                
                echo"</TR>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['showid']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> &nbsp; {$row['classid']} </FONT></B></TD>\n";
                echo"<TR><TD bgcolor=White><B><FONT size=2 color=Black> {$row['markid']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=White colspan=2><B><FONT size=2 color=Black> {$row['place']} </FONT></B></TD>\n";
                echo"</TR>\n";
                };
        echo"</TABLE>";
        echo"</TD></TR>";
Если я не ясно написала - спрашивайте
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2012, 18:57
Ответы с готовыми решениями:

работа с несколькими таблицами
Добрый день, как можно сделать так, чтобы обрашаться к таблице по имени пример: есть таблици...

Работа с несколькими таблицами
Предисловие: Имею 4 таблицы, все они одинаковы и имеют равное количество столбцов и строк. Вопрос:...

Работа с несколькими таблицами
ДД! Есть много БД на Парадоксе 7 и на форме много ТБГридов. Как сделать так чтобы при переходе с...

Работа с несколькими таблицами БД
Уважаемые, подскажите. Требования: - Работа через DBGrid - Редактирование данных в таблицах ...

10
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,798
27.02.2012, 19:15 2
много буков , мало по делу . Выложите дамп 2х таблиц . и еще раз что вы хотите изменить ?
п.с. у вас кодировка на сайте не прописанна у меня вообще иероглифами всё идет
0
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 31
27.02.2012, 19:24  [ТС] 3
на выходе мне бы хотелось получить:
дата проведения выставки
название выставки
судья
класс
оценка

таблицы, к которым я обращаюсь выглядят так:

таблица showresults
Работа с несколькими таблицами в базе данных


таблица shows

Работа с несколькими таблицами в базе данных
Изображения
 
0
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 31
27.02.2012, 19:29  [ТС] 4
Цитата Сообщение от crautcher Посмотреть сообщение
много буков , мало по делу . Выложите дамп 2х таблиц . и еще раз что вы хотите изменить ?
п.с. у вас кодировка на сайте не прописанна у меня вообще иероглифами всё идет
есть раздел, в который вносятся результаты выставок. Мне бы хотелось, чтобы результаты конкретной собаки из данного раздела, автоматически вносились на ее страницу.

п.с. по кодировке... гляну
0
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 31
27.02.2012, 19:33  [ТС] 5
прошу прощения...
некорректно отприскринила таблицу shows...

вот она:
Работа с несколькими таблицами в базе данных
0
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 31
27.02.2012, 19:49  [ТС] 6
сейчас принскринами сделаю сайт, чтобы было понятно


Цитата Сообщение от vallent Посмотреть сообщение
в базе есть страница где хранятся результаты выставок собак http://www.gsd-online.ru/ovchar/shows.php
Вот эта страница сайта, если кому не видно из-за кодировки
Работа с несколькими таблицами в базе данных


Цитата Сообщение от vallent Посмотреть сообщение
Пройдя по ссылке, видим результаты собак http://www.gsd-online.ru/ovcha... ?showid=74
Работа с несколькими таблицами в базе данных


Цитата Сообщение от vallent Посмотреть сообщение
При нажатии на кличку - переходим на страницу собаки... допустим сюда http://www.gsd-online.ru/ovcha... 1&id=21579
Это страница собаки
Работа с несколькими таблицами в базе данных


Цитата Сообщение от vallent Посмотреть сообщение
После надписи "РЕЗУЛЬТАТЫ УЧАСТИЯ В ВЫСТАВКАХ", я пыталась работать с 2-мя таблицами из базы данных, но у меня вылетают все выставки почему-то...
Скриню (код прописала ранее):

Работа с несколькими таблицами в базе данных


Цитата Сообщение от vallent Посмотреть сообщение
под выводом этих данных, я сделала немного по-другому... сделала запрос к базе, где непосредственно хранятся результаты выставки... то, что я хотела - получила, но не совсем...
Запрос выдал именно те выставки в которых учавствовала конкретная собака, но дело в том, что в таблице занесены присваемые ID каждого параметра... и получается, что вылезли одни цифры... (на той же странице ниже, Вы это можете увидеть)
Скриню (код прописала ранее):

Работа с несколькими таблицами в базе данных



не знаю... понятно ли объяснила
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,798
27.02.2012, 20:00 7
мне пора домой , так и не успел разобраться ,надеюсь ктонить поможет.
п.с. насколько я понял запрос у вас верный а выводите вы криво
PHP
1
2
3
4
//можете посмотреть структуру вашего массива
 $row = array();
 while($row[] = mysql_fetch_array($dta)) { }
 var_dump($row);
удачи
1
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 31
27.02.2012, 20:11  [ТС] 8
crautcher, спасибо, попробую!

Добавлено через 6 минут
crautcher, если еще в сети... а с каким из этих 2-х запросов мне стоит возиться? с первым или со вторым?
Какой лучший?
Они оба верные, но... вывод данных и там и там корявый((
0
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 31
28.02.2012, 23:18  [ТС] 9
что-то я разобраться не смогла с предложенным массивом и как его увязать с несколькими таблицами...

я сделала по-другому (взяла 2 таблицы) - showresults и shows.
Делаю запрос к таблице showresults и shows на вывод данных, и показываю, что showid из таблицы showresults это одно и тоже, что и id из таблицы shows.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 $query = "
SELECT a.showid, a.dogid, a.classid, a.markid, a.titleid, a.place, a.userid, b.id, b.cityid, b.name, b.judge, b.showdate, b.statusid, b.userid
FROM showresults as a
LEFT JOIN shows as b ON a.showid=b.id
WHERE a.dogid=$id
";
        $dta = mysql_query($query);
 
        echo"<TABLE border=0 width=95% cellspacing=2 cellpadding=2>\n";
        echo"<TR><TD>".ShowTitleLine("<FONT face=Arial size=2><B>РЕЗУЛЬТАТЫ УЧАСТИЯ В ВЫСТАВКАХ</B></FONT>".($isrightuser?"<A href=add.php?id=$id&screen=10><FONT face=Arial size=1><B></B></FONT></A>":""))."</TD></TR>\n";
        echo"<TR><TD>";
 
        echo"<TABLE border=0 width=100% cellspacing=1 cellpadding=2>\n";
        while($row = mysql_fetch_array($dta)) {
                echo"<TR><TD bgcolor=White rowspan=2 width=46 height=46><IMG src='img/star.jpg' border=0></TD>\n";
                
                echo"</TR>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['showid']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['classid']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['markid']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['titleid']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['place']} </FONT></B></TD>\n";
                echo"</TR>\n";
                };
        echo"</TABLE>";
        echo"</TD></TR>";
Что получилось:

Вывод данных произведен верно, но т.к. я хотела, чтобы вместо цифр прописывалось название (в данном случае я пока прописала это только к одной колонке), то названий не появилось...
что не так сделала?
вот скрин. Обведено то место, где showid с 1-ой таблицы должно было бы стать id другой таблицы

Работа с несколькими таблицами в базе данных
0
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 31
28.02.2012, 23:44  [ТС] 10
ошибку свою нашла! Прописывала немного не то...

вот результат
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 $query = "
SELECT a.showid, a.dogid, a.classid, a.markid, a.titleid, a.place, a.userid, b.id, b.cityid, b.name, b.judge, b.showdate, b.statusid, b.userid
FROM showresults as a
LEFT JOIN shows as b ON a.showid=b.id
WHERE a.dogid=$id
";
        $dta = mysql_query($query);
 
        echo"<TABLE border=0 width=95% cellspacing=2 cellpadding=2>\n";
        echo"<TR><TD>".ShowTitleLine("<FONT face=Arial size=2><B>РЕЗУЛЬТАТЫ УЧАСТИЯ В ВЫСТАВКАХ</B></FONT>".($isrightuser?"<A href=add.php?id=$id&screen=10><FONT face=Arial size=1><B></B></FONT></A>":""))."</TD></TR>\n";
        echo"<TR><TD>";
 
        echo"<TABLE border=0 width=100% cellspacing=1 cellpadding=2>\n";
        while($row = mysql_fetch_array($dta)) {
                echo"<TR><TD bgcolor=White rowspan=2 width=46 height=46><IMG src='img/star.jpg' border=0></TD>\n";
                
                echo"</TR>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['showdate']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['name']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['judge']} </FONT></B></TD>\n";
                
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['markid']} </FONT></B></TD>\n";
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['titleid']} </FONT></B></TD>\n";
                
                echo"    <TD bgcolor=#E7E7E7><B><FONT size=2 face=Arial color=Darkred> {$row['place']} </FONT></B></TD>\n";
                echo"</TR>\n";
                };
        echo"</TABLE>";
        echo"</TD></TR>";
Работа с несколькими таблицами в базе данных


Теперь надо подсоединить еще пару таблиц... но там название полей совпадают с названием полей уже используемых таблиц((
0
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 31
29.02.2012, 08:13  [ТС] 11
Справилась, всем спасибо
0
29.02.2012, 08:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.02.2012, 08:13
Помогаю со студенческими работами здесь

Работа с несколькими таблицами
Здравствуйте! Помогите мне, пожалуйста! У меня на форме такие компоненты: ADOConnection1,...

Работа с несколькими таблицами
Не могу розобратса как могжно работать с несколькома связаными таблицами, я только розобрался как...

Работа с несколькими dbf таблицами
уважаемые профессионалы, подскажите ,пожалуйста, 1)как открыть 7 dbf файлов на 7 различных формах,...

Работа с несколькими таблицами PHP+MySQL
Здравствуйте. Очень нужна помощь. Есть таблица категорий, где хранятся названия категорий. Я делаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru