Вывод объединенной таблицы - PullRequest
0 голосов
/ 02 мая 2018

Я сейчас пытаюсь вывести объединенную таблицу.

Две соединенные таблицы состоят из таблицы Customer:

enter image description here

, а также таблица Address:

enter image description here

Однако я получаю эту ошибку:

Примечание: неопределенный индекс: улица

Эта ошибка возникает для каждого объединенного индекса из таблицы Address (то есть также для Postcode City и Country).

У меня вопрос, как это исправить?

1 Ответ

0 голосов
/ 02 мая 2018

Почему вы получили неопределенный ответ, что вы не используете присоединенную строку для выполнения.

$stmt = $pdo->prepare('SELECT * FROM Customer LEFT JOIN Address USING (AddressID)');
$stmt->execute();

Этот код, приведенный выше, позволяет получить ваш присоединенный код, а затем мгновенно перезаписать $ stmt новым, в котором нет объединенных данных.

Удалить эти 2 строки кода.

$stmt = $pdo -> prepare('SELECT * FROM Customer');
$stmt -> execute();

И это будет работать.

В качестве дополнительного примечания вы затрудняете чтение кода в методе CustomerRowOutput.

при использовании системы замены переменных в двойных кавычках вы можете использовать массивы. просто заверните их в фигурные скобки {}

Таким образом, ваш текущий синтаксис <tr><td>$cn</td>...</tr> должен быть <tr><td>{$customerRow['CustomerName']}</td>...</tr> фигурными скобками, обертывающими массив, подобный этому, который позволит ему выводиться. это также экономит память, так как вы не создаете указатели, чтобы облегчить эхо.

и PHP также поддерживает переводы строк в переменных строкового типа. так что вся функция может стать

function CustomerRowOutput($customerRow){
    return "<tr>
        <td>{$customerRow['CustomerName']}</td>
        <td>{$customerRow['PhoneNo']}</td>
        <td>{$customerRow['Email']}</td>
        <td>{$customerRow['Street']}</td>
        <td>{$customerRow['Postcode']}</td>
        <td>{$customerRow['City']}</td>
        <td>{$customerRow['Country']}</td>
    </tr>";
}
...