login  Naam:   Wachtwoord: 
Registreer je!
 Forum

extra waarde in array (Opgelost)

Offline lau - 30/09/2008 12:56
Avatar van lauHTML interesse Ik heb nu met succes een array gemaakt van de tijden. Maar nu wil ik een extra waarde toevoegen aan de array, genaamd de id van de tijd. Hoe krijg ik dat geïntegreerd?
  1. $dagtijdbezet = array();
  2. $sResultB = mysql_query("SELECT id, DATE_FORMAT(begintijd, '%H') AS forbeginuur, DATE_FORMAT(begintijd, '%i') AS forbeginminuut, DATE_FORMAT(eindtijd, '%H') AS foreinduur, DATE_FORMAT(eindtijd, '%i') AS foreindminuut FROM sint_reserveringen WHERE datum = '2008-11-15' ORDER BY begintijd ASC");
  3. while ($objB = mysql_fetch_object($sResultB)) {
  4. $from_time = mktime($objB->forbeginuur, $objB->forbeginminuut, 0, 0, 0, 0);
  5. $to_time = mktime($objB->foreinduur, $objB->foreindminuut, 0, 0, 0, 0);
  6. while($from_time <= $to_time) {
  7. $dagtijdbezet[] = date('H:i', $from_time);
  8. $from_time += 1800;
  9. }
  10. }
  11. echo '<pre>';
  12. print_r($dagtijdbezet);

10 antwoorden

Gesponsorde links
Offline Kr4nKz1n - 30/09/2008 13:22 (laatste wijziging 30/09/2008 13:24)
Avatar van Kr4nKz1n Onbekend Wat is je output van je print_r?

Edit
Ik snap hem.

  1. $dagtijdbezet[] = Array('id' => $objB->id, 'time' => date('H:i', $from_time));
Offline lau - 30/09/2008 13:29 (laatste wijziging 30/09/2008 13:31)
Avatar van lau HTML interesse Ohkee, maar hoe zet ik dat in een overzicht. Onderstaande had ik eerst zonder dat extra id-waarde. Maar door de komst van die id-waarde moet ik $dagtijdbezet wijzigen denk ik, maar ik weet niet naar wat. En hoe krijg ik als ik op een tijd ($dagtijd[$j][$i] zijn de tijden) klik dat ik naar een id wordt verwezen?
  1. if(!in_array($dagtijd[$j][$i],$dagtijdbezet)){
  2. print '<font color="#888888">'.$dagtijd[$j][$i].'</font>';
  3. }
  4. else {
  5. print '<font color="#FF0000"><b>'.$dagtijd[$j][$i].'</b></font>';
  6. }

Nu heb ik er dit van gemaakt door die 2 waardes: id en time:

  1. if(!in_array($dagtijd[$j][$i],$dagtijdbezet['time'])){
  2. print '<font color="#888888">'.$dagtijd[$j][$i].'</font>';
  3. }
  4. else {
  5. print '<font color="#FF0000"><b><a href="'.$dagtijdbezet['id'].'">'.$dagtijd[$j][$i].'</a></b></font>';
  6. }

maar dat werkt niet  
Offline Kr4nKz1n - 30/09/2008 13:47
Avatar van Kr4nKz1n Onbekend Waar haal je $dagtijd vandaan?

En als het goed is ziet je Array er zo uit:
  1. 0 => Array(
  2. 'id' => 2,
  3. 'time' => 12:53),
  4. 1 => Array(
  5. 'id' => 3,
  6. 'time' => 15:53)
  7. )

In die zin.

Nu werkt In_Array niet meer.

Waarop wil je checken?

Wat je kan doen is de array anders opbouwen.

Maar eerst wil ik weten waar je $dagtijd vandaan haalt.
Offline lau - 30/09/2008 13:49
Avatar van lau HTML interesse Dagtijd ziet er zo uit:
  1. $dagtijd = array(
  2. "1" => array("09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30"),
  3. "2" => array("14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30","18:00"),
  4. "3" => array("18:30","19:00","19:30","20:00","20:30","21:00","21:30","22:00","22:30")
  5. );


En ik wil het weergeven in 3 kolommen door middel van:
  1. print '<table>';
  2. for ($i = 0; $i <= 8; $i++) {
  3. print '<tr>';
  4. for ($j = 1; $j <= 3; $j++) {
  5. if($j%2==1){
  6. //print '<td align="center" style="background-color:#FFFFFF;">';
  7. print '<td align="center" style="background-color:#F5F5F5;">';
  8. } else{
  9. print '<td align="center" style="background-color:#F5F5F5">';
  10. }
  11.  
  12.  
  13. if(!in_array($dagtijd[$j][$i], $dagtijdbezet)){
  14. print '<font color="#888888">'.$dagtijd[$j][$i].'</font>';
  15. }
  16. else {
  17. print '<font color="#FF0000"><b><a href="'.$dagtijdbezet.'">'.$dagtijd[$j][$i].'</a></b></font>';
  18. }
  19.  
  20. print '</td>';
  21. }
  22. print '</tr>';
  23. print '</table>';
Offline Kr4nKz1n - 30/09/2008 13:54
Avatar van Kr4nKz1n Onbekend Wat is je bedoeling?
Je hebt nu 2 arrays, $dagtijd (zelf gemaakt denk ik?) en $dagtijdbezet (gevuld a.d.h.v. een query)

Je wilt controleren of de tijden in $dagtijd voorkomen in $dagtijdbezet?

Maak de array $dagtijdbezet eens zo op:
  1. $dagtijdbezet[date('H:i', $from_time)] = $objB->id;


En dan i.p.v. in_array gebruiken maken van Array_Key_Exists.

De key van de array is nu de tijd. De waarde daarvan is het ID.
Offline lau - 30/09/2008 13:59
Avatar van lau HTML interesse jah.. ik wil kijken of de tijden die door de query worden gegeven voorkomen in $dagtijd, als de tijden voorkomen in $dagtijd is het namelijk bezet en moet het vetdrukt zijn + dat men erop kunnen klikken zodat ze zien wie het bezet houdt (door middel van die id dus).

Er zit voortgang in   Ik heb het veranderd naar array_key_exists:
  1. if(!array_key_exists($dagtijd[$j][$i], $dagtijdbezet)){
  2. print '<font color="#888888">'.$dagtijd[$j][$i].'</font>';
  3. }
  4. else {
  5. print '<font color="#FF0000"><b><a href="'.$dagtijdbezet.'">'.$dagtijd[$j][$i].'</a></b></font>';
  6. }

Maar krijg de waarde (ID) niet op z'n plek bij de link.
Offline Kr4nKz1n - 30/09/2008 14:01
Avatar van Kr4nKz1n Onbekend $dagtijdbezet is een array. Deze moet je dus 1 voor 1 uitlezen (of for-loop ofzo maar dat willen we nu niet).

  1. echo $dagtijdbezet[$dagtijd[$j][$i]];
Offline lau - 30/09/2008 14:03
Avatar van lau HTML interesse Wow, dat werkt.. ik snap er nog niet zoveel van die array, blijft een lastig onderdeel.
Harstikke bedankt!  
Offline Kr4nKz1n - 30/09/2008 14:07 (laatste wijziging 30/09/2008 14:09)
Avatar van Kr4nKz1n Onbekend Gewoon veel bezig gaan met Arrays, zijn echt ideaal 

http://www.php.net/array
Ideaal 
Offline lau - 30/09/2008 14:15
Avatar van lau HTML interesse Jah, volgens mij is het gewoon mijn angst om daar mee te werken. Want ik zie dat er wel heeeeeeeeel veel mogelijkheden zijn om iets te laten weergeven zoals in mijn code.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.279s