16. juni 2004 - 11:10Der er
67 kommentarer og 1 løsning
Hent data fra phpBB
Jeg har lige oprette et forum (13 juni 2004), det er det berømte phpBB. Jeg kunne godt tænke mig at trække nogen data ud fra de nyeste indlæg. Iøjeblikket har jeg lavet en lille løsning, se http://www.yalla.dk - men jeg er ikke tilfreds med resultatet, det jeg leder efter skal helst ligne det som http://www.1go.dk har lavet. Admin på forummet (mig), skal skelle sig ud fra de andre brugere, når jeg opretter et nyt emne. Her tænker jeg på at ikonet skal være noget andet. Altså alle de andre skal ha et bestemt ikon, og jeg skal ha´ et der skeller sig fra de andre !!!
Er der nogen der kan lave det ??? - jeg tror det er en meget stor opgave, så jeg giver 200 point...
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
$sql = " SELECT t.topic_title, t.topic_time, u.username, u.user_level FROM phpbb_topics t, phpbb_users u WHERE t.topic_poster = u.user_id AND t.forum_id = 2 ORDER BY t.topic_time DESC";
Øhhh, jeg kan ikke php, så kan du ikke skrive alle oplysningerne ? Det er ligesom at der mangler noget ! Ps, jeg kan kun finde ud af at copy and paste, så det er meget vigtigt at i skriver det hele, så jeg kun skal indsætte oplysningerne til MySQL...
Du ska lige smække <?php før koden og ?> efter koden.
altså: <?php $sql = " SELECT t.topic_title, t.topic_time, u.username, u.user_level FROM phpbb_topics t, phpbb_users u WHERE t.topic_poster = u.user_id AND t.forum_id = 2 ORDER BY t.topic_time DESC";
Her er scriptet igen. Dit problem er, tror jeg, at du ikke har erstattet MYSQLSERVER / MYSQLBRUGER / MYSQLPASSWORD - hvor de to sidste er de samme som du bruger i phpmyadmin. MYSQLSERVER ved jeg ikke hvad er, det afhænger af hvordan det er sat op - men hvis du er hel på bar bund så prøv at bruge "localhost" som MYSQLSERVER
<?php mysql_connect("MYSQLSERVER", "MYSQLBRUGER", "MYSQLPASSWORD") or die(mysql_error()); mysql_select_db("MYSQLDATABASE") or die(mysql_error());
$sql = " SELECT t.topic_title, t.topic_time, u.username, u.user_level FROM phpbb_topics t, phpbb_users u WHERE t.topic_poster = u.user_id ORDER BY t.topic_time DESC";
Okay jeg skal nok være lidt mere konkret, overskriften på indlægget skal selvfølgelig være et link, og der skal også printes en dato på, men som jeg skriver i starten af spørgsmålet, skal det minde så meget som det http://www.1go.dk har lavet. Dog skal der ikke laves layout...
mysql_connect("MYSQLSERVER", "MYSQLBRUGER", "MYSQLPASSWORD") or die(mysql_error()); mysql_select_db("MYSQLDATABASE") or die(mysql_error());
$sql = " SELECT t.post_id, t.topic_title, t.topic_time, u.username, u.user_level FROM phpbb_topics t, phpbb_users u WHERE t.topic_poster = u.user_id ORDER BY t.topic_time DESC";
SELECT p.post_id, t.topic_title, t.topic_time, u.username, u.user_level FROM phpbb_topics t, phpbb_users u, phpbb_posts p WHERE t.topic_poster = u.user_id AND p.topic_id = t.topic_id ORDER BY t.topic_time DESC
SELECT t.topic_last_post_id, t.topic_title, t.topic_time, u.username, u.user_level FROM phpbb_topics t, phpbb_users u WHERE t.topic_poster = u.user_id ORDER BY t.topic_time DESC
Prøv at erstatte: $sql = " SELECT t.post_id, t.topic_title, t.topic_time, u.username, u.user_level FROM phpbb_topics t, phpbb_users u WHERE t.topic_poster = u.user_id ORDER BY t.topic_time DESC";
med: $sql = " SELECT p.post_id, t.topic_title, p.post_time, u.username, u.user_level FROM phpbb_posts p, phpbb_topics t LEFT JOIN phpbb_users u ON ( p.poster_id = u.user_id ) WHERE t.topic_id = p.post_id ORDER BY t.post_time DESC ";
if (!mysql_connect("$server","$bruger","$kodeord")) { echo "Kunne ikke oprette en forbindelse til MySQL."; }
if(!mysql_select_db("$database")) { echo "Kunne ikke vælge databasen: $database"; }
$resultat = mysql_query("select topic_id, topic_title, topic_poster, topic_time from phpbb_topics order by topic_time desc limit 0, 5");
while ($raekke = mysql_fetch_array($resultat)) {
//Find bruger $bruger = mysql_query("select username from phpbb_users where user_id='".$raekke['topic_poster']."'"); extract(mysql_fetch_array($bruger));
echo "<a href=\"bums/viewtopic.php?t=".$raekke['topic_id']."\">".$raekke['topic_title']."</a> Postet af $username<br />"; } ?>
for f... da.. Det går da ellers ret godt for mig :-)..
prøv: $sql = " SELECT p.post_id, t.topic_title, p.post_time, u.username, u.user_level FROM phpbb_posts p, phpbb_topics t LEFT JOIN phpbb_users u ON ( p.poster_id = u.user_id ) WHERE t.topic_id = p.post_id ORDER BY p.post_time DESC ";
.. forresten hvor mange posts skal der vises på den side? de sidste 10 ? 20?
Prøv med: <?php $sql = " SELECT t.topic_id, t.topic_title, t.topic_time, u.username, u.user_level FROM phpbb_posts p, phpbb_topics t LEFT JOIN phpbb_users u ON ( p.poster_id = u.user_id ) WHERE t.topic_id = p.post_id ORDER BY p.post_time DESC LIMIT 5";
linksne gå også ind på et forkert emne... Så der er noget at arbejde med endnu, jeg håber ikke jeg giver dig grå hår, men tag det som en øvelse i at programmere...
Det er skam ikke det at programmerer.. Det er mere at hitte rede i hvordan phpbb gemmer sit skidt. Med 31 tabeller er det ikke helt åbenlyst hvor man skal hente hvad fra..
<table border=0> <?php mysql_connect(SERVER,BRUGER,PASSWORLD) or die(mysql_error()); mysql_select_db(DATABASE) or die(mysql_error());
$sql = " SELECT t.topic_id, t.topic_title, p.post_time, u.username, u.user_level, u.user_avatar, u.user_avatar_type FROM phpbb_posts p, phpbb_topics t LEFT JOIN phpbb_users u ON ( p.poster_id = u.user_id ) WHERE t.topic_id = p.topic_id ORDER BY p.post_time DESC LIMIT 10"; $forumurl = '/bums/';
prøv: $sql = "SELECT t.topic_id, t.topic_title, p.post_time, u.username, u.user_level, u.user_avatar, u.user_avatar_type FROM phpbb_posts p, phpbb_topics t LEFT JOIN phpbb_users u ON ( p.poster_id = u.user_id ) WHERE t.topic_id = p.topic_id ORDER BY p.post_time DESC LIMIT 10";
2: efter print "</tr>"; tilføjer du: print "<tr><td colspan=5><hr></td></tr>";
Som du kan se på http://www.yalla.dk er der kun skrevet 4 indlæg i forumet, og ikke 10 som der er i din kode, det er fordi den også regner svarne med, jeg tror bare at det er en linje der skal slettes, men jeg rør ikke ved noget jeg ikke har forstand på !
$sql = "SELECT t.topic_id, t.topic_title, t.topic_time, u.username, u.user_level, u.user_avatar, u.user_avatar_type FROM phpbb_topics t LEFT JOIN phpbb_users u ON ( t.topic_poster = u.user_id ) ORDER BY t.topic_time DESC LIMIT 10";
Jeg håber at du har lært meget idag, og jeg er glad for at du har haft sådan en god fighter vilje. Har du en hjemmeside, for så kan jeg evt også skrive at "this is made by www.???.dk"
Jeg skal lave et svar før du kan give mig points - det er hermed gjort :).
Jeg har flere sider, men hvis du gerne vil linke, så vil jeg ikke have noget imod at det blev til http://phpbog.dk (er slet ikke færdig.). Jeg har ikke logo eller noget endnu. Min personlige side er http://dennis.moellegaard.dk
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.