0

我需要快速帮助,而不是使用 mySQL 我的 phpbb3 论坛使用 SQlite 2,一个普通的“database.db 文件,它是从 notepad.txt 文件手动创建然后由 phpbb3 填充的”我需要帮助访问该 SQlite 2 数据库中的数据MySQL的。

当我运行这个脚本时,我得到回声:最近的帖子(位于第 3 行),但没有别的

我是 PHP 的一个完整的菜鸟,所以请帮助,我已经使用它 1 周了,没有运气

最终,我想在我的网站上的 Phpbb3 之外的带有 html 支持的 Adob​​e Flash 动态 txt 框中显示 15 个最新帖子

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 />";

    }

    ?>
4

2 回答 2

1

所以在 Maggie 的帮助下,我设法解决了这个问题:

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”而不是“全部”或“字符串”希望这对其他人也有帮助

于 2010-10-15T06:38:08.667 回答
0
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_query 之后调用 sqlite_error_string
于 2010-10-14T10:42:55.193 回答