Avatar billede borgenviby Nybegynder
23. december 2006 - 11:45 Der er 7 kommentarer

Hjælp til at forstår opbygning af tabel med database udtræk

Prøver at lave en table med tid, hvor der skal udtrækkes fra databasen, hvis tiden og datoen passer. Har indtil videre lavet dette script, men får en fejl ved min while function og ved derfor ikke om det overhoved virker på denne måde :o)

Får denne fejl syntax error, unexpected '{'

$bookings = db_query($database_name, $sql);
        while($bookings_ = fetch_array($bookings){ //fejl?
         
          $day_name_ = date("D", strtotime($bookings_["book_start"]));
          $day_time_ = date("H:i", strtotime($bookings_["book_start"]));
         
          if($day_name_==$day_name && $day_time_==$show_time){
            $user_id = $bookings_["user_id"];

            $sql = "SELECT first_name, last_name, email ";
            $sql .="FROM rs_data_users ";
            $sql .="INNER JOIN rs_data_bookings.user_id ON rs_data_users.user_id ";
            $sql .="WHERE user_id = '" . $user_id . "' ";
            $temp = db_query($database_name, $sql);
            $temp_ = fetch_array($temp);
           
            $first_name = $temp_["first_name"];
            $last_name = $temp_["last_name"];
            $email = $temp_["email"];

    $show_day .= "<td><div class="show_bookings">" $first_name . $last_name . $email . "</div></td></tr>";
   
          }
         

Hele scriptet....

// Funtion to show day bookings
   
    // Show Monday
   
    function show_monday() {


    // finds monday of the selected week & year
    $current_day = strtotime("01/01/" . $_REQUEST["year"]);
    while(date("w", $current_day) != 1 || date("W", $current_day) != $_REQUEST["week"]) { $current_day += 86400; }
    $monday = date("Y-m-d", $current_day);
    $stamp = strtotime($monday);
    $day_name = date("D", $stamp);
   
    // extracts hours of activity start, end and step
    $start_hour = param_extract("activity_start");    // ex. 09:30
    $end_hour = param_extract("activity_end");        // ex. 17:30

    $activity_step = param_extract("activity_step")*60; // ex. 15 * 60
    $activity_start = strtotime("1970-01-01 " . $start_hour);
    $activity_end = strtotime("1970-01-01 " . $end_hour);
   

    // start table and show day
    $show_day = "<table><tr><td> Tid </td><td> $day_name </td></tr>";

    // show time
    for($t=$activity_start; $t<=$activity_end; $t+=$activity_step){
     
    $day_time = date("H:i", $t);
    $show_day .= "<tr><td><div class='show_time'> $day_time </div></td>";

    }

    // show booking after show time
   
    // extracts the bookings for the selected week
    $sql  = "SELECT book_id, book_start, book_end, user_id, misc_info, validated ";
    $sql .= "FROM rs_data_bookings ";
    $sql .= "WHERE family_id = " . $_REQUEST["family_id"] . " ";
    $sql .= "AND ((book_start >= '" . date("Y-m-d", $stamp) . "' ";
    $sql .= "AND book_start < '" . date("Y-m-d", ($stamp + 604800)) . "') ";
    $sql .= "OR (book_end >= '" . date("Y-m-d", $stamp) . "' ";
    $sql .= "AND book_end < '" . date("Y-m-d", ($stamp + 604800)) . "') ";
    $sql .= "OR (book_start <= '" .  date("Y-m-d", $stamp) . "' ";
    $sql .= "AND book_end >= '" . date("Y-m-d", $stamp) . "'));";

    $bookings = db_query($database_name, $sql);
        while($bookings_ = fetch_array($bookings){
         
          $day_name_ = date("D", strtotime($bookings_["book_start"]));
          $day_time_ = date("H:i", strtotime($bookings_["book_start"]));
         
          if($day_name_==$day_name && $day_time_==$show_time){
            $user_id = $bookings_["user_id"];

            $sql = "SELECT first_name, last_name, email ";
            $sql .="FROM rs_data_users ";
            $sql .="INNER JOIN rs_data_bookings.user_id ON rs_data_users.user_id ";
            $sql .="WHERE user_id = '" . $user_id . "' ";
            $temp = db_query($database_name, $sql);
            $temp_ = fetch_array($temp);
           
            $first_name = $temp_["first_name"];
            $last_name = $temp_["last_name"];
            $email = $temp_["email"];

    $show_day .= "<td><div class="show_bookings">" $first_name . $last_name . $email . "</div></td></tr>";
   
          }
         
          else{
           
            $show_day .= "<td><div class="no_bookings"></div></td></tr>";
           
          } 


    return $show_day;

    }
Avatar billede windcape Praktikant
23. december 2006 - 12:24 #1
while($bookings_ = fetch_array($bookings){ //fejl?

prøv at tælle hvor mange ( du har og hvor mange ) du har, og så se om du ikke kan gætte hvad php mener.
Avatar billede mcardle Nybegynder
24. december 2006 - 01:58 #2
Hmm, må jeg se din opkaldsfunktion -uden user, pass og db.
Avatar billede mcardle Nybegynder
24. december 2006 - 02:02 #3
// Ellers kan du prøve den her:

$bookings = mysql_query($database_name, $sql);

while($bookings_ = mysql_fetch_array($bookings){
    $day_name_ = date("D", strtotime($bookings_["book_start"]));
    $day_time_ = date("H:i", strtotime($bookings_["book_start"]));
         
if($day_name_==$day_name && $day_time_==$show_time){
    $user_id = $bookings_["user_id"];

    $sql = "SELECT first_name, last_name, email ";
    $sql .= "FROM rs_data_users ";
    $sql .="INNER JOIN rs_data_bookings.user_id ON rs_data_users.user_id ";
    $sql .="WHERE user_id = '$user_id'";
    $temp = mysql_query($database_name, $sql);
    $temp_ = mysql_fetch_array($temp);
           
    $first_name = $temp_["first_name"];
    $last_name = $temp_["last_name"];
    $email = $temp_["email"];

    $show_day .= "<td><div class="show_bookings">" $first_name . $last_name . $email . "</div></td></tr>";
   
}

// Men jeg kan nu ikke finde dit database kald
Avatar billede windcape Praktikant
24. december 2006 - 13:15 #4
mcardle du laver jo samme fejl som ham... I skulle starte med at fixe jeres syntax fejl før i bekymre jer om resten.
Avatar billede borgenviby Nybegynder
25. december 2006 - 12:23 #5
Arrrggggg...... Findes der ikke en compiler der kan tjekke ens syntax?
Har fundet fejlen... Lige foran næsen på en´.
" ) " mangelede en parentes.

while($bookings_ = fetch_array($bookings)){

Skal kigge videre på selve scriptet senere. Så ved stadig ikke om det virker. :o)
Avatar billede windcape Praktikant
25. december 2006 - 21:18 #6
*hint* PHP checker din syntax og giver en fejlmeddelse :p
og jeg skrev at du manglede den parantes i min første post.
Avatar billede mcardle Nybegynder
26. december 2006 - 02:21 #7
LOL... Man er så opsat på at hjælpe at man glemmer dumme-fejlene... Nice going windcape.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester