login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Waarde maar 1 keer

Offline Frederic - 14/04/2005 21:33
Avatar van FredericPHP ver gevorderde
  1. <? if (!$rb_sql_r = mysql_query("SELECT `*` FROM `forum_reactie` ORDER BY `id` DESC LIMIT 5"))
  2. {
  3. echo "Forummodule offline<br />wegens probleem met<br />databaseserver";
  4. }
  5. while ($rb_rij_r = mysql_fetch_assoc($rb_sql_r)){
  6. $rb_id_r = ($rb_rij_r["topicid"]);
  7. $rb_datum_r = ($rb_rij_r["datum"]);
  8. $rb_tijd_r = ($rb_rij_r["tijd"]);
  9. $rb_sql_f = mysql_query("SELECT `*` FROM `forum` WHERE id='".$rb_id_r."'") or die(mysql_error());
  10. $rb_rij_f = mysql_fetch_assoc($rb_sql_f);
  11. $rb_titel_f = ($rb_rij_f["titel"]);
  12. $rb_datum_f = ($rb_rij_f["datum"]);
  13. $rb_tijd_f = ($rb_rij_f["tijd"]);
  14. //Datum onderzoeken
  15. $rb_vandaag = date('d-m');
  16. $rb_post_datum = substr($rb_datum_r, 0, 5);
  17. if($rb_post_datum == $rb_vandaag)
  18. {
  19. $rb_datum_r = substr($rb_tijd_r,0,5);
  20. $rb_wanneer_r = "<i>".str_replace(":", "u", $rb_datum_r)."</i>";
  21. }
  22. else
  23. {
  24. $rb_wanneer_r = $rb_post_datum;
  25. }
  26. $rb_wanneer_r = "[".$rb_wanneer_r."] ";
  27. echo $rb_wanneer_r.$rb_titel_f;
  28. }
  29. ?>

Dit is mijn code om iets uit de database te halen, maar hoe kan ik ervoor zorgen dat ieder ID (topicid) maar 1 keer voorkomt?

8 antwoorden

Gesponsorde links
Offline nemesiskoen - 14/04/2005 22:05 (laatste wijziging 14/04/2005 22:06)
Avatar van nemesiskoen Gouden medaille

PHP expert
  1. <?php
  2. while(/*blahblahblah*/) {
  3. if( in_array( $rb_rij_r['topicid'], $al_geweest ) ) {
  4. echo "al geweest";
  5. }
  6. else {
  7. $al_geweest[] = $rb_rij_r['topicid'];
  8. /*
  9.   rest van uw code
  10.   */
  11. }
  12. }
  13. ?>
Offline Frederic - 14/04/2005 22:17
Avatar van Frederic PHP ver gevorderde
  1. while ($rb_rij_r = mysql_fetch_assoc($rb_sql_r)){
  2.  
  3. if( in_array( $rb_rij_r['topicid'], $al_geweest ) ) {
  4. echo "al geweest";
  5. }
  6. else {
  7. $al_geweest[] = $rb_rij_r['topicid'];
  8. $rb_id_r = ($rb_rij_r["topicid"]);
  9. $rb_datum_r = ($rb_rij_r["datum"]);
  10. $rb_tijd_r = ($rb_rij_r["tijd"]);
  11. $rb_sql_f = mysql_query("SELECT `*` FROM `forum` WHERE id='".$rb_id_r."'") or die(mysql_error());

heb ik nu maar dan krijg ik
Citaat:
Notice: Undefined variable: al_geweest

Warning: in_array(): Wrong datatype for second argument
Offline nemesiskoen - 14/04/2005 22:22 (laatste wijziging 14/04/2005 22:23)
Avatar van nemesiskoen Gouden medaille

PHP expert
srr..

kzie het al:

  1. <?php
  2. $al_geweest[] = md5( rand() );
  3. while(/*blahblahblah*/) {
  4. if( in_array( $rb_rij_r['topicid'], $al_geweest ) ) {
  5. echo "al geweest";
  6. }
  7. else {
  8. $al_geweest[] = $rb_rij_r['topicid'];
  9. /*
  10.   rest van uw code
  11.   */
  12. }
  13. }
  14. ?>
Offline Frederic - 14/04/2005 22:26 (laatste wijziging 14/04/2005 22:27)
Avatar van Frederic PHP ver gevorderde Hmm, dan krijg ik
Citaat:
Titela
Titelb
al geweestal geweestal geweest

Terwijl ik wil dat hij dan de volgende neemt... Moet ik dan in het SQL statement die limit 5 wegdoen en die hier ergens toepassen?
Offline nemesiskoen - 14/04/2005 22:27
Avatar van nemesiskoen Gouden medaille

PHP expert
ja... je moet ook moeite doen he, niet klakkeloos kopieren...
kijk naar de code, en je ziet daar staan echo "al geweest"... verwijder dat, ik wilde gewoon aantonen HOE het moet, niet de hele code in je polletje duwen... dus als je wilt dat alles een keer voorkomt:

  1. <?php
  2. $al_geweest[] = md5( rand() );
  3. while(/*blahblahblah*/) {
  4. if( !in_array( $rb_rij_r['topicid'], $al_geweest ) ) {
  5. $al_geweest[] = $rb_rij_r['topicid'];
  6. /*
  7.   rest van uw code
  8.   */
  9. }
  10. }
  11. ?>
Offline Frederic - 14/04/2005 22:29
Avatar van Frederic PHP ver gevorderde jaaah weet ik wel dat die daar voor zorgde, maar zou je me even op weg kunnen helpen hoe ik hiervan nu kan maken dat er maar 5 dingen doormogen komen?
Offline nemesiskoen - 15/04/2005 07:43
Avatar van nemesiskoen Gouden medaille

PHP expert
  1. <?php
  2. $al_geweest[] = md5( rand() );
  3. $i = 0;
  4. while(/*blahblahblah*/) {
  5. if( !in_array( $rb_rij_r['topicid'], $al_geweest ) || $i < 5) {
  6. $al_geweest[] = $rb_rij_r['topicid'];
  7. /*
  8.   rest van uw code
  9.   */
  10. }
  11. $i++;
  12. }
  13. ?>
Offline xSc - 15/04/2005 07:47
Avatar van xSc Onbekend Fréderic, je hebt een while en in de while kopieer je waarden naar een var. Houd er wel rekening mee dat die var elke keer overschreven wordt!

Verder:
- Nummers buiten quotes! Ook in queries.
- Zorg voor goede foutafhandeling. Gebruik ipv or die() een if/else constructie, zoals je dat doet in regel 1.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.206s