Toon posts:

[PHP] Select query en topic troubles

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste mensen,

Kort geleden heb ik voor een siteje van mij phpBB gebruikt en volledig aangepast :9 . Eén van die aanpassingen is om één van de fori op een andere pagina te laten verschijnen (de topics van dat forum welteverstaan). Hardstikke leuk dacht ik zo, dus ik een beetje klussen en vergelijken met wat anderen gedaan hebben, met deze select query als resultaat:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
$sql = "SELECT 
  t.topic_title, t.topic_id, f.forum_id, 
  p.poster_id, p.post_time, p.post_time, 
  t.topic_time, u.user_sig, u.username, 
  p.post_id, pt.post_text, pt.post_id, 
  t.topic_poster 
FROM 
  topics t, forums f, 
  posts p, users u, posts_text pt 
WHERE 
  p.poster_id = t.topic_poster 
  AND p.post_time = t.topic_time 
  AND pt.post_id = p.post_id 
  AND t.topic_id = p.topic_id 
  AND f.forum_id = t.forum_id 
  AND p.poster_id = u.user_id 
  AND t.forum_id = $ForumNummer 
ORDER BY topic_time DESC LIMIT $PostNummer";
?>

Vervolgens wat gedoe om het topic een beetje vorm te geven:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$h = stripslashes($k['topic_title']);
$depostergozar = stripslashes($k['username']);
$postedtijd = stripslashes($k['post_time']);
$message = stripslashes($k['post_text']);
$replys = get_total_posts($k['topic_id'], $db, "topic");
$replys--; 
//dit heb ik bij iemand anders zien staan, het werkt zowel zonder als met. 
//Totdat iemand reageerd, dan werkt het weer niet.
$topic_id = stripslashes($k['topic_id']);
$posticon = "[img]\"$url_images/posticon.gif\"[/img]";
// Stukje slechte html ;)
?>

Op zich ziet het er goed uit en alle topics verschijnen idd op de pagina die ik wil, TOTDAT.... er iemand een reactie op één van die berichten geeft. Dan ineens verschijnt die betreffende topic niet meer :?

aangezien ik bij iemand anders $replys--; heb zien staan dacht ik misschien werkt het dan, vraag me trouwens nog steeds af waarom ik dat dacht en waarom het iets uit zou maken, maar das weer een andere vraag |:( .Het werkt zowel zonder als met. Totdat iemand reageerd, dan werkt het weer niet, dus of het veel uitmaakt, zal wel niet.

Het spijt me voor de lange vraag en vele codes, maar ik vind dit ZO vaag en snap er ook niets van. Heb alles nu al kweetniet hoeveel keren nagelopen, maar kom er niet uit.
Iemand suggesties? .... zou erg welkom zijn 8-)

[volgens mij is het zo een stuk duidelijker, ACM]

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Als je es je code aanpastte zodat het allemaal netjes onder elkaar staat, ipv het scherm 3 keer zo breed maakt :?

Verwijderd

Topicstarter
Ik heb een donkerbruin vermoeden dat het probleem hier ergens is:
code:
1
2
3
$replys = get_total_posts($k['topic_id'], $db, "topic");    
        $replys--;
        $topic_id = stripslashes($k['topic_id']);

Maaar dan ben ik gek ;) , want ik zie het niet |:(

Verwijderd

Topicstarter
Excuseer me mijn lompheid :o
code:
1
2
3
4
5
6
7
8
9
10
$sql = "SELECT t.topic_title, t.topic_id, f.forum_id,
p.poster_id, p.post_time, p.post_time, t.topic_time, 
u.user_sig, u.username, p.post_id, pt.post_text, 
pt.post_id, t.topic_poster FROM topics t, forums f, posts 
p, users u, posts_text pt WHERE p.poster_id = 
t.topic_poster AND p.post_time = t.topic_time AND 
pt.post_id = p.post_id AND t.topic_id = p.topic_id AND 
f.forum_id = t.forum_id AND p.poster_id = u.user_id AND 
t.forum_id = $ForumNummer ORDER BY topic_time DESC LIMIT 
$PostNummer";

Vervolgens wat gedoe om het topic een beetje vorm te geven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$h = stripslashes($k['topic_title']);
$depostergozar = stripslashes($k['username']);
$postedtijd = stripslashes($k['post_time']);
$message = stripslashes($k['post_text']);
$replys = get_total_posts($k['topic_id'], $db, "topic");

$replys--;
$topic_id = stripslashes($k['topic_id']);
$posticon = "[img]\"$url_images/posticon.gif\"[/img]";
echo "<table cellpadding=2 cellspacing=1 align='center' width='100%' bgcolor=\"#EEDBCC\">
<tr>
<td background=\"images/achtergrontabel1.jpg\" align=left width='70%'>
<font size=\"0\">
&nbsp;$posticon&nbsp;$h
</td>
<td width='30%' background=\"images/achtergrontabel1.jpg\" valign=top align=center>
<font size=\"-2\">
<font size=\"-2\" face=\"Sans-serif\">Op</font>
$postedtijd</font>
</td>
</tr>\n";
echo "<tr><td colspan=2 bgcolor=\"#EEDBCC\">
$message<BR>
<font size=\"-2\">
<br></font>
<font size=\"-2\" face=\"Sans-serif\">
Geplaatst door <a href=\"$url_phpbb/sendpmsg.$phpEx?tousername=$k[username]\">
$depostergozar</a></font>
</td></tr></table>
<br>\n";

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op dinsdag 16 oktober 2001 15:18 schreef breukie het volgende:
Ik heb een donkerbruin vermoeden dat het probleem hier ergens is:
code:
1
2
3
$replys = get_total_posts($k['topic_id'], $db, "topic");    
        $replys--;
        $topic_id = stripslashes($k['topic_id']);

Maaar dan ben ik gek ;) , want ik zie het niet |:(
Ik kan die code die hierboven staat echt niet overzien hoor...

als je je php-code nou es netjes met goede regel afbrekingen onder elkaar binnen de [php]-tags zet.
(dus even je post editen)

[edit]

Het is al beter, maar nog steeds on overzichtelijk :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 16 oktober 2001 15:25 schreef ACM het volgende:

[edit]

Het is al beter, maar nog steeds on overzichtelijk :)
u riep mij?

[topic=152278/1/25]

en dan mijn stukje

<ot>
ik zal um eens in mijn sig zetten

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
zie volgend bericht...drukte per ongeluk 2 keer op verstuur ;)

Verwijderd

Topicstarter
Ik hoop dat het nu beter is, anders hoor ik het wel ;)

P&W gelezen :) , mag deze vraag blijven, ja tóóóch *D

BTW: zo slecht is die html toch niet ;(
Ok het kan handiger en minder slordig ;) maar daar zit het probleem niet, neem ik aan :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Nou lang genoeg gekletst over hoe je code er uit ziet :)

Zo moet het wel werken.

Loop zowiezo die query na, je krijgt allerlei dubbele dingen en doet allerlei "circulaire" (a=b, b=c, a=c waarbij die tweede dus niet echt nodig is) gelijkheden erin.

Verwijderd

Topicstarter
Ik begrijp hieruit dat je dit seel van de Select query bedoeld?

WHERE p.poster_id =
t.topic_poster AND p.post_time = t.topic_time AND
pt.post_id = p.post_id AND t.topic_id = p.topic_id AND
f.forum_id = t.forum_id AND p.poster_id = u.user_id AND
t.forum_id = $ForumNummer ORDER BY topic_time DESC LIMIT
$PostNummer";

Het enige dat ik daar kan bedenken is misschien dat
pt.post_id = p.post_id AND t.topic_id = p.topic_id veranderd moet worden naar pt.post_id = t.topic_id ?

Niet dus... :) dan werkt het helemaal niet meer :'(

Is het dan misschien de stripslashes? Maar dat is toch gewoon goed?
Ik heb nu griep dus het kan aan mij liggen hoor dat mijn hersentjes niets willen begrijpen |:(

Desalniettemin (hehehe mooi woord) toch Vaag :?

Verwijderd

Topicstarter
ff de select opnieuw maar dan in woorden, zeg het me maar waar ik het bos in ga ;)

Ik secteer de topic-titel, -id het forum-id het id van de poster, poster-tijd (heeee dubbel: zou dat het zijn?) de tijd van de topic, sig van de gebruiker incl username, id van de post zelf met de tekst en de tekst-id met de topicposter.

dit haal ik uit:
de topics, forum, posts, users en post-text tabelletjes

Waar de:
poster-id = topic-poster (huh waarom heb ik dat ook al weer gedaan? zou dat niet eigenlijk topicposter-id moeten zijn?)
post tijd = topic tijd
heeee --->pt.post_id = p.post_id ---> volgens mij is dit de overbodige, de hele pt eruit halen misschien?
de id van de topic = id van de post (hmm dit is misschien ook dubbel, gloeiende...)
id forum = id topic
poster id = user id (hmm misschien ook wel overbodig, nogmaals gloeiende...)
forum id van de topic = $Forumnummer(in dit geval 9 hehehe, ok nutteloze info)
orderen by topic tijd en desc
Limiet = $postnummer (idg 10)


HMmmm....ok kan ik nu beter gaan uitzieken of stiekem toch weer gaan klussen :+ (tis namelijk zo leuk ;) )

Verwijderd

Topicstarter
Nah.. volgens mij ben ik nou echt domme dingen aan het zeggen...advies aan mezelf...morgen opnieuw maken... nu tukken en uitzieken! |:(

ACM...Thanks voor de snelle reply en de hulp...jammer dat ik nou net ff niet meewerk ;)

Als het me morgen nog steeds niet lukt dan horen jullie het wel weer :P
Pagina: 1