10. november 2006 - 13:53
Der er
9 kommentarer og 1 løsning
lidt hjælp til en while funktion
Hvorfor trækker den kun 1 række ud af min tabel med dette script? Er ikke superhaj til PHP endnu ;-) $sql = "SELECT book_start, book_end "; $sql .= "FROM rs_data_bookings "; $sql .= "WHERE family_id = " . $_REQUEST["family_id"] . " "; $sql .= "AND ((rs_data_bookings.book_end > '" . $start . "' "; $sql .= "AND rs_data_bookings.book_end <= '" . $end . "') "; $sql .= "OR (rs_data_bookings.book_start < '" . $end . "' "; $sql .= "AND rs_data_bookings.book_start >= '" . $start . "') "; $sql .= "OR (rs_data_bookings.book_start <= '" . $start . "' "; $sql .= "AND rs_data_bookings.book_end >= '" . $end . "')) "; $sql .= "ORDER BY book_start ASC "; $bookings = db_query($database_name, $sql); while($bookings_ = fetch_array($bookings)){ $book_start = $bookings_["book_start"]; $book_end = $bookings_["book_end"]; }
Annonceindlæg fra Academic Work Denmark A/S
10. november 2006 - 14:37
#1
Fordi at du skal udskrive dine variabler i while løkken, det er ikke nok at definere dem i while løkken :-)
10. november 2006 - 17:06
#2
Ok jeg kan få alle tallene ud af databasen med : while($bookings_ = fetch_array($bookings)){ echo $bookings_["book_start"] . " / " . $bookings_["book_end"] . " <br> "; } Jeg vil så gerne have et script der finder forskellen mellem de forskellige tider jeg trækker ud. Hvor at book_end => book_start. Men hvordan få jeg det til at virke i selve scriptet? Har lavet noget der ser sådan ud: $bookings = db_query($database_name, $sql); while($bookings_ = fetch_array($bookings)){ $book_start = $bookings_["book_start"]; $book_end = $bookings_["book_end"]; } $dif_start = strtotime($bookings_["book_start"]); $dif_end = strtotime($bookings_["book_end"]); $dif = ""; for($dif_end < $dif_start; $dif_end >= $book_start; $dif .= ($dif_start - $dif_end)) else { $error_msg == "Ingen ledige tider" } Men det fungere jo ikke rigtigt.....
11. november 2006 - 05:23
#3
$sql = "SELECT book_start, book_end "; $sql .= "FROM rs_data_bookings "; $sql .= "WHERE family_id = " . $_REQUEST["family_id"] . " "; $sql .= "AND ((rs_data_bookings.book_end > '" . $start . "' "; $sql .= "AND rs_data_bookings.book_end <= '" . $end . "') "; $sql .= "OR (rs_data_bookings.book_start < '" . $end . "' "; $sql .= "AND rs_data_bookings.book_start >= '" . $start . "') "; $sql .= "OR (rs_data_bookings.book_start <= '" . $start . "' "; $sql .= "AND rs_data_bookings.book_end >= '" . $end . "')) "; $sql .= "ORDER BY book_start ASC "; $q = mysql_query($sql); while($bookings = mysql_fetch_array($q)){ echo $bookings.'<br />'; } //mcardle
11. november 2006 - 09:44
#4
Jeg kan godt udskrive rækkerne med echo funktionen, men kan man ikke i while funktion lave en variable der indenholder rækkerne som man kan kalde senere? F.eks. $q = mysql_query($sql); while($bookings = mysql_fetch_array($q)){ $book_start = $bookings.'<br />'; }
11. november 2006 - 17:50
#5
Prøv det her: $q = mysql_query($sql); while($bookings = mysql_fetch_array($q)){ $book_start[] = $bookings; }
11. november 2006 - 17:51
#6
Kald dem med: echo $book_start[0]; echo $book_start[1]; echo $book_start[2]; osv.
15. november 2006 - 15:38
#7
Ok. Det virker squ : ) Mucho gracias.... Smid et svar så du kan få dine points ; ) Måske du kan hjælpe mig med et andet problem? Hvis man har en if/else kan man så ikke lave 2 svar hvis parametret for nr. 1 ikke bliver opfyldt så vælger den nr.2 i dette tilfælde hvis $book_end[1] ikke findes... if ($ledig1 >= $object_time) {echo $book_end[1];} elseif ($ledig1 => $object_time) {echo "Ledig tid";} else {echo "Ingen ledige tider!";}
15. november 2006 - 18:08
#8
;oD
15. november 2006 - 18:11
#9
Hmm... if ($ledig1 >= $object_time) {echo $book_end[1];} elseif ($ledig1 => $object_time) {echo "Ledig tid";} else {echo "Ingen ledige tider!";} du har skrevet det samme to gange bortset fra du har byttet dine krokodillenæb og lighedstegn om. Det du siger kan du godt, men er begge variabler tal?
16. november 2006 - 12:32
#10
Hvis der ikke er nogen værdi i databasen, skal man så ikke sætte "" som værende null? $dif_start1 = strtotime($book_start[1]); // ex. $book_start[1] = 15/11/2006 09:30 if($dif_start1 = ""){ $dif_start1 = strtotime($start) + 1800; // $dif_start1 = xx/xx/xxxx 10:00 } Så jeg kan lave denne var. : $ledig1 = $dif_start1 - strtotime($start); // eks. 123456789 - 12345666 if($ledig1 >= $object_time) // $object_time = 1800 echo date("d/m/Y H:i", $dif_start1); else echo "Ingen ledige tider!";
Vi tilbyder markedets bedste kurser inden for webudvikling