Переменная, возвращающая пустое значение при добавлении в базу данных

Я создаю Facebook-подобное приложение. Я хочу, чтобы таблица обновлений в моей базе данных обновлялась всякий раз, когда пользователь изменяет статус книги (чтение, чтение или чтение).

Хотя приведенный ниже код успешно добавляет строку в базу данных, название книги пустое, т. Е.

Вот запрос на обновление:

$Wall->Insert_Update($userID,'would like to read <a href="book.php?id='.$bookID.'">'.$title.'</a>.');

И вот что добавляется в базу данных:

wants to read <a href="book.php?id=13"></a> 

Как видите, заголовка нет.

Ниже я включил полный код страницы, которая выполняет обновление. Страница, о которой идет речь, вызывается другой страницей через ajax.

Как вы увидите, у меня есть операторы select, которые должны получать название книги на основе предоставленной полки и bookID.

<?php
//includes
$Wall = new Wall_Updates();

$bookID = $_POST['bookID'];
$shelfID = $_POST['shelfID'];
$userID = $_SESSION['user_id'];

$query = mysql_query("SELECT * FROM shelves WHERE userID = '$userID' AND bookID = '$bookID'");

if (mysql_num_rows($query) == 0) {
$insert = "INSERT INTO shelves (bookID,shelfID,userID) VALUES ('$bookID','$shelfID','$userID')";
mysql_query($insert) or die(mysql_error());

//insert update
$select = "SELECT title, shelfID, books.bookID FROM books, shelves WHERE books.bookID = shelves.bookID
    AND shelves.bookID = '$bookID' AND userID = '$userID'";
mysql_query($select) or die(mysql_error());

$row = mysql_fetch_array($select);
$title = $row['title'];

if($shelfID == 1){
    $Wall->Insert_Update($userID,'read <a href="book.php?id='.$bookID.'">'.$title.'</a>.');
}elseif($shelfID == 2){
    $Wall->Insert_Update($userID,'wants to read <a href="book.php?id='.$bookID.'">'.$title.'</a>.');
}else{
    $Wall->Insert_Update($userID,'is currently reading <a href="book.php?id='.$bookID.'">inserting</a>.');
}


} elseif (mysql_num_rows($query) == 1) { //ie row already exists
$update = "UPDATE shelves SET shelfID = '$shelfID' WHERE userID = '$userID' AND bookID = '$bookID'";
mysql_query($update) or die(mysql_error());

//insert update
$select = "SELECT title, shelfID, books.bookID FROM books, shelves WHERE books.bookID = shelves.bookID
    AND shelfID = '$shelfID'";
mysql_query($select) or die(mysql_error());

$row = mysql_fetch_array($select);
$title = $row['title'];
$shelfID = $row['shelfID'];

if($shelfID == 1){
    $Wall->Insert_Update($userID,'read <a href="book.php?id='.$bookID.'">'.$title.'</a>.');
}elseif($shelfID == 2){
    $Wall->Insert_Update($userID,'wants to read <a href="book.php?id='.$bookID.'">'.$title.'</a>.');
}else{
    $Wall->Insert_Update($userID,'is currently reading <a href="book.php?id='.$bookID.'">'.$title.'</a>.');
}
}

?>

1 ответ

Решение

Обратите внимание, что вы выбираете запрос, а не ресурс mysql_query.

Измените свой код:

$select = "SELECT title, shelfID, books.bookID FROM books, shelves WHERE books.bookID = shelves.bookID
    AND shelves.bookID = '$bookID' AND userID = '$userID'";
mysql_query($select) or die(mysql_error());

$row = mysql_fetch_array($select);
$title = $row['title'];

Для того, чтобы:

$select = "SELECT title, shelfID, books.bookID FROM books, shelves WHERE books.bookID = shelves.bookID
    AND shelves.bookID = '$bookID' AND userID = '$userID'";
$getData = mysql_query($select) or die(mysql_error());

$row = mysql_fetch_array($getData);
$title = $row['title'];

Должен работать сейчас.

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