Avatar billede sjh Nybegynder
30. december 2003 - 15:27 Der er 23 kommentarer og
1 løsning

Nyeste indlæg fra 2 tabeller (MySQL)

Hvordan for jeg vist forum_question.Title som passer med forum_comment.ID

>---------------- SQL ---------------------<
CREATE TABLE `forum_question` (
  `ID` int(11) NOT NULL auto_increment,
  `Datenum` int(10) NOT NULL default '0',
  `Title` varchar(100) NOT NULL default '',
  `Category` int(11) NOT NULL default '0',
  `Username` varchar(15) NOT NULL default '',
  `Question` text NOT NULL,
  PRIMARY KEY  (`ID`)
) TYPE=MyISAM;


CREATE TABLE `forum_comment` (
  `ID` int(11) NOT NULL default '0',
  `Datenum` int(10) NOT NULL default '0',
  `Username` varchar(15) NOT NULL default '',
  `Comment` text NOT NULL
) TYPE=MyISAM;
>---------------- SQL ---------------------<

<?
  $sqlstring = "SELECT DISTINCT forum_comment.ID FROM forum_comment, forum_question ORDER BY forum_comment.Datenum DESC LIMIT 5;";
?>
<table border="0" width="100%" cellpadding="1" cellspacing="1">
  <?
    $query = mysql_query($sqlstring);
    while($row = mysql_fetch_array($query)) {
        echo '<tr>';
        echo '<td>'.$row["ID"]." - ".$row["Title"].'</td>';
        echo '</tr>';
    }
  ?>
</table>
Avatar billede Slettet bruger
30. december 2003 - 15:33 #1
Den ID i din comment tabel, er det magen til det tilsvarende ID i den anden tabel?

Ellers skal du oprette et nyt felt i `forum_comment`, så der er noget til at binde de to tabeller sammen.
Avatar billede sjh Nybegynder
30. december 2003 - 15:38 #2
forum_comment.ID er det samme ID som i forum_question.ID, men forum_question.ID er auto_increment det er forum_comment.ID ikke og kan indeholde flere af samme ID som passer til forum_question.ID

fik du den :D
Avatar billede Slettet bruger
30. december 2003 - 15:42 #3
Jep, så har du noget til at binde dem sammen. Øjeblik, mens jeg lige skruer lidt SQL sammen.
Avatar billede sjh Nybegynder
30. december 2003 - 15:43 #4
:-)
Avatar billede detox Nybegynder
30. december 2003 - 15:54 #5
Et bud:

SELECT a.ID, b.Title FROM forum_comment a LEFT JOIN forum_question b
ON a.ID = b.ID GROUP BY a.ID
ORDER BY a.Datenum DESC LIMIT 5;
Avatar billede sjh Nybegynder
30. december 2003 - 15:59 #6
hvordan for jeg så det ud??

echo '<td>'.$row["a.ID"]." - ".$row["b.Title"].'</td>';
Avatar billede Slettet bruger
30. december 2003 - 15:59 #7
som jeg læser det, vil du bare have link med titel til de 5 forums med nyeste indlæg?

SELECT c.ID AS ID, q.Title AS Title
FROM forum_comment AS c, forum_question AS q
WHERE c.ID=q.ID
GROUP BY c.ID
ORDER BY MAX(c.Datenum) DESC LIMIT 5

Burde virke i din nuværende kode.
Avatar billede detox Nybegynder
30. december 2003 - 16:00 #8
Næ, bare:

echo '<td>'.$row["ID"]." - ".$row["Title"].'</td>';
Avatar billede sjh Nybegynder
30. december 2003 - 16:04 #9
sandbox < Din giver fejl:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...

detox < Jeg for ikke noget result.. har prøvet med:

echo '<td>'.$row["ID"]." - ".$row["Title"].'</td>';
og
echo '<td>'.$row["a.ID"]." - ".$row["b.Title"].'</td>';
Avatar billede Slettet bruger
30. december 2003 - 16:10 #10
Prøv at lave denne linie om:
$query = mysql_query($sqlstring) or die(mysql_error());
Avatar billede sjh Nybegynder
30. december 2003 - 16:12 #11
Invalid use of group function
Avatar billede detox Nybegynder
30. december 2003 - 16:20 #12
Jeg kan ikke se nogen fejl ved mit forslag. Har du prøvet det med:
$query = mysql_query($sqlstring) or die(mysql_error());
Avatar billede detox Nybegynder
30. december 2003 - 16:22 #13
Faktisk burde sandbox's osse virke, hvis du fjerner MAX():

SELECT c.ID AS ID, q.Title AS Title
FROM forum_comment AS c, forum_question AS q
WHERE c.ID=q.ID
GROUP BY c.ID
ORDER BY c.Datenum DESC LIMIT 5
Avatar billede sjh Nybegynder
30. december 2003 - 16:24 #14
der kommer fejl hos mig..

men sandbox SQL-string virker altså nu... ved ikke havd jeg gjore forkert før..

sandbox < kan du ikke lige smide et svar

Tak for hjælpen begge 2 :-)
Avatar billede detox Nybegynder
30. december 2003 - 16:26 #15
Hmm spøjst, men velbekommen da ;o)
Avatar billede Slettet bruger
30. december 2003 - 16:27 #16
Den eneste ting, jeg uniddelbart kan se specielt ved detox's forslag er semikolon til sidst, som vist nok ikke må bruges i PHP's funktioner.
Avatar billede detox Nybegynder
30. december 2003 - 16:28 #17
sandbox -> Arh ja, måske det er det.
Avatar billede Slettet bruger
30. december 2003 - 16:29 #18
Skal detocx ikke have lidt af pointene også?
Avatar billede sjh Nybegynder
30. december 2003 - 16:29 #19
sandbox < kan du ikke lige smide et svar... :-)
Avatar billede Slettet bruger
30. december 2003 - 16:30 #20
Og der var et svar.
Avatar billede sjh Nybegynder
30. december 2003 - 16:31 #21
kan du så ikke lave et svar mere ;)
Avatar billede Slettet bruger
30. december 2003 - 16:44 #22
Hov, jeg glemte at flytte radioknappen. *LOL*
Avatar billede sjh Nybegynder
30. december 2003 - 17:09 #23
ha ha..
Avatar billede sjh Nybegynder
01. januar 2004 - 16:22 #24
Den sql-string som sandbox laved.. virker desværre ikke som den skulle :(
men jeg har fået lavet noget rigtigt slam.. kode, men det virker :)

jeg vil godt oprette et spørg.. på 60 point, hvis i kan lave en bedder sql-string/kode :)

Jeg har lavet en AutoID i forum_comment..

<?php
  $query = mysql_query("SELECT DISTINCT ID FROM forum_comment ORDER BY AutoID DESC LIMIT 5;");
  while($row = mysql_fetch_array($query)) {
    $strID .= $row["ID"].",";
  }

  $arrID = explode(",",$strID);
  for ($i=0;$i<count($arrID)-1;$i++) {
    $query = mysql_query("SELECT ID, Title, Category FROM forum_question WHERE ID = '".$arrID[$i]."';");
    $row = mysql_fetch_array($query);
    echo '<tr>';
    echo '<td><a href="/forum/?id='.$row["ID"].'" title="'.category_title($row["Category"]).'">'.$row["Title"].'</a></td>';
    echo '</tr>';
  }
?>
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester