Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 31

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Я новичок и пытаюсь разбираться с 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.02.2012, 18:57
Ответы с готовыми решениями:

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

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

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

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

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

таблица showresults


таблица shows

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

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

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


Цитата Сообщение от 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
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
27.02.2012, 20:00
мне пора домой , так и не успел разобраться ,надеюсь ктонить поможет.
п.с. насколько я понял запрос у вас верный а выводите вы криво
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  [ТС]
crautcher, спасибо, попробую!

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

я сделала по-другому (взяла 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  [ТС]
ошибку свою нашла! Прописывала немного не то...

вот результат
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  [ТС]
Справилась, всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.02.2012, 08:13
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru