Итак, у меня есть эта функция, которая получает данные из базы данных и отображает их. Функция извлекает из базы данных идентификатор статьи, заголовок статьи и некоторые другие данные.
Когда пользователь не вошел в систему, функция работает хорошо и показывает все данные, но когда пользователь вошел в систему, неожиданно выбирается только заголовок статьи. Все данные находятся в одной базе данных и даже в та же таблица, но выбран только идентификатор статьи !!
Примечания:
- На моем локальном хосте этого не происходит.
- Мой хост - ipage.com, и чтобы заставить сеансы php работать, мне нужно добавить session_save_path (// path) перед session_start () (я не знаю, связано ли это с проблемой)
Обновление:
Это ошибка: Warning: implode() [function.implode]: Invalid arguments passed in /path
Это функция:
function getNowPlaying($stmt) {
$sql = 'SELECT movies.imdbID, movies.title FROM movies ORDER BY Rand() LIMIT 15';
if ($stmt->prepare($sql)) {
$stmt->bind_result($imdbID, $title);
$stmt->execute();
$i = 0;
while ($stmt->fetch()) {
$data[$i]["imdb"] = zeroFill($imdbID);
$data[$i]["title"] = $title;
$i++;
}
}
for ($i = 0; $i < count($data); $i++) {
$genres = getGenre($stmt, $data[$i]["imdb"]);
$data[$i]["genre"] = implode(', ', $genres);
$data[$i]["poster"] = getPoster($stmt, $data[$i]["imdb"]);
}
return $data;
}
function getGenre ($stmt, $id, $db = 'main') {
if ($db === 'main') {
$sql = 'SELECT sys_genres.genre FROM sys_genres, movie_genres WHERE sys_genres.genreID = movie_genres.genreID AND movie_genres.imdbID = ?
ORDER BY movie_genres.genreORDER';
}
else if ($db === 'inp') {
$sql = 'SELECT sys_genres.genre FROM sys_genres, inp_movie_genres WHERE sys_genres.genreID = inp_movie_genres.genreID AND inp_movie_genres.imdbID = ?
ORDER BY inp_movie_genres.genreORDER';
}
if ($stmt->prepare($sql)) {
$stmt->bind_param('i', $id);
$stmt->bind_result($genres);
$stmt->execute();
while ($stmt->fetch()) {
$data[] = $genres;
}
}
if (!empty($data)) {
return $data;
}
}
Массив Session, когда пользователь вошел в систему:
Array
(
[xsrf_token] => 13721578024c33e20b2940d3.39161731
[username] => jonagoldman
[userID] => 24
[start] => 1278468629
)
Обновление 2:
Это та часть, которая вызывает проблемы:
В index.php у меня есть это:
if (isset($_SESSION['userID'])) {
$user_points = getUserPoints($stmt, $_SESSION['userID']);
}
function getUserPoints($stmt, $userid) {
$sql = 'SELECT points FROM user_points WHERE userID = ? LIMIT 1';
if ($stmt->prepare($sql)) {
$stmt->bind_param('i', $userid);
$stmt->bind_result($data);
$stmt->execute();
$stmt->fetch();
}
if (!empty($data)) {
return $data;
}
}
Эта часть кода вызывает проблему при входе пользователя в систему.
Есть идеи?