Запрос на присоединение и что с ним делать, чтобы данные отображались правильно?

У меня есть таблица, в которой хранятся все волонтеры, и каждому волонтеру будет назначено подходящее место для работы на мероприятии. Есть таблица, в которой хранятся все места проведения.

Он сохраняет соответствующее назначение волонтера в столбце venue_id.

table: venues
columns: id, venue_name

table: volunteers_2009
columns: id, lname, fname, etc.., venue_id

Вот функция для отображения списка добровольцев, и проблема, с которой я столкнулся, состоит в том, чтобы отобразить назначение их места проведения. Я никогда особо не работал с объединениями MySQL, потому что впервые объединил две таблицы вместе, чтобы получить необходимую мне информацию.

Итак, я хочу, чтобы он перешел к таблице volunteers_2009, взял location_id, перешел к таблице venues, сопоставил volunteers_2009.venue_id to venues.id, чтобы отобразить venues.venue_name, чтобы в списке отображалось назначение места встречи волонтера.

Запрос на присоединение и что с ним делать, чтобы данные отображались правильно?

<?php
// -----------------------------------------------------
//it displays appropriate columns based on what table you are viewing
function displayTable($table, $order, $sort) {
    $query = "select * from $table ORDER by $order $sort";
    $result = mysql_query($query);

    // volunteer's venue query
    $query_venues = "SELECT volunteers_2009.venue_id, venues.venue_name FROM volunteers_2009 JOIN venues ON volunteers_2009.venue_id = venues.id";
    $result_venues = mysql_query($query_venues);

    if ($_POST) { ?>
        <table id = "box-table-a">
        <tr>
            <th>Name</th>
            <?php if ($table == 'maillist') { ?>
                <th>Email</th>
            <?php } ?>
            <?php if ($table == 'volunteers_2008' || $table == 'volunteers_2009') { ?>
                <th>Comments</th>
            <?php } ?>
            <?php if ($table == 'volunteers_2009') { ?>
                <th>Interests</th>
                <th>Venue</th>
            <?php } ?>
            <th>Edit</th>
        </tr>
        <tr>
        <?php
        while($row = mysql_fetch_array($result))
        {
            $i = 0;
            while($i <=0)
            {
                print '<td>'.$row['fname'].' '.$row['lname'].'</td>';
                if ($table == 'maillist') {
                    print '<td><a href = "mailto:'.strtolower($row['email']).'">'.strtolower($row['email']).'</a></td>';
                }
                if ($table == 'volunteers_2008' || $table == 'volunteers_2009') {
                    print '<td><small>'.substr($row['comments'], 0, 32).'</small></td>';
                }
                if ($table == 'volunteers_2009') {
                    print '<td><small>1) '.$row['choice1'].'<br>2) '.$row['choice2'].'<br>3) '.$row['choice3'].'</small></td>'; ?>
                    <td> <?php
                            if ($row_venues['venue_name'] != '') {
                                // print venue assigned
                                print $row_venues['venue_id'].' '.$row_venues['venue_name'].' ';
                            } else { print 'No Venue Assigned'; } ?>
                    </td> <?php
                } ?>
                <td><a href = "?mode=upd&id=<?= $row[id] ?>&table=<?= $table ?>">Upd</a> / <a href = "?mode=del&id=<?= $row[id] ?>&table=<?= $table ?>" onclick = "return confirm('Are you sure you want to delete?')">Del</a></td> <?php
                $i++;
            }
        print '</tr>';
        }
        print '</table>';
    }
}
// -----------------------------------------------------
?>

Обратите внимание, что использование изображений с шириной более 630 пикселей приводит к путанице форматирования для людей с разрешениями размером с ноутбук - я бы рекомендовал отредактировать ссылку img, чтобы установить ширину 630 пикселей. Спасибо!

J c 14.10.2008 02:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
278
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

выберите field1, field2, field3 из Venues, volunteers_2009, где volunteers_2009.venue_id = venues.id

Ответ принят как подходящий

Общий синтаксис SQL LEFT Outer join.

ВЫБЕРИТЕ volunteers.id, volunteers.lname, volunteers.fname, volunteers.venue_id, venues.venue_name FROM Volunteers_2009 КАК волонтеры ВЫЛЕВАЛИ ВНЕШНИЙ ВИД, ПРИСОЕДИНЯЙТЕСЬ.

Спасибо. $ query = "ВЫБРАТЬ volunteers_2009.id, volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id, venues.venue_name FROM volunteers_2009 AS volunteers_2009 СЛЕВА ВНЕШНИЙ ПРИСОЕДИНЯЙТЕСЬ к местам ВКЛЮЧЕНО ($ volunteers_2009.venue_id = venues.id) ORDER by $ sorting by $.

Brad 14.10.2008 03:48

Я не могу добавить комментарий, но синтаксис выберите field1, field2, field3 из Venues, volunteers_2009, где volunteers_2009.venue_id = venues.id предоставит вам только волонтеров с местом проведения; не те, у кого нет места.

Я хочу пройтись по таблице и отобразить location_name, если его нет, отобразить «Место не назначено». Проблема, с которой я столкнулся, заключается в том, чтобы отобразить соответствующее имя места для каждого добровольца. Сейчас я могу просто отображать названия мест, но они не отображаются рядом с соответствующим добровольцем.

Brad 14.10.2008 02:38

Другие вопросы по теме