mboost-dp1

Problem med data ud af 3 tabeller


Gå til bund
Gravatar #1 - quimby
19. apr. 2006 14:39
Hej.

Jeg har problemer med at hente data ud fra flere tabeller. Min kode ser ud som flg.
---
$q = mysql_query("
SELECT
`phpbb_topics.topic_id`,
`phpbb_topics.forum_id`,
`phpbb_topics.topic_time`,
`phpbb_topics.topic_poster`,
`phpbb_forums.forum_name`,
`phpbb_posts_text.post_subject`
FROM
`phpbb_topics`, `phpbb_forums`, `phpbb_posts_text`
ORDER BY `phpbb_topics.topic_id` DESC
LIMIT 5") or die(mysql_error());
while($r = mysql_fetch_array($q))
{
echo "
<a href='http://www.domaene.tld/forum/viewtopic.php?p=".$r['phpbb_topics.forum_id']."'>im not sure...[/url]
";
}
---

Men når koden afvikles får jeg simpelt og enkel fejl beskeden
Unknown column 'phpbb_topics.topic_id' in 'field list'
Læste så om den funktion som hedder JOIN, men forstår ikke hvordan den skal bruges og efter 20 minutter på MySql dokumentationen måtte jeg pt. give tabt.
Jeg håber at der er en der ude som kan se fejlen i koden, eller måske endnu bedre, kan fortælle mig hvordan jeg benytter mig af JOIN funktionen i dette tilfælde!?

Mvh

Søren
Gravatar #2 - JAB
19. apr. 2006 15:28
hvis du kan vise tabel strukturen, (hvilke felter er der) så er det nok lidt lettere
Gravatar #3 - quimby
19. apr. 2006 18:18
phpbb_topics ser ud som flg. (kun de relevante felter):
topic_id | forum_id | topic_title | topic_poster | topic_time

phpbb_forums:
forum_id | cat_id | forum_name

phpbb_posts_text:
post_id | bbcode_uid | post_subject | post_text

Håber at det er til hjælp :)
Gravatar #4 - hundeboll
19. apr. 2006 19:05
fjern ' om alle navnene.
Gravatar #5 - quimby
19. apr. 2006 19:27
YES! Kraft edme om det ikke var det.. mærkeligt at det er der fejlen ligger syntes jeg, men jeg siger tak :)
Gravatar #6 - hundeboll
19. apr. 2006 19:32
Til næste gang, så bør du vide følgende:
Du skal kun bruge ', når du har strings i din query, som ikke refferer til noget i databasen. Det værer sig tekst som skal sættes ind eller tekst du skal søge med. Der er dog en lille finte når man bruge UPDATE. Så vidt jeg husker skal man også bruge ' om integers her. Ved dog ikke hvorfor og det er også længe siden jeg har brugt det.
Gravatar #7 - JAB
19. apr. 2006 19:34
prøv at fjerne ´ omkring
ORDER BY `phpbb_topics.topic_id` DESC
så der står
ORDER BY phpbb_topics.topic_id DESC

ud fra noget home testing så var det den der drillede mig, kan også se at phpmyadmin er glad for at bruge ´ og ikke ' i alle sine autogen ting.
Gravatar #8 - quimby
19. apr. 2006 19:51
Og så lige et sidste spørgsmål. Når jeg så prøver at printe $r['phpbb_topics.topic_time'] får jeg ikke noget output, nogen ide om dette problem?
Gravatar #9 - JAB
19. apr. 2006 19:53
du har tjekket at der er nogle data i det felt right ?
Gravatar #10 - quimby
19. apr. 2006 20:04
#9
Yep, får fint output igennem phpmyadmin, så ja, den er udelukket :)
Gravatar #11 - hundeboll
19. apr. 2006 20:39
Når du bruger mysql_fetch_rows skal du bruge numre i stedet for kolonne navnene:
echo $r[2];

vil du bruge navnet skal du bruge mysql_fetch_array

hov.læste forkert. Tror bare du skal fjerne phpbb_topics.
Gravatar #12 - JesperJ
20. apr. 2006 20:05
SQL JOIN-funktion tutorial.

Funktionen bruges til at forene tabeller på en smartere måde, hvor du kan bestemme om resultater i den ene eller anden tabel skal vises hvis de ikke indeholder en streng eller tal.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login