Помогите! Отображение phpbb3 Последние сообщения из базы данных SQlite 2 - PullRequest
0 голосов
/ 14 октября 2010

Мне нужна быстрая помощь, вместо того, чтобы использовать mySQL, мой форум phpbb3 использует SQlite 2, обычный файл «database.db, который был создан вручную из файла notepad.txt, а затем заполнен phpbb3» 2 базы данных вместо MySQL.

когда я запускаю этот скрипт, я получаю эхо: последние сообщения (расположены в строке 3) но ничего больше

Я полный нуб с PHP, так что помогите, пожалуйста, я уже неделю как без удачи

В конечном итоге я хочу отобразить 15 самых последних сообщений в текстовом окне Adobe Flash Dynamic с поддержкой html за пределами Phpbb3 на моем веб-сайте

enter code here
  <?php
  $db = sqlite_open("Mydatabasenamehere.db", 0666, $sqliteerror);
  echo "Recent Posts<p />";
  $recent = sqlite_query($db, "SELECT * FROM * phpbb_posts ORDER BY post_time DESC LIMIT 15");
  while ($recent_row = sqlite_fetch_all($recent, SQLITE_ASSOC))
  {

// get data
$post_id = $recent_row['post_id'];
$topic_id = $recent_row['topic_id'];
$forum_id = $recent_row['forum_id'];    
$poster_id = $recent_row['poster_id'];
$post_time = $recent_row['post_time'];

// get topic name
$topic_name = sqlite_query($db, "SELECT topic_title FROM phpbb_topics WHERE topic_id='$topic_id'");
$topic_name = sqlite_fetch_all($topic_name);
$topic_name = $topic_name('topic_title');

// get username 
$username = sqlite_query($db, "SELECT username FROM phpbb_users WHERE user_id='$poster_id'");
$username = sqlite_fetch_all($username);
$username = $username['username'];

//var for flash
//$toflash = "<b><a href='http://microfusion.mine.nu/forums/memberlist.php?mode=viewprofile&u=$poster_id'></a>$username</b> Posted in \"<a href='http://microfusion.mine.nu/forums/viewtopic.php?$forum_id1&t=$topic_id&p=post_id#p$post_id'>$topic_name\"</a><br />";
//echo "RecPos.$toflash";

    //to test first before flash integration
echo "$username Posted in $topic_name<br />";

    }

    ?>

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Итак, с помощью Мэгги мне удалось разобраться:

enter code here
<?php

error_reporting(E_ALL);
ini_set('display_errors', 'on');
$db = sqlite_open("MyDATABASENAMEHERE.db", 0666, $sqliteerror)
or die($sqliteerror);
echo "<p>Recent Posts</p>";
$sql = "SELECT * FROM phpbb_posts ORDER BY post_time DESC LIMIT 15";
echo "<p>Query: " . $sql . "</p>";
$recent = sqlite_query($db, $sql)
or die(sqlite_error_string(sqlite_last_error()));

while ($recent_row = sqlite_fetch_array($recent, SQLITE_ASSOC))
{

// get data
$post_id = $recent_row['post_id'];
$topic_id = $recent_row['topic_id'];
$forum_id = $recent_row['forum_id'];    
$poster_id = $recent_row['poster_id'];
$post_time = $recent_row['post_time'];

// get topic name
$topic_name = sqlite_query($db, "SELECT topic_title FROM phpbb_topics WHERE topic_id='$topic_id'");
$topic_name = sqlite_fetch_array($topic_name);
$topic_name = $topic_name["topic_title"];

// get username 
$username = sqlite_query($db, "SELECT username FROM phpbb_users WHERE user_id='$poster_id'");
$username = sqlite_fetch_array($username);
$username = $username['username'];


echo "'$username' Posted in '$topic_name'<br />";

}

?>

Мне пришлось изменить SQlite на «Fetch_array» вместо «all» или «string» Надеюсь, что это помогает другим тоже

0 голосов
/ 14 октября 2010
error_reporting(E_ALL);
ini_set('display_errors', 'on');
$db = sqlite_open("Mydatabasenamehere.db", 0666, $sqliteerror)
   or die($sqliteerror);
echo "<p>Recent Posts</p>";
$sql = "SELECT * FROM phpbb_posts ORDER BY post_time DESC LIMIT 15";
echo "<p>Query: " . $sql . "</p>";
$recent = sqlite_query($db, $sql)
   or die(sqlite_error_string(sqlite_last_error()));
  1. включить отчеты об ошибках (поверх скрипта, сразу после <?php)
  2. если еще есть белая страница, проверьте, есть ли у вас доступ к файлу журнала ошибок
  3. проверить, успешно ли sqlite_open or die($sqliteerror);
  4. отладочный запрос
  5. вызывать sqlite_error_string после каждого sqlite_query
...