login  Naam:   Wachtwoord: 
Registreer je!
 Forum

hoeveelste rij?

Offline webstab - 15/10/2004 21:45 (laatste wijziging 15/10/2004 21:53)
Avatar van webstabPHP ver gevorderde ik heb er op zitten zoeken maar ik vind het maar nergens,daarom vraag ik het hier.
Mijn database ziet er bv zo uit:
id | onderwerp | bericht
------------------------------------
1. | eerste nieuwsbericht | blablabla
3. | twde nieuwsbericht | jeferdejer
4. | drde nieuwsbericht | blakerbalk

id 2 ontbreekt om dat ik het heb verwijderd.
Nu wil ik bv enkel het 2de nieuwsbericht opvragen.
en daarvoor heb ik deze code.
  1. $sql = "SELECT * FROM nieuws WHERE id='3'";
  2. $query = mysql_query($sql);

en deze doet het perfect. Maar nu wil ik dat hij er nog een "2." voorzet. Dus eigelijk moet hij de database ordenen van klein id nar groot en zeggel op de hoeveelste plaats id 3 staat.
Is dit mogelijk?

12 antwoorden

Gesponsorde links
Offline Thomas - 15/10/2004 22:17
Avatar van Thomas Moderator tellertje mee laten lopen ?

  1. <?php
  2. $query = "SELECT * FROM nieuws ORDER BY id ASC";
  3. $res = mysql_query($query);
  4. $positie = 1;
  5. while($row = mysql_fetch_whatever($res)) {
  6. // doe zooi met $row
  7. // ...
  8. echo "item nr.: ".$positie;
  9. $positie++;
  10. }
  11. ?>
Offline webstab - 15/10/2004 22:22
Avatar van webstab PHP ver gevorderde dat bedoel ik niet.
gaat hij nu niet ieder bericht weergeven.
hij zou enkel bericht met id nr3 moeten weergeven
Offline Thomas - 15/10/2004 22:26
Avatar van Thomas Moderator Ow, je wil enkel het tweede bericht weergeven ?

SELECT *
FROM nieuws
ORDER BY id ASC
LIMIT 1,1

De eerste '1' geeft de startpositie ('offset') aan, de tweede '1' het aantal op te halen rijen. Zo selecteer je enkel het tweede bericht.
Offline webstab - 15/10/2004 22:30
Avatar van webstab PHP ver gevorderde maar dan geeft hij altijd 1 als nummer van het bericht terwijl het twee moet zijn
Offline Thomas - 15/10/2004 23:07
Avatar van Thomas Moderator Dat lijkt me sterk...
Offline webstab - 15/10/2004 23:11 (laatste wijziging 15/10/2004 23:12)
Avatar van webstab PHP ver gevorderde maar dat moet ik niet hebben.
ga gewoon naar http://verkom.freeserverhost.net/ en bekijk een nieuwsbericht. Je klikt bv op "13 reacties" en dan vergelijk je het id dan met hetgene op de startpagina. Maar nu wil ik dat die hetzelfde zijn
Offline Thomas - 15/10/2004 23:15
Avatar van Thomas Moderator Bij de titel ?

Dat ding staat nota bene in je database en in je URL, haal dat ding uit een van de twee en zet hem voor het topic ?

Ik snap het probleem echt niet.
Offline webstab - 16/10/2004 09:41
Avatar van webstab PHP ver gevorderde wacht, misschien een slecht voorbeeld.
kijk nu is trg (http://verkom.freeserverhost.net/) en bekijk dan is het nieuwsbericht "UPDATES".
Op de startpagina wordt het weergeven als id=1 (zoals het moet) maar als je dat bericht uitvoerig met reacties gaat bekijken dan staat er id=3,maar er moet 1 staan
In de db/url staat het als id=2 (omdat ik id=1 uit de db heb verwijderd) .
Ik weet dat is mss raar uitgelegd is, maar ik weet niet hoe ik het anders moet doen
Offline Thomas - 16/10/2004 10:51
Avatar van Thomas Moderator Waarom moet daar 1 staan ?
Omdat dat het enige bericht is op die pagina ?
Je kan er toch gewoon een 1 voorzetten ? Of zit dat bericht-getal in de titel van je bericht verwerkt ?
Offline webstab - 16/10/2004 11:23 (laatste wijziging 16/10/2004 11:58)
Avatar van webstab PHP ver gevorderde nee,maar gewoon het zoveelste bericht.
maar anders los ik het wel op een andere manier op
------------------------------------------------------------
kem een oplossing gevonden(waarschijnlijk niet zo goed,maar hij werkt)
  1. <?php
  2. $sql = "SELECT * FROM nieuws WHERE id='".$nieuwsid."'";
  3. $query = mysql_query($sql);
  4. while ($obj = mysql_fetch_object($query)) {
  5. $bericht = htmlspecialchars($obj->bericht);
  6. $bericht = nl2br($bericht);
  7. $bericht = wordwrap($bericht, 60, "\n", 1 );
  8. $bericht=ubb_smiley($bericht);
  9. $aantalnieuws = mysql_num_rows(mysql_query("SELECT * FROM nieuws"));
  10. $aantalnnieuws = mysql_num_rows(mysql_query("SELECT * FROM nieuws WHERE id >".$obj->id.""));
  11. $aantaldnieuws = $aantalnieuws - $aantalnnieuws;
  12. echo"$aantaldnieuws";
  13. ?>
Offline Scoits - 16/10/2004 12:13 (laatste wijziging 16/10/2004 12:15)
Avatar van Scoits HTML interesse Ik snap niet echt wat je bedoelt.. maar hier bv een klein voorbeeldje..


  1. //index.php waar alle nieuwsberichten staan..
  2. <?php
  3.  
  4. //De News-SQL uitvoeren
  5. $news_SQL="SELECT * FROM nieuws ORDER BY news_datetime DESC";
  6. $news_result=mysql_query($news_SQL);
  7.  
  8. while($news=mysql_fetch_array($news_result)){
  9. $unixtime = strtotime($news['news_datetime']);
  10.  
  11. //Dit plaats je dan waar de reacties moeten
  12.  
  13. <a href=news.php?news_ID=" . $news['news_ID'] . ">[Reacties: <?php echo $reacties['aantal'] ?></a>
  14. }
  15. ?>



  1. //News.php die via index.php(met al het nieuws) een id krijgt voor de pagina met de reacties etc
  2. <?php
  3. $news_SQL="SELECT * FROM nieuws WHERE news_ID=" . $news_ID;
  4. $news_result=mysql_query($news_SQL);
  5. $news=mysql_fetch_array($news_result);
  6.  
  7. //Unix tijdstempel
  8. $unixtime = strtotime($news['news_datetime']);
  9. ?>


Natuurlijk is dit niet helemaal uitgewerkt.. maar het is zomaar een voorbeeldje.. al begrijp ik niet wat je probleem is, maja..
Offline webstab - 16/10/2004 13:25
Avatar van webstab PHP ver gevorderde maar mijn probleem is opgelost:!: :!:
zie vorig bericht van mij,daar staat de oplossing in
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.253s