Переменная, возвращающая пустое значение при добавлении в базу данных
Я создаю 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'];
Должен работать сейчас.