login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Id's verwerken (Opgelost)

Offline prienstra - 26/11/2009 10:39
Avatar van prienstraMySQL interesse Ik wil onderstaand systeem nog een beetje uitbreiden. Als je kijkt op www.naareenhotel.nl/test1.php en dan op create cookie 1 klikt, wordt er een cookie gezet. Dan komen er daarna enkel id's onder elkaar uit de cookie.
Nu is het de bedoeling, dat achter id 41 de id's komen met uitzondering van het id zelf (dus id's 75 en 22)
achter 75 komen dan id 41 en 22, en achter id 22 komen 41 en 75.

De id's zijn steeds wisselend (in dit voorbeeld zijn ze vast ingesteld).

Het komt erop neer dat alle $itemsUnique weergegeven worden met uitzondering van $item. Hoe kan ik zoiets beginnen?

  1. <?php
  2. $showItems = 50;
  3. $getLastViewed = $_COOKIE["bekeken"];
  4. if(!empty($getLastViewed)) {
  5.  
  6. $items = explode(",", $getLastViewed);
  7. $itemsUnique = array_unique($items);
  8.  
  9. $amountItems = count($itemsUnique);
  10.  
  11. if($amountItems > $showItems) {
  12.  
  13. $firstItem = $amountItems - $showItems;
  14. $lastItem = $amountItems;
  15.  
  16. $itemsSliced = array_slice($itemsUnique, $firstItem, $lastItem);
  17.  
  18. } else {
  19.  
  20. $itemsSliced = $itemsUnique;
  21.  
  22. }
  23.  
  24. foreach($itemsSliced as $item) {
  25. echo "$item overige nummers:<br />";
  26. }
  27. }
  28. ?>

5 antwoorden

Gesponsorde links
Offline Wim - 26/11/2009 16:36
Avatar van Wim Crew algemeen Binnen je foreach-loop kan je nog een foreach loop zetten. Deze foreach loop kan je dan laten controleren of de huidige waarde gelijk is aan $item. Is dat het geval? Dan geef je de waarde niet weer, anders wel.
Offline prienstra - 26/11/2009 17:11
Avatar van prienstra MySQL interesse Oke bedankt! Het is nu half gelukt! Maar nu heb ik achter de laatste nog een komma. Hoe kan ik krijgen dat ik enkel tussen de getallen een komma heb.
  1. <?php
  2. $showItems = 100;
  3.  
  4. $getLastViewed = $_COOKIE["bekeken"];
  5.  
  6. if(!empty($getLastViewed)) {
  7.  
  8. $items = explode(",", $getLastViewed);
  9. $itemsUnique = array_unique($items);
  10.  
  11. $amountItems = count($itemsUnique);
  12.  
  13. if($amountItems > $showItems) {
  14.  
  15. $firstItem = $amountItems - $showItems;
  16. $lastItem = $amountItems;
  17.  
  18. $itemsSliced = array_slice($itemsUnique, $firstItem, $lastItem);
  19.  
  20. } else {
  21.  
  22. $itemsSliced = $itemsUnique;
  23.  
  24. }
  25.  
  26. foreach($itemsSliced as $item) {
  27.  
  28. echo "$item overige nummers:";
  29.  
  30. foreach($itemsSliced as $item1) {
  31. if($item1 != $item) {
  32.  
  33. $output = $item1;
  34. echo "$output,";
  35. }
  36. }
  37. echo "<br/>";
  38. }
  39.  
  40. }
  41.  
  42. ?>
Offline Wim - 26/11/2009 17:43
Avatar van Wim Crew algemeen Je kan alle waardes (tijdelijk) in een array bewaren en hier een , in "imploderen": PHP.net: implode
Offline prienstra - 26/11/2009 18:55 (laatste wijziging 26/11/2009 22:15)
Avatar van prienstra MySQL interesse Hoe kan ik de waardes in een array krijgen, want het lukt me helaas niet. Iemand een optie?
Implode lukt wel (implode(",",$output);), alleen die $item1 in een array krijgen weet ik niet.
Offline Wim - 26/11/2009 23:14
Avatar van Wim Crew algemeen
  1. foreach($itemsSliced as $item) {
  2.  
  3. echo $item . " overige nummers:";
  4. $overigeNummers = array(); // (terug) een lege array
  5. foreach($itemsSliced as $item1) {
  6. if($item1 != $item) {
  7. $overigeNummers[] = $item1; // hier voegen we het item toe aan de array
  8. }
  9. }
  10. echo implode(', ', $overigeNummers) . "<br/>";
  11. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.191s