login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[php/sql] steeds 1 nummer omhoog (Opgelost)

Offline shibble - 22/06/2007 02:21 (laatste wijziging 22/06/2007 02:25)
Avatar van shibbleMySQL interesse Hallo,

ik vraag me af hoe mensen dat doen,
vaak zie je op sites bij newsposts dan bij comments
#1
#2
#3
voor elke comment die gepost word.
oftewel degene die als eerste post krijgt
#1
de tweede
#2

en dan bij een nieuwe newspost en daar bij comments
begint ie dan weer bij #1

nu vraag ik me af hoe ze zoiets maken, aangezien je maar 1 keer auto_increment in een table kan gebruiken. iemand die me dat kan vertellen?

12 antwoorden

Gesponsorde links
Offline vinTage - 22/06/2007 02:26 (laatste wijziging 22/06/2007 19:03)
Avatar van vinTage Nieuw lid Volgens mij, bij het uitlezen :
Voor de while , en bij elke reactie op dat artikel (in de while) ..

  1. echo "#".i ;
  2. echo //de rest van de reacties




edit @ mods, ja zet maar in code tags 

Citaat:
Siliecom14's edit:
omdat jij het zo lief vroeg 
Offline shibble - 22/06/2007 02:34 (laatste wijziging 22/06/2007 02:35)
Avatar van shibble MySQL interesse Hmm,

ok is ff aritkel over die lussen dingen zoeken:p
Offline Dark_Paul - 22/06/2007 08:43
Avatar van Dark_Paul PHP ver gevorderde Gooi dat gewoon in de while-lus waarmee je de reacties uitleest.
Offline shibble - 22/06/2007 16:01
Avatar van shibble MySQL interesse is daar ergens een artikel over?
Offline Ibrahim - 22/06/2007 19:08
Avatar van Ibrahim PHP expert Wat artikel

Allereerst initialiseer je de i variabele:

  1. <?php
  2. $i = 1;


Daarna moet je je gegevens ophalen. Daarna voer je de while uit:

  1. <?php
  2.  
  3. // ophalen query
  4. while( .... )
  5. {
  6. //weergeven data, je kunt dan dit doen voor het weergeven van de teller:
  7. echo 'Comment #' . $i;
  8. $i++;
  9. }


zo 
Offline shibble - 22/06/2007 21:41 (laatste wijziging 22/06/2007 23:20)
Avatar van shibble MySQL interesse Ik ben nu zover gekomen:

http://www.shib...p;newsid=1

Zoals je ziet bij de comments zie je dus

Comment #6 overal achter staan zie hier de code die ik gebruik:

  1. <?php
  2. $comments = $db->getquery('SELECT * FROM shibble_comments WHERE newsid = "'.$_GET['newsid'].'"');
  3. while ($cSelect = mysql_fetch_array($comments))
  4. {
  5. $commentid = 1;
  6. $commentid2 = $db->getRows($db->getquery('SELECT * FROM shibble_comments WHERE newsid = "'.$_GET['newsid'].'"'));
  7. while ($commentid <= $commentid2)
  8. {
  9. $commentid++;
  10. }
  11.  
  12. $tpl->newBlock('comments');
  13. $tpl->assign(array(
  14. 'cid' => $cSelect['cid'],
  15. 'commentid' => $commentid,
  16. 'date' => $cSelect['date'],
  17. 'time' => $cSelect['time'],
  18. 'comment' => $func->ubb($cSelect['comment'])
  19. ));
  20.  
  21. $poster = $db->getquery('SELECT pid, username, country FROM shibble_profile WHERE pid = "'.$cSelect['poster'].'"');
  22. while ($pSelect = mysql_fetch_array($poster))
  23. {
  24. $tpl->newBlock('cposter');
  25. $tpl->assign(array(
  26. 'pid' => $pSelect['pid'],
  27. 'poster' => $pSelect['username'],
  28. 'flag' => $pSelect['country']
  29. ));
  30. }
  31. }
  32. $tpl->gotoBlock('_ROOT');
  33. ?>


Ik gebruik TemplatePower
Offline Ibrahim - 23/06/2007 00:04
Avatar van Ibrahim PHP expert waar ben jij mee bezig 

zet $i = 1; bovenaan je comments while
zet $i++; onderaan je comments while

zet waar je de cijfer wilt hebben echo $i; neer

klaar
Offline shibble - 23/06/2007 00:34 (laatste wijziging 23/06/2007 00:42)
Avatar van shibble MySQL interesse @siliecom14

Nog een keer misschien las je het niet:

"Ik gebruik Templatepower"

oftewel geen echo shit ;).
maar:
'commentid' => $commentid,
en inplaats $i gebruik ik $commentid

maar ff uit testen wat jij zij 
En is het ook mogelyk om er een function van te maken?
omdat ik meerdere commentsystems heb.
Offline Stefan14 - 23/06/2007 01:04
Avatar van Stefan14 PHP gevorderde Waarom zou je er een functie van willen maken? Dit is 3 of 4 regeltjes code, dat moet je niet een functie zetten.
Offline shibble - 23/06/2007 01:08 (laatste wijziging 23/06/2007 02:45)
Avatar van shibble MySQL interesse Nja dat is waar maar het is opzig tog handig of is het niet slim?
want ik heb de mysql_query's enzo ook in functie's gezet

@siliecom14

Ik heb gedaan wat jij zij maar dan kloppen de Comment #1 etc etc wel,
maar dan is alle inhoud van de comments zelf de eerste comment die gepost is.

Deze gebruik ik nu:
http://nopaste.php-q.net/304051
Offline Ultimatum - 23/06/2007 02:40
Avatar van Ultimatum PHP expert Zou moeten werken:

  1. <?php
  2. $i = 1;
  3. $comments = $db->getquery('SELECT * FROM shibble_comments WHERE newsid = "'.$_GET['newsid'].'"');
  4. while ($cSelect = mysql_fetch_array($comments))
  5. {
  6.  
  7. $tpl->newBlock('comments');
  8. $tpl->assign(array(
  9. 'cid' => $cSelect['cid'],
  10. 'commentid' => $i++,
  11. 'date' => $cSelect['date'],
  12. 'time' => $cSelect['time'],
  13. 'comment' => $func->ubb($cSelect['comment'])
  14. ));
  15.  
  16. $poster = $db->getquery('SELECT pid, username, country FROM shibble_profile WHERE pid = "'.$cSelect['poster'].'"');
  17. while ($pSelect = mysql_fetch_array($poster))
  18. {
  19. $tpl->newBlock('cposter');
  20. $tpl->assign(array(
  21. 'pid' => $pSelect['pid'],
  22. 'poster' => $pSelect['username'],
  23. 'flag' => $pSelect['country']
  24. ));
  25. }
  26. }
  27. $tpl->gotoBlock('_ROOT');
  28. ?>


En volg gewoon wat siliecom14 zegt want zo moeilijk is het niet
Offline shibble - 23/06/2007 02:46 (laatste wijziging 23/06/2007 02:49)
Avatar van shibble MySQL interesse Ik vatte hem anders niet maar is ff jouwe testen .

EDIT
Great opgelost (A)
Thanx ultimatum ook de rest voor het helpen uiteraard:D
liep dus eerst dik te kloten met db getrows etc etc terwyl het ook gewoon zonder dat kon thanx!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.401s