Пользователь заходит на эту страницу с другой страницы, где он щелкает ссылку, к ней добавляется ?photo_id=
, а затем номер идентификатора. Я хочу, чтобы определенная информация была доступна зрителю, когда он прибудет на эту страницу.
Я хочу, чтобы они могли видеть фотографию, имя фотографии и имя фотографа. Первые два не проблема, потому что photo_id
, photo_filename
и photo_title
находятся в одной таблице. Как только я пытаюсь получить информацию об этой фотографии, которая находится на другом столе под названием photographers
, именно тогда у меня возникают проблемы.
Вот мой код:
$sql = 'SELECT photos.photo_id, photos.photo_title, photos.photo_filename, photos.photographer_id, photographers.photographer_id, photographers.photographer_name
FROM photos
LEFT JOIN photographers ON photos.photographer_id = photographers.photographer_id
WHERE photo_id = ?';
//initialize prepared statement
$stmt = $conn->stmt_init();
if ($stmt->prepare($sql)) {
$stmt->bind_param('i', $_GET['photo_id']);
$stmt->bind_result($photo_id, $photo_title, $photo_filename, $photographer_id);
$OK = $stmt->execute();
$stmt->fetch();
}
Первые три переменные ($photo_id
, $photo_title
и $photo_filename
) работают нормально, и я могу отобразить их на своей странице, но другие переменные, которые я добавил из LEFTJOIN, такие как photographers.photographer_id
и photographers.photographer_name
из другой таблицы работать не будет. Как известно, страница полностью разрывается, когда я добавляю дополнительные имена столбцов в строке SELECT.
У меня такое ощущение, что это связано с количеством переменных в функции bind_result()
. Я думаю, что они должны соответствовать количеству столбцов, упомянутых в строке SELECT, но я не хочу создавать переменную для каждого.
Кто-нибудь может мне помочь?