login  Naam:   Wachtwoord: 
Registreer je!
 Forum

problemen met een loopje

Offline JLT - 22/06/2006 16:20 (laatste wijziging 22/06/2006 16:30)
Avatar van JLTPHP interesse Ik zit nu alweer 2 dagen te worstelen met het volgende probleem.

Ik heb een script welke met een FOR loop door de dagen doorloopt en deze naar het scherm print. Maar nu wil ik nog 'even' een stukje code toevoegen.

iets van:
  1. $sql_kal = 'SELECT * FROM kalender WHERE gebruiker_ID ='.addslashes($_SESSION['gebruikerid']).'' ;
  2.  
  3. $resultaat_kal = mysql_query($sql_kal);
  4. $rij_kal = mysql_fetch_array($resultaat_kal);
  5.  
  6. if($rij_kal == $dagcompleet)
  7. {

Maar dit werkt niet???

8 antwoorden

Gesponsorde links
Offline marten - 22/06/2006 16:22 (laatste wijziging 22/06/2006 16:26)
Avatar van marten Beheerder Sessie var goed gevuld

Sessie id is een getal neem ik aan ±vraagteken±
Dan hoef je geen addslashes te doen maar intval()

$dagcompleet is dat ook een array ±vraagteken±
Want anders controleer je een array met een string
Offline JLT - 22/06/2006 16:29 (laatste wijziging 22/06/2006 16:30)
Avatar van JLT PHP interesse sessie_id is een getal, klopt. intval() ? Ik zal eens even kijken.
Het geheel zit in een for loop en de dagcompleet wordt ook telkens aangepast
  1. $jaar.'-'.$maand.'-'.($i -($edag - 1))
Offline Thomas - 22/06/2006 16:56 (laatste wijziging 22/06/2006 16:56)
Avatar van Thomas Moderator Ik zie nergens een for-loop? Je haalt maar 1 resultaat op.
$rij_kal is een array - deze zal nooit gelijk zijn aan een string / integer?
Heb je je sessie wel gestart?
Offline JLT - 22/06/2006 17:05 (laatste wijziging 23/06/2006 15:34)
Avatar van JLT PHP interesse Ben alweer een stap verder. Maar ben er nog niet helemaal. Ik gebruik twee variabelen om deze met elkaar te vergelijken als deze gelijk zijn dan print ie die dag rood.

  1. if($dagcompleet == $dagarray[($i -($edag - 1))])


Zowel $dagcompleet wordt elke keer weer bijgesteld door de FOR loop en de $dagarray wordt ook elke keer aangepast. Maar toch kleurt ie geen dag rood? Terwijl als ik dit er van maak doet ie het wel.

  1. if($dagcompleet == '2006-06-25')


Maar waarom dan niet als ik die string vervang door de variabele??

Hopelijk kan iemand me nog uit de brand halen? Zie hieronder de code ik gebruik (komt overigens van de kalender van deze site, nog bedankt )

Grtzz

  1. $sql_kal = 'SELECT * FROM kalender WHERE gebruiker_ID ='.intval($_SESSION['gebruikerid']).'' ;
  2. $resultaat_kal = mysql_query($sql_kal);
  3.  
  4. while($rij_kal = mysql_fetch_array($resultaat_kal)) {
  5. $rij_kalender[] = $rij_kal['datum'] ;
  6.  
  7. foreach($rij_kalender as $key => $waarde) {
  8.  
  9. $dagarray[] = $waarde ;
  10. }}
  11.  
  12. for($i = 0; $i < ( $edag + $ldag + $rest ); $i++) {
  13. $dagcompleet = $jaar.'-'.$maand.'-'.($i -($edag - 1)) ;
  14.  
  15. if($i < $edag || $i >= ( $edag + $ldag ))
  16. {
  17. echo '<td>&nbsp;</td>'."\n";
  18. }
  19. else
  20. {
  21. if(date('d', $vandaag) == ($i - ($edag - 1)) && date('m') == $maand && date('Y') == $jaar)
  22. {
  23.  
  24.  
  25. if($dagcompleet == $dagarray[($i -($edag - 1))])
  26.  
  27. {
  28. echo '<td bgcolor=red><font size=\'2\'><a href=scripts/appointments.php?dag='.($i -($edag - 1)).'&maand='.$maand.'&jaar='.$jaar.'>'. ($i -($edag - 1)) .'</a></font></td>'."\n";
  29. } else {
  30. echo '<td bgcolor="#CCCCCC"><font size=\'2\'><strong>'. ($i -($edag - 1)) .'</strong></font></td>'."\n";
  31. }}
  32. else
  33. {
  34.  
  35. if($dagcompleet == $dagarray[($i -($edag - 1))])
  36.  
  37. {
  38. echo '<td bgcolor=red><font size=\'2\'><a href=scripts/appointments.php?dag='.($i -($edag - 1)).'&maand='.$maand.'&jaar='.$jaar.'>'. ($i -($edag - 1)) .'</a></font></td>'."\n";
  39. } else {
  40. echo '<td><font size=\'2\'><a href=scripts/appointments.php?dag='.($i -($edag - 1)).'&maand='.$maand.'&jaar='.$jaar.'>'. ($i -($edag - 1)) .'</a></font></td>'."\n";
  41. }}
  42.  
  43. if(($i + 1) % 7 == 0)
  44. {
  45.  
  46.  
  47. echo '</tr><tr>'."\n";
  48. }
  49. }
  50. }
  51. echo '</tr></table>';
  52. }

Offline Thomas - 23/06/2006 16:24
Avatar van Thomas Moderator Waarschijnlijk bevat $dagarray geen waarden die overeen komen met $dagcompleet. Heb je $dagarray wel eens gedumpt?
Offline JLT - 23/06/2006 16:35
Avatar van JLT PHP interesse geechod bedoel je? Dat heb ik gedaan en die geeft gewoon waardes van bv. 2006-06-01 t/m 2006-06-30 afhankelijk van welke maand het is...

Dat is juist het vreemde??
Offline besje - 23/06/2006 16:42
Avatar van besje Nieuw lid het is een if statment en geen loop!
Offline JLT - 23/06/2006 18:12 (laatste wijziging 28/06/2006 13:01)
Avatar van JLT PHP interesse Ik heb begrepen dat ik nog een loopje moet maken. Dit heb ik ook geprobeerd maar waar ik hem ook neer zet elke keer wordt er iets dubbel geprint. Afhankelijk van de plek wordt of de hele kalender 2x geprint of de alle die datum 2x....

Je snapt natuurlijk dat ik twee afspraken heb in mijn database.

Heeft iemand enig idee hoe ik dat loopje moet verwerken???

-- Heb het probleem al opgelost met de LIKE functie deed ie het wel? En dan hoef ik ook geen loop te gebruiken --
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.211s