2010-10-14 15 views
0

J'ai besoin d'aide rapidement, au lieu d'utiliser mySQL mon forum phpbb3 utilise SQlite 2, un fichier normal "database.db qui a été créé manuellement à partir d'un fichier notepad.txt puis peuplé par phpbb3" J'ai besoin help Accès aux données dans cette base de données SQlite 2 au lieu de MySQL.Aide! Affichage de phpbb3 Messages récents de base de données SQlite 2

quand je lance ce script je reçois l'écho: les messages récents (situé sur line3) mais rien d'autre

Je suis un noob avec PHP afin Plz aide, j'ai été à elle pendant 1 semaine maintenant avec pas de chance

en fin de compte je veux Afficher les 15 messages les plus récents dans une boîte dynamique txt Adobe flash avec html en dehors de Phpbb3 sur mon site

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

    } 

    ?> 
+0

Pouvez-vous s'il vous plaît poster la sortie html de votre script? – kskjon

Répondre

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. activer les rapports d'erreur (en haut du script, juste après <?php)
  2. s'il y a encore un contrôle de page blanche si vous avez accès à fichier log erreur
  3. vérifier si sqlite_open a réussi or die($sqliteerror);
  4. debug requête
  5. appel sqlite_error_string après chaque sqlite_query
+0

Thanx pour la relecture rapide, Lorsque j'utilise ce code ci-dessus, je suis de retour à un écran vide :(, Man Si je savais que ce serait une telle mission, je serais allé avec MySQL lol – banshee10000

+0

TY, maintenant au moins obtenir Erreur form Requête: SELECT * FROM phpbb_posts ORDER BY post_time DESC LIMIT 15 Remarque: Indéfini index: post_id dans rec.php à la ligne 25 Remarque: Indéfini index: topic_id dans rec.php à la ligne 26 Remarque: Indéfini index: forum_id dans rec.php à la ligne 27 Remarque: Indéfini index: poster_id dans rec.php à la ligne 28 Remarque: Indéfini index: post_time dans rec.php à la ligne 29 Erreur fatale: Le nom de la fonction doit être une chaîne dans rec.php à la ligne 34 .... – banshee10000

+0

AH HA Got it, merci beaucoup pour votre aide publiera Solution – banshee10000

1

Alors Avec l'aide de Maggie j'ai réussi à démerder:

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

} 

?> 

je devais changer SQLite pour « fetch_array » au lieu de « tous » ou « chaîne » Hope this helps autres aussi