Kære udviklere,
Jeg har prøvet at få hjælp til det her problem igår, men der kom ikke nogen desideret konklusion på mit problem. Jeg har rodet lidt med det, og kom lidt længere med det.
Mit tidligere indlæg:
Array fra databaseMit nuværende problem: Jeg får udskrevet de rigtige tags-navne til det gældende indlæg. Det virker fint. Problemet er bare at den duplikerer mine indlæg afhængig af hvor mange tags det enkelte indlæg har i sig.
Jeg har prøvet at smide det her SQL-kode ind i phpMyAdmin (har også prøvet i mit script):
- SELECT DISTINCT * , COUNT( tagsId ) AS tagsCount, tags . *
- FROM tutorials
- INNER JOIN tagsForTutorials ON tutorials.tutorialsId = tagsForTutorials.FK_tutorialsId
- LEFT JOIN tags ON tagsForTutorials.FK_tagsId = tags.tagsId
- LEFT JOIN tutorialscomments ON tutorialscomments.FK_tutorialsId = tutorials.tutorialsId
- INNER JOIN members ON tutorials.tutorialsAuthor = members.membersId
- WHERE tutorials.tutorialsOpen = '1'
- GROUP BY (
- tagsId
- ), tutorialsId
- ORDER BY tutorialsId DESC
- LIMIT 0 , 30
koden er taget efter test hos phpmyadmin...jeg får dette resultat:
ImageShackJeg udskriver mine indlæg således:
- $db->mysql_open();
- mysql_set_charset('utf8');
- $db->query("SELECT DISTINCT *, COUNT(tagsId) AS tagsCount, tags.* FROM tutorials INNER JOIN tagsForTutorials ON tutorials.tutorialsId = tagsForTutorials.FK_tutorialsId LEFT JOIN tags ON tagsForTutorials.FK_tagsId = tags.tagsId LEFT JOIN tutorialscomments ON tutorialscomments.FK_tutorialsId = tutorials.tutorialsId INNER JOIN members ON tutorials.tutorialsAuthor = members.membersId WHERE tutorials.tutorialsOpen = '1' GROUP BY tagsId, tutorialsId ORDER BY tutorialsId DESC");
- $result = $db->fetchAll();
-
- if(mysql_num_rows($db->query) == 0)
- {
- ?>
- <div class="and">
- <h3>Ingen resultater fundet</h3>
- <span>
- <p>
- Bloggen har endnu ikke nogle indlæg.<br />
- Kontakt mig for at foreslå nogle indlæg.
- </p>
- </span>
- <div class="clear"></div>
- </div>
- <?php
- }
- else
- {
- foreach($result as $row):
- $day = date("d", strtotime($row["tutorialsDate"]));
- $month = date("n", strtotime($row["tutorialsDate"]));
- $year = date("Y", strtotime($row["tutorialsDate"]));
-
- $months = array(01 => "januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december");
-
- $days = array("Monday" => "Mandag", "Tuesday" => "Tirsdag", "Wednesday" => "Onsdag", "Thursday" => "Torsdag", "Friday" => "Fredag", "Saturday" => "Lørdag", "Sunday" => "Søndag");
-
- $date = $month . "/" . $day . "/" . $year;
- $dateget = getdate(strtotime($date));
- ?>
- <div class="blo">
- <h3><?=$row["tutorialsName"]?></h3>
- <span>
- <ul>
- <li><img src="<?=$menu->menu()?>img/clock.gif" alt="date" />
- <?=$days[$dateget['weekday']]." d. ".$day." ".$months[$month].", ".$year?></li>
- <li><img src="<?=$menu->menu()?>img/comments.gif" alt="com" />
- <a href="<?=$menu->menu()?>tutorials/<?=$row["tutorialsId"]?>/#comments"><?=count($row["comId"])?> <?=(count($row["comId"]) == 1 ? 'Comment' : 'Comments')?></a></li>
- <li><img src="<?=$menu->menu()?>img/tag.gif" alt="tag" />
- <?php for($k=0;$k<$row["tagsCount"];$k++): echo '<a href="'.$menu->menu().'tutorials/tag/'.$row["tagsName"].'/">'.$row["tagsName"].'</a> '; endfor; ?></li>
- <li><img src="<?=$menu->menu()?>img/author.gif" alt="author" />
- <?php if($row["show"] == "1") echo '<a href="'.$menu->menu().'users/'.$row["membersId"].'/">'.$row["membersUsername"].'</a>'; elseif($row["show"] == "2") echo '<a href="'.$menu->menu().'users/'.$row["membersId"].'/">'.$row["membersFornavn"].'</a>'; else if($row["show"] == "3") echo '<a href="'.$menu->menu().'users/'.$row["membersId"].'/">'.$row["membersEfternavn"].'</a>'; else if($row["show"] == "4") echo '<a href="'.$menu->menu().'users/'.$row["membersId"].'/">'.$row["membersFornavn"] . " " . $row["membersEfternavn"].'</a>'; else if($row["show"] == "5") echo '<a href="'.$menu->menu().'users/'.$row["membersId"].'/">'.$row["membersEfternavn"] . " " . $row["membersFornavn"].'</a>'; else echo "anonymous"; ?></li>
- </ul><br />
- <p>
- <?php
- $array1 = array("[img", "/]");
- $array2 = array("<img", "/>");
- $row["tutorialsText"] = str_replace($array1, $array2, $row["tutorialsText"]);
-
- echo strip_tags(strlen($row["tutorialsText"]) > 200 ? substr($row["tutorialsText"], 0, 200) . "..." : $row["tutorialsText"]);
- ?><br /><br />
-
- <a href="<?=$menu->menu()?>tutorials/<?=$row["tutorialsId"]?>/" class="more">Læs mere</a>
- </p>
- </span>
- <div class="clear"></div>
- </div>
- <?php
- endforeach;
- }
- $db->mysql_close();
Jeg forstår det ikke. Er der nogle der har en idé?
Indlæg senest redigeret d. 15.05.2012 18:45 af Bruger #16025