extra waarde in array (Opgelost)
lau - 30/09/2008 12:56
HTML 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?
$dagtijdbezet = array();
$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");
while ($objB = mysql_fetch_object($sResultB)) {
$from_time = mktime($objB->forbeginuur, $objB->forbeginminuut, 0, 0, 0, 0);
$to_time = mktime($objB->foreinduur, $objB->foreindminuut, 0, 0, 0, 0);
while($from_time <= $to_time) {
$dagtijdbezet[] = date('H:i', $from_time);
$from_time += 1800;
}
}
echo '<pre>';
print_r($dagtijdbezet);
$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" ) ; $from_time = mktime ( $objB -> forbeginuur , $objB -> forbeginminuut , 0 , 0 , 0 , 0 ) ; $to_time = mktime ( $objB -> foreinduur , $objB -> foreindminuut , 0 , 0 , 0 , 0 ) ; while ( $from_time <= $to_time ) {
$dagtijdbezet [ ] = date ( 'H:i' , $from_time ) ; $from_time += 1800 ;
}
}
10 antwoorden
Gesponsorde links
Kr4nKz1n - 30/09/2008 13:22 (laatste wijziging 30/09/2008 13:24)
Onbekend
Wat is je output van je print_r?
Edit
Ik snap hem.
$dagtijdbezet[] = Array('id' => $objB->id, 'time' => date('H:i', $from_time));
$dagtijdbezet [ ] = Array ( 'id' => $objB -> id , 'time' => date ( 'H:i' , $from_time ) ) ;
lau - 30/09/2008 13:29 (laatste wijziging 30/09/2008 13:31)
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?
if(!in_array($dagtijd[$j][$i],$dagtijdbezet)){
print '<font color="#888888">'.$dagtijd[$j][$i].'</font>';
}
else {
print '<font color="#FF0000"><b>'.$dagtijd[$j][$i].'</b></font>';
}
if ( ! in_array ( $dagtijd [ $j ] [ $i ] , $dagtijdbezet ) ) { print '<font color="#888888">' . $dagtijd [ $j ] [ $i ] . '</font>' ; }
else {
print '<font color="#FF0000"><b>' . $dagtijd [ $j ] [ $i ] . '</b></font>' ; }
Nu heb ik er dit van gemaakt door die 2 waardes: id en time:
if(!in_array($dagtijd[$j][$i],$dagtijdbezet['time'])){
print '<font color="#888888">'.$dagtijd[$j][$i].'</font>';
}
else {
print '<font color="#FF0000"><b><a href="'.$dagtijdbezet['id'].'">'.$dagtijd[$j][$i].'</a></b></font>';
}
if ( ! in_array ( $dagtijd [ $j ] [ $i ] , $dagtijdbezet [ 'time' ] ) ) { print '<font color="#888888">' . $dagtijd [ $j ] [ $i ] . '</font>' ; }
else {
print '<font color="#FF0000"><b><a href="' . $dagtijdbezet [ 'id' ] . '">' . $dagtijd [ $j ] [ $i ] . '</a></b></font>' ; }
maar dat werkt niet
Kr4nKz1n - 30/09/2008 13:47
Onbekend
Waar haal je $dagtijd vandaan?
En als het goed is ziet je Array er zo uit:
Array(
0 => Array(
'id' => 2,
'time' => 12:53),
1 => Array(
'id' => 3,
'time' => 15:53)
)
'id' => 2 ,
'time' => 12 : 53 ) ,
'id' => 3 ,
'time' => 15 : 53 )
)
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.
lau - 30/09/2008 13:49
HTML interesse
Dagtijd ziet er zo uit:
$dagtijd = array(
"1" => array("09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30"),
"2" => array("14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30","18:00"),
"3" => array("18:30","19:00","19:30","20:00","20:30","21:00","21:30","22:00","22:30")
);
"1" => array ( "09:30" , "10:00" , "10:30" , "11:00" , "11:30" , "12:00" , "12:30" , "13:00" , "13:30" ) , "2" => array ( "14:00" , "14:30" , "15:00" , "15:30" , "16:00" , "16:30" , "17:00" , "17:30" , "18:00" ) , "3" => array ( "18:30" , "19:00" , "19:30" , "20:00" , "20:30" , "21:00" , "21:30" , "22:00" , "22:30" ) ) ;
En ik wil het weergeven in 3 kolommen door middel van:
print '<table>';
for ($i = 0; $i <= 8; $i++) {
print '<tr>';
for ($j = 1; $j <= 3; $j++) {
if($j%2==1){
//print '<td align="center" style="background-color:#FFFFFF;">';
print '<td align="center" style="background-color:#F5F5F5;">';
} else{
print '<td align="center" style="background-color:#F5F5F5">';
}
if(!in_array($dagtijd[$j][$i], $dagtijdbezet)){
print '<font color="#888888">'.$dagtijd[$j][$i].'</font>';
}
else {
print '<font color="#FF0000"><b><a href="'.$dagtijdbezet.'">'.$dagtijd[$j][$i].'</a></b></font>';
}
print '</td>';
}
print '</tr>';
print '</table>';
for ( $i = 0 ; $i <= 8 ; $i ++ ) {
for ( $j = 1 ; $j <= 3 ; $j ++ ) {
if ( $j % 2 == 1 ) {
//print '<td align="center" style="background-color:#FFFFFF;">';
print '<td align="center" style="background-color:#F5F5F5;">' ; } else {
print '<td align="center" style="background-color:#F5F5F5">' ; }
if ( ! in_array ( $dagtijd [ $j ] [ $i ] , $dagtijdbezet ) ) { print '<font color="#888888">' . $dagtijd [ $j ] [ $i ] . '</font>' ; }
else {
print '<font color="#FF0000"><b><a href="' . $dagtijdbezet . '">' . $dagtijd [ $j ] [ $i ] . '</a></b></font>' ; }
}
Kr4nKz1n - 30/09/2008 13:54
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:
$dagtijdbezet[date('H:i', $from_time)] = $objB->id;
$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.
lau - 30/09/2008 13:59
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:
if(!array_key_exists($dagtijd[$j][$i], $dagtijdbezet)){
print '<font color="#888888">'.$dagtijd[$j][$i].'</font>';
}
else {
print '<font color="#FF0000"><b><a href="'.$dagtijdbezet.'">'.$dagtijd[$j][$i].'</a></b></font>';
}
print '<font color="#888888">' . $dagtijd [ $j ] [ $i ] . '</font>' ; }
else {
print '<font color="#FF0000"><b><a href="' . $dagtijdbezet . '">' . $dagtijd [ $j ] [ $i ] . '</a></b></font>' ; }
Maar krijg de waarde (ID) niet op z'n plek bij de link.
Kr4nKz1n - 30/09/2008 14:01
Onbekend
$dagtijdbezet is een array. Deze moet je dus 1 voor 1 uitlezen (of for-loop ofzo maar dat willen we nu niet).
echo $dagtijdbezet[$dagtijd[$j][$i]];
echo $dagtijdbezet [ $dagtijd [ $j ] [ $i ] ] ;
lau - 30/09/2008 14:15
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 .