login  Naam:   Wachtwoord: 
Registreer je!
 Forum

(onmogelijke?) loop...

Offline Stijn - 07/05/2005 14:03
Avatar van StijnPHP expert hallo

Ik heb het volgende probleem:
  1. <?php
  2. $Query = mysql_fetch_assoc(mysql_query("SELECT * FROM members WHERE id='".$_COOKIE['ref_id']."'"));
  3. ?>


Dan moet hij kijken of de waarde in de referrer-kolom groter of gelijk is aan 2:

  1. <?php
  2. if($Query['qualified'] >= 2)
  3. {
  4. $ref = $Query['id'];
  5. }else{//dus niet gelijk of groter dan 2
  6. /*onze loop*/
  7.  
  8. }
  9. ?>


Nu heb ik de volgende code geschreven voor de loop:
  1. <?php
  2. if($Query->qualified >= 2)
  3. {
  4. $ref = $Query->id;
  5. }else{
  6. $subQuery = mysql_fetch_object(mysql_query("SELECT * FROM members WHERE id='".$Query->orgref."'"));
  7. if($subQuery->qualified >= 2)
  8. {
  9. $ref = $subQuery->id;
  10. }else{
  11. $subQuery_02 = mysql_fetch_object(mysql_query("SELECT * FROM members WHERE id='".$subQuery->orgref."'"));
  12. if($subQuery_02->qualified >= 2)
  13. {
  14. $ref = $subQuery_02->id;
  15. }else{
  16. $subQuery_03 = mysql_fetch_object(mysql_query("SELECT * FROM members WHERE id='".$subQuery_02->orgref."'"));
  17. if($subQuery_03->qualified >= 2)
  18. {
  19. $ref = $subQuery_03->id;
  20. }else{
  21. $subQuery_04 = mysql_fetch_object(mysql_query("SELECT * FROM members WHERE id='".$subQuery_03->orgref."'"));
  22. if($subQuery_04->qualified >= 2)
  23. {
  24. $ref = $subQuery_04->id;
  25. }else{
  26. $subQuery_05 = mysql_fetch_object(mysql_query("SELECT * FROM members WHERE id='".$subQuery_04->orgref."'"));
  27. $ref = $subQuery_05->id;
  28. }
  29. }
  30. }
  31. }
  32. }
  33. ?>


De code geeft geen errors, maar werkt volgens mij niet 100% zeker...

maar zou ik die heleboel lussen niet kunnen veranderen in een andere lus....

Ik denk dat dit onmogelijk is, maar bijna nix is onmogelijk vandaag de dag Alleen weet ik niet hoe te beginnen...

groeten stijn 

13 antwoorden

Gesponsorde links
Offline Legolas - 07/05/2005 14:09
Avatar van Legolas Onbekend K snap het niet:
na de 1e van de loop, blijf je dus volgens mij hetzelfde checken:
Citaat:
[..code..]

wat mag dit voor zin hebben???
:o
Offline nemesiskoen - 07/05/2005 14:11
Avatar van nemesiskoen Gouden medaille

PHP expert
Citaat:
hallo

Ik heb het volgende probleem:

[..code..]



ik denk dat je na die dubbelpunt nog een zin of 2 moet zetten om duidelijk te maken WAT het probleem is, want ik zie een querie, een keuzestructuur en nog wa keuzestructuren... en jij hebt het over herhalingsstructuren (loops).. di mis ik... maar WAT is nu je vraag? wat doet hij, wat moet hij doen? wat doet hij niet?
Offline Stijn - 07/05/2005 14:22
Avatar van Stijn PHP expert de loop wil zeggen dat hij moet blijven zoeken tot dat hij een veld qualified >= 2 is

@nemisiskoen:
het is eigenlijk geen probleem, maar een vraag en dit luid:kan ik ipv al die lussen één lus maken die gewoon zoekt tot dat hij een rij qualified >= 2, maar het mogen niet zomaar alle velden zijn... je ziet het in mij derde code
Offline Legolas - 07/05/2005 14:22
Avatar van Legolas Onbekend ja idd:
Citaat:
De code geeft geen errors, maar werkt volgens mij niet 100% zeker...

Nou zeg dan WHAT er niet werkt hè.
want volgens mij heb je gewoon verschrikkelijk veel codes achter elkaar staan (in die zgn. loop) die je in 1 code kunt zetten. dat subquery geval.:p
Offline Stijn - 07/05/2005 14:26
Avatar van Stijn PHP expert Hij moet zoeken, het is zeer ingewikkelt, dus bij else begint hij opnieuw te zoeken naar een ander member die qualified >= 2 heeft...
maar soms doet hij het niet en soms niet... kan het soms zijn dat hij gewoon de lussen allemaal uitvoert??
Offline Legolas - 07/05/2005 14:30
Avatar van Legolas Onbekend als if steeds false geeft wel ja natuurlijk
maar als je steeds naar orgref zoekt, waarom doe je dan niet 1x if?
Offline ikkedikke - 07/05/2005 14:53
Avatar van ikkedikke PHP expert t klinkt heel zinloos naar mijn mening maar bedoel je zoiets?
  1. <?php
  2. $bBool = TRUE;
  3. while($bBool)
  4. {
  5. $Query = mysql_fetch_assoc(mysql_query("SELECT * FROM members WHERE id='".$iReferrer."'"));
  6. if($Query['qualified'] >= 2)
  7. {
  8. $bBool = FALSE; //stoppen met de loop
  9. // wel qualified
  10. }
  11. else
  12. {
  13. $iReferrer = $Query['orgref'];
  14. }
  15. }
  16. ?>

Offline Legolas - 07/05/2005 14:54
Avatar van Legolas Onbekend @ikkedikke: das en oneindige loop. dan zegt ie toch:
Out of memory...
dat moeten we ook niet hebben:)
Offline ikkedikke - 07/05/2005 14:59
Avatar van ikkedikke PHP expert hij is niet oneindig zolang er bovenaan die piramide 1 is met een qualified op 2 of hoger
Offline Legolas - 07/05/2005 15:05
Avatar van Legolas Onbekend en als die er gewoon niet is... dan gaat ie toch verkeerd doen.
Offline Stijn - 07/05/2005 15:05
Avatar van Stijn PHP expert id 1 heeft idd qualified 2 standaard staan maar het is zo als ik me aanmeld op de site. Dan krijg ik een cookie met een ID erin van een member.
Als de nieuwe member zich aanmeld dan moeten we weten of zijn $_COOKIE['id']; een qualified status heeft van 2 of meer.
Zoniet, dan moet hij de rij selecteren waar id=$Query['orgref']; dan kijkt hij opnieuw of hij qualified 2 heeft of groter en zoniet dan moet hij weer een id selecteren waar id='$Query2['orgref']; en dat gaat dan zo verder, snappen jullie het nu al wat beter wat ik bedoel????

stijn 
Offline ikkedikke - 07/05/2005 15:11
Avatar van ikkedikke PHP expert moet die iedere keer weer een random id kiezen of ?
Offline Stijn - 08/05/2005 19:10
Avatar van Stijn PHP expert heb de code al beetje verwerkt, maar de verwerking gebeurt normaal hetzelfde als de code die ik eerst heb geschreven. Werkt deze nu correct???

  1. <?php
  2. //de referrer zoeken
  3. $Query_01 = mysql_fetch_assoc(mysql_query("SELECT * FROM members WHERE id='".$_COOKIE['ref_id']."'"));
  4. $Query_02 = mysql_fetch_assoc(mysql_query("SELECT * FROM members WHERE id='".$Query_01['orgref']."'"));
  5. $Query_03 = mysql_fetch_assoc(mysql_query("SELECT * FROM members WHERE id='".$Query_02['orgref']."'"));
  6. $Query_04 = mysql_fetch_assoc(mysql_query("SELECT * FROM members WHERE id='".$Query_03['orgref']."'"));
  7. $Query_05 = mysql_fetch_assoc(mysql_query("SELECT * FROM members WHERE id='".$Query_04['orgref']."'"));
  8. //array qualifieds
  9. $q = array("1" => $Query_01['qualified'], "2" => $Query_02['qualified'], "3" => $Query_03['qualified'], "4" => $Query_04['qualified'], "5" => $Query_05['qualified']);
  10. //array id's
  11. $id = array("1" => $Query_01['id'], "2" => $Query_02['id'], "3" => $Query_03['id'], "4" => $Query_04['id'], "5" => $Query_05['id']);
  12. //iedere key controleren
  13. if($q['1'] >= 2)
  14. {
  15. $ref = $id['1'];
  16. }else{
  17.  
  18. if($q['2'] >= 2)
  19. {
  20. $ref = $id['2'];
  21. }else{
  22.  
  23. if($q['3'] >= 2)
  24. {
  25. $ref = $id['3'];
  26. }else{
  27.  
  28. if($q['4'] >= 2)
  29. {
  30. $ref = $id['4'];
  31. }else{
  32. $ref = $id['5'];
  33. }
  34.  
  35. }
  36.  
  37. }
  38.  
  39. }
  40. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.225s