Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Terminarz - kalendarz z godzinami[MySQL][PHP], Fatal error: Uncaught Error: Call to a member function query() on null
brychu
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 10.04.2015

Ostrzeżenie: (0%)
-----


Witam.
Dla tych co mnie nie znają - jestem skamieliną programowania i bazuje na starym PHP a dodatkowe "i" w MySql (czyt. mysqli) przysparza mi dodatkowych kłopotów.
Chcę stworzyć prosty terminarz - kalendarz, w którym są godziny.

Stworzyłem sobie kodzik wypisujący godziny od 12 do 21. Sprawdza w bazie czy rekord istnieje i w przypadku, gdy jest, koloruje go na czerwono i nie jest podlinkowany. Proste.
http://taniepranie.zgora.pl/test.php
Kod
<?php
// połączenie z bazą danych w osobnym pliku
require_once "connectbase.php";
$iddnia = 6;

for( $x = 12; $x <= 21; $x++ )
{


$result = $mysqli->query("SELECT dzien, godzina FROM terminarz WHERE dzien = '$iddnia' AND godzina = '$x'");
   $row_cnt = $result->num_rows;
         if ($row_cnt > 0)
         {
             echo '<font color="red">'.$x.'</font><br>';
         }
         else
         {
             echo '<b><a href="terminarz3.php?dzien='.$iddnia.'&godzina='.$x.'">'.$x.'</a></b><br>';
         }
    $result->close();
}

?>


Mamy też kalendarz (ja go nie pisałem, tylko dodaje swój mały kod).
http://taniepranie.zgora.pl/terminarztest.php
Kod
<?PHP

function printCalendar()
{
  $year = date("Y");
  $monthNum = date("n");
  $daysofmonth = date("t");
  $dayofweek = date("w");
  $dayofmonth = date("j");
  $firstdayofmonth = date("w", mktime(0,0,0,$monthNum, 1, $year));

  if($dayofweek == 0) $dayofweek = 7;
  if($firstdayofmonth == 0) $firstdayofmonth = 7;

  switch($monthNum){
    case 1 : $monthName = "Styczeń";break;
    case 2 : $monthName = "Luty";break;
    case 3 : $monthName = "Marzec";break;
    case 4 : $monthName = "Kwiecień";break;
    case 5 : $monthName = "Maj";break;
    case 6 : $monthName = "Czerwiec";break;
    case 7 : $monthName = "Lipiec";break;
    case 8 : $monthName = "Sierpień";break;
    case 9 : $monthName = "Wrzesień";break;
    case 10 : $monthName = "Październik";break;
    case 11 : $monthName = "Listopad";break;
    case 12 : $monthName = "Grudzień";break;
  }

  echo("<TABLE border = 1><TR>");
  echo("<TD bgcolor=\"yellow\" align=\"center\" colspan=\"7\">");
  echo($monthName." ".$year);
  echo("</TD></TR><TR>");
  ?>
  <TR>
  <TD align="center" bgcolor="pink">Pn</TD>
  <TD align="center" bgcolor="pink">Wt</TD>
  <TD align="center" bgcolor="pink">Sr</TD>
  <TD align="center" bgcolor="pink">Cz</TD>
  <TD align="center" bgcolor="pink">Pi</TD>
  <TD align="center" bgcolor="pink">So</TD>
  <TD align="center" bgcolor="pink">Nd</TD>
  </TR>
  <?
  $j = $daysofmonth + $firstdayofmonth - 1;

  for($i = 0; $i < $j; $i++){
    if($i < $firstdayofmonth - 1){
      echo("<TD bgcolor=\"white\"></TD>");
      continue;
    }
    if(($i % 7) == 0){
      echo("</TR><TR>");
    }
    if(($i - $firstdayofmonth + 2) == $dayofmonth){
      $color = "yellow";
    }
    else{
      $color = "green";
    }
    echo("<TD bgcolor=\"$color\" align=\"center\">");
    echo($i - $firstdayofmonth + 2);
    echo("</TD>");
  }
  echo("</TR></TABLE>");
}
printCalendar();
?>


W chwili, gdy wypisuje tylko godziny, bez sprawdzania rekordu, wszystko gra. Gorzej, gdy daje zapytanie do bazy. Wyświetla wtedy błąd. Dlaczego? Jak to poprawić?
http://taniepranie.zgora.pl/terminarz2.php
Kod
<?PHP
require_once "connectbase.php";

function printCalendar()
{
  $year = date("Y");
  $monthNum = date("n");
  $daysofmonth = date("t");
  $dayofweek = date("w");
  $dayofmonth = date("j");
  $firstdayofmonth = date("w", mktime(0,0,0,$monthNum, 1, $year));

  if($dayofweek == 0) $dayofweek = 7;
  if($firstdayofmonth == 0) $firstdayofmonth = 7;

  switch($monthNum){
    case 1 : $monthName = "Styczeń";break;
    case 2 : $monthName = "Luty";break;
    case 3 : $monthName = "Marzec";break;
    case 4 : $monthName = "Kwiecień";break;
    case 5 : $monthName = "Maj";break;
    case 6 : $monthName = "Czerwiec";break;
    case 7 : $monthName = "Lipiec";break;
    case 8 : $monthName = "Sierpień";break;
    case 9 : $monthName = "Wrzesień";break;
    case 10 : $monthName = "Październik";break;
    case 11 : $monthName = "Listopad";break;
    case 12 : $monthName = "Grudzień";break;
  }

  echo("<TABLE border = 1><TR>");
  echo("<TD bgcolor=\"yellow\" align=\"center\" colspan=\"7\">");
  echo($monthName." ".$year);
  echo("</TD></TR><TR>");
  ?>
  <TR>
  <TD align="center" bgcolor="pink">Pn</TD>
  <TD align="center" bgcolor="pink">Wt</TD>
  <TD align="center" bgcolor="pink">Sr</TD>
  <TD align="center" bgcolor="pink">Cz</TD>
  <TD align="center" bgcolor="pink">Pi</TD>
  <TD align="center" bgcolor="pink">So</TD>
  <TD align="center" bgcolor="pink">Nd</TD>
  </TR>
  <?
  $j = $daysofmonth + $firstdayofmonth - 1;

  for($i = 0; $i < $j; $i++){
    if($i < $firstdayofmonth - 1){
      echo("<TD bgcolor=\"white\"></TD>");
      continue;
    }
    if(($i % 7) == 0){
      echo("</TR><TR>");
    }
    if(($i - $firstdayofmonth + 2) == $dayofmonth){
      $color = "yellow";
    }
    else{
      $color = "green";
    }
    echo("<TD bgcolor=\"$color\" align=\"center\">");
    echo($i - $firstdayofmonth + 2).'<hr>';
    //ify

$iddnia = $i - $firstdayofmonth + 2;

for( $x = 12; $x <= 21; $x++ )
{


$result = $mysqli->query("SELECT dzien, godzina FROM terminarz WHERE dzien = '$iddnia' AND godzina = '$x'");
   $row_cnt = $result->num_rows;
         if ($row_cnt > 0)
         {
             echo '<font color="red">'.$x.'</font><br>';
         }
         else
         {
             echo '<b><a href="terminarz3.php?dzien='.$iddnia.'&godzina='.$x.'">'.$x.'</a></b><br>';
         }
    $result->close();
}

    
    //koniec ify
    echo("</TD>");
  }
  echo("</TR></TABLE>");
}
printCalendar();
?>



HELP, HELP. : )
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 15:05