трудности с php-частью JOIN реляционной базы данных «один ко многим» - PullRequest
1 голос
/ 29 августа 2011

Я думаю, что часть MySQL моей базы данных правильная.После долгих занятий я создал базу данных InnoDB с двумя таблицами: Venues и Events.

Каждое место имеет уникальный идентификатор (VENUE_ID), который я проиндексировал.Затем у каждого события есть столбец с именем VENUE_LOCATION, в котором указан идентификационный номер места, к которому принадлежит событие.Вот как у меня настроена таблица событий:)

enter image description here

Я думаю, что все хорошо, теперь у меня проблемы с отображением всех этих данных с помощью php: /

До сих пор я делал простые вещи, такие как выбор данных из одной таблицы, но я заблудился относительно того, как я могу получить информацию из таблицы событий, и вставить всю соответствующую информацию из VENUES в зависимости отна то, что число в 'VENUE_LOCATION'.

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

Редактировать: вот что у меня сейчас

<?php

$dbuser="nightl7_main";
$dbpass="mypw";
$dbname="nightl7_complete";  //the name of the database
$chandle = mysql_connect("localhost", $dbuser, $dbpass) 
    or die("Connection Failure to Database");
mysql_select_db($dbname, $chandle) or die ($dbname . " Database not found. " . $dbuser);


$result = mysql_query("SELECT * FROM example")
or die(mysql_error());  
return $result;


?>

1 Ответ

2 голосов
/ 29 августа 2011
SELECT e.*, v.* FROM Events e
INNER JOIN Venues v ON e.VENUE_LOCATION = v.VENUE_ID

Это выберет всю информацию о событиях и всю информацию о месте, где событие произошло.


РЕДАКТИРОВАТЬ

Это PHP-кодможно использовать для начала:

<?php

$dbuser = 'nightl7_main';
$dbpass = 'mypw';
$dbname = 'nightl7_complete';  //the name of the database
$chandle = mysql_connect('localhost', $dbuser, $dbpass)
    or die('Connection Failure to Database');
mysql_select_db($dbname, $chandle) or die ($dbname . ' Database not found. ' . $dbuser);

$query = 'SELECT e.*, v.* FROM Events e '.
         'INNER JOIN Venues v ON e.VENUE_LOCATION = v.VENUE_ID';
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    echo $row['ID'].' '.$row['VENUE_LOCATION'].' '.$row['IMAGE_URL'].'<br />'; // access any column you like here
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...