Avatar billede doncarnage Nybegynder
30. juni 2009 - 20:26 Der er 3 kommentarer og
1 løsning

Samling af kommentarsvar - evt. vha union, men hvordan?

Godaften folkens..

Jeg er stødt på et problem som jeg sindssyg gerne vil ha' løst! Jeg smider derfor en "masse" point på højkant denne gang, men forventer så også nogle gode fyldestgørende svar! (:D)
Jeg har et kommentarsystem, hvor man på sin egen brugerside har en oversigt over de nyeste svar man har fået fra andre brugere i hhv. forum og blogs. Illustreret ser det sådan ud nu:

Nye kommentarer (forum)
- Ja,… (NY) afsender, dato osv.
- Haha, fedt… (NY) afsender, dato osv.
- Tralala… ( ) afsender, dato osv.

Nye kommentarer (blogs)
- Hej der… (NY) afsender, dato osv.
- Det synes jeg også…. (NY) afsender, dato osv.
- Måske skulle man… ( ) afsender, dato osv.

Jeg vil dog meget gerne ha' samlet disse i én så den bare hedder Nye kommentarer.

Den nye skal derfor se ud som her:

Nye kommentarer (både forum og blogs):
- Ja,… (NY) afsender, dato osv.
- Haha, fedt… (NY) afsender, dato osv.
- Tralala… ( ) afsender, dato osv.
- Hej der… (NY) afsender, dato osv.
- Det synes jeg også…. (NY) afsender, dato osv.
- Måske skulle man… ( ) afsender, dato osv.

Her skal de så sorteres efter dato, men det er vidst ikke der det svære ligger =) Så vidt jeg kan se ligger det svære i at når det er kommentarer fra blogs skal adressen til titlerne være (blogs.display.php?id=….), men når det er kommentarer fra forum skal linksne være (forum.display.php?id=….)

Men hvordan i al verden gør jeg dette :/ ?

Jeg har kigget lidt rundt på nettet og fundet frem til at jeg nok skal bruge UNION metoden, men det har jeg forsøgt at gøre op til flere gange uden held desværre.


---------------------------------------------------------------------------------------------------
Her er udplukket af koden som det ser ud nu:

    <div class="space3"></div>
   
    <div class="table3">
    <div class="tableprofilauto">
      <div class="titlebg3">Nyeste svar: Forum</div>
      <div class="newcontent6">
        <div class="text10">

      <?php               
$query = mysql_query("SELECT * FROM forum_comments WHERE parentuserid = ".$_SESSION['SESS_MEMBER_ID']." ORDER BY time DESC LIMIT $s, $prside") or die(mysql_error());
$querytime = mysql_query("SELECT DATE_FORMAT(time, '%d.%m.%Y kl. %H:%i') as time FROM forum_comments WHERE parentuserid = ".$_SESSION['SESS_MEMBER_ID']." ORDER BY time DESC") or die(mysql_error());
       
   
while ($row = mysql_fetch_assoc($query) AND $rowtime = mysql_fetch_assoc($querytime)) {

        echo '<div class="textblogtitle">';
       
        $message = nl2br(htmlspecialchars($row['text']));
           
        if(strlen($message)>60){
        $titel = substr($message,0,60);
        $ending = "...";
        }
        else{
        $titel = $message;
        $ending = "";
        }
       
        if ($row["seen"] == "0")
          {
echo '<a href=forum.display.php?id=';
echo nl2br(htmlspecialchars($row['topic_id']));
echo '&read=';
echo nl2br(htmlspecialchars($row['id']));
echo '#';
echo nl2br(htmlspecialchars($row['id']));
echo ' class="alternative">';
echo $titel;
                echo $ending;
echo '</a>';
echo ' <font class="textnewcomment">NY</font>';
          }
       
              else if ($row["seen"] == "1")
                  {
echo '<a href=forum.display.php?id=';
echo nl2br(htmlspecialchars($row['topic_id']));
echo '#';
echo nl2br(htmlspecialchars($row['id']));
echo ' class="alternative">';
echo $titel;
              echo $ending;
echo '</a>';
                    }
       
echo '</div>';
echo '<div class="textblogtime">';
echo '<a href=profil.php?id=';
echo nl2br(htmlspecialchars($row['userid']));
echo ' class="alternative">';
echo nl2br(htmlspecialchars($row['author']));
echo '</a> (';
echo $rowtime['time'];
echo ')</div>';
echo '<br />';

}
       
  ?>

</div>
<div style="clear:both;"></div>
</div></div></div>
     
<div class="space3"></div>
   
    <div class="table3">
    <div class="tableprofilauto">
      <div class="titlebg3">Nyeste svar: Blogs</div>
      <div class="newcontent6">
        <div class="text10">

<?php               
$query = mysql_query("SELECT * FROM blogs_comments WHERE parentuserid = ".$_SESSION['SESS_MEMBER_ID']." ORDER BY time DESC LIMIT $s, $prside") or die(mysql_error());
$querytime = mysql_query("SELECT DATE_FORMAT(time, '%d.%m.%Y kl. %H:%i') as time FROM blogs_comments WHERE parentuserid = ".$_SESSION['SESS_MEMBER_ID']." ORDER BY time DESC") or die(mysql_error());
   
while ($row = mysql_fetch_assoc($query) AND $rowtime = mysql_fetch_assoc($querytime)) {

echo '<div class="textblogtitle">';
       
        $message = nl2br(htmlspecialchars($row['text']));
           
        if(strlen($message)>60){
        $titel = substr($message,0,60);
        $ending = "...";
        }
        else{
        $titel = $message;
        $ending = "";
        }
       
                if ($row["seen"] == "0")
                      {
    echo '<a href=blogs.display.php?id=';
    echo nl2br(htmlspecialchars($row['blog_id']));
    echo '&read=';
    echo nl2br(htmlspecialchars($row['id']));
    echo '#';
    echo nl2br(htmlspecialchars($row['id']));
    echo ' class="alternative">';
    echo $titel;
              echo $ending;
    echo '</a>';
    echo ' <font class="textnewcomment">NY</font>';
                        }
       
                  else if ($row["seen"] == "1")
                      {
    echo '<a href=blogs.display.php?id=';
    echo nl2br(htmlspecialchars($row['blog_id']));
    echo '#';
    echo nl2br(htmlspecialchars($row['id']));
    echo ' class="alternative">';
    echo $titel;
                  echo $ending;
    echo '</a>';
                      }
       
echo '</div>';
echo '<div class="textblogtime">';
echo '<a href=profil.php?id=';
echo nl2br(htmlspecialchars($row['userid']));
echo ' class="alternative">';
echo nl2br(htmlspecialchars($row['author']));
echo '</a> (';
echo $rowtime['time'];
echo ')</div>';
echo '<br />';
  }
?>
</div>
<div style="clear:both;"></div>
</div></div></div>
<div class="space3"></div>
---------------------------------------------------------------------------------------------------
Avatar billede ebusiness Nybegynder
01. juli 2009 - 11:55 #1
Du får lige den korte version:

I stedet for at udskrive rækkerne efterhånden som de indlæses skal du indlæse dem i et array, når du så har gjort det for begge tabeller laver du en samlet løkke, hvor du holder en indeks variabel for hvert array til at holde styr på hvor langt du er nået i det array. I løkken tjekker du så i hvilket array den nyeste post er, afvikler kode for det array, og lægger 1 til det arrays indeks.
Avatar billede doncarnage Nybegynder
01. juli 2009 - 12:47 #2
Jeg har valgt den "lette" løsning og samlet alle kommentarer i én tabel fremfor flere forskellige. På den måde kunne jeg nemlig selv løse det uden problemer ;)

Dit foreslag lyder lidt avanceret, men jeg får muligvis brug for det senere - hvis databasen bliver alt for tung.. Jeg lader derfor også lige tråden stå åben lidt, hvis andre skulle få lyst til at bidrage med tips og gode råd =)
Avatar billede doncarnage Nybegynder
03. juli 2009 - 23:54 #3
Nå.. Du må lige smide et svar, hvis du vil ha nogle points..

Der er vidst ikke flere, der vil "lege" med ;)
Avatar billede ebusiness Nybegynder
04. juli 2009 - 01:13 #4
Giv hvad du synes passer.
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