Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] nie tworzy mi się tablica
No_Name
post 22.08.2008, 15:30:08
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 3.08.2008

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


Oto mój kod:
  1. <?php
  2. $rok = date(Y);
  3. $miesiac = date(m);
  4. $dzien = date(j);
  5. $dzisiejsza_data = "$rok-$miesiac-$dzien";
  6. function uzytkownicy_podsumowanie_godzin($tabela2,$data){
  7.  $i = "0";
  8.  while ($i<="23"){
  9.  $zap = "SELECT DISTINCT `adres ip` FROM `$tabela2` WHERE data_rozp='$data' AND czas_rozp>='$i:00:00' AND czas_rozp<='$i:59:59'";
  10.  $wyn = mysql_query($zap);
  11.  $ile = mysql_num_rows($wyn);
  12.  echo "$ile $zap<br>";
  13.  $uzytkownicy_podsumowanie_godzin[$i] =$ile;
  14.  $i++;
  15.  };
  16. };  
  17. uzytkownicy_podsumowanie_godzin($tabela,$dzisiejsza_data);
  18. if (!$uzytkownicy_podsumowanie_godzin[16]) {
  19.  echo "brak";
  20. };
  21. ?>

nie wiem czemu, ale wyświetla mi się napis "brak". Pomóżcie!
Go to the top of the page
+Quote Post
pyro
post 22.08.2008, 15:34:29
Post #2





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


argumenty date() daj w apostrofy


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
JoShiMa
post 22.08.2008, 15:38:31
Post #3





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Nic dziwnego:

1. Zmienna $uzytkownicy_podsumowanie_godzin jest tworzona i wypełniana danymi wewnątrz funkcji i poza nią nie jest widoczna.

2. Funkcja nic nie zwraca a więc wywołanie uzytkownicy_podsumowanie_godzin($tabela,$dzisiejsza_data); powoduje utworzenie zmiennej $uzytkownicy_podsumowanie_godzin a następnie jej usunięcie, gdyż wraz z zakończeniem funkcji kończy się jej "życie".

3. Zmienna $uzytkownicy_podsumowanie_godzin wywołana w instrukcji warunkowej if (!$uzytkownicy_podsumowanie_godzin[16]) to nie jest ta sama zmienna która pod tą samą nazwą występuje w funkcji uzytkownicy_podsumowanie_godzin. Doucz się o zasięgu zmiennych.


--------------------
Go to the top of the page
+Quote Post
No_Name
post 22.08.2008, 16:03:32
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 3.08.2008

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


Cytat
Zmienna $uzytkownicy_podsumowanie_godzin jest tworzona i wypełniana danymi wewnątrz funkcji i poza nią nie jest widoczna.

A nie da się jaj jakoś uaktywnić?
Go to the top of the page
+Quote Post
JoShiMa
post 22.08.2008, 16:05:19
Post #5





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


A słyszałeś o tym, że funkcje mogą zwracać zmienne?


--------------------
Go to the top of the page
+Quote Post
Fixus
post 22.08.2008, 16:14:47
Post #6





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


za pętlą na końcu funkcji dodaj
Kod
return $zmienna;
Go to the top of the page
+Quote Post
.radex
post 22.08.2008, 16:20:24
Post #7





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Cytat(No_Name @ 22.08.2008, 16:30:08 ) *
  1. <?php
  2. $rok = date(Y);
  3. $miesiac = date(m);
  4. $dzien = date(j);
  5. $dzisiejsza_data = "$rok-$miesiac-$dzien";
  6. function uzytkownicy_podsumowanie_godzin($tabela2,$data){
  7.  $i = "0";
  8.  while ($i<="23"){
  9.  $zap = "SELECT DISTINCT `adres ip` FROM `$tabela2` WHERE data_rozp='$data' AND czas_rozp>='$i:00:00' AND czas_rozp<='$i:59:59'";
  10.  $wyn = mysql_query($zap);
  11.  $ile = mysql_num_rows($wyn);
  12.  echo "$ile $zap<br>";
  13.  $uzytkownicy_podsumowanie_godzin[$i] =$ile;
  14.  $i++;
  15.  };
  16. };  
  17. uzytkownicy_podsumowanie_godzin($tabela,$dzisiejsza_data);
  18. if (!$uzytkownicy_podsumowanie_godzin[16]) {
  19.  echo "brak";
  20. };
  21. ?>


Kod
$rok = date(Y);
$miesiac = date(m);
$dzien = date(j);


Wstaw te Y, m i j w apostrofy/cudzysłowia. Niby tak też działa, ale to nie jest poprawne.

Kod
if (!$uzytkownicy_podsumowanie_godzin[16]) {
   echo "brak";
};



a struktury takie jak if, while, function nie trzeba zakańczać średnikiem (i raczej nikt tak nie robi)


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
JoShiMa
post 25.08.2008, 08:48:09
Post #8





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Kod
if (!$uzytkownicy_podsumowanie_godzin[16]) {
   echo "brak";
};

a struktury takie jak if, while, function nie trzeba zakańczać średnikiem (i raczej nikt tak nie robi)
[/quote]

No_Name też tak nie robi i ma rację smile.gif


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:18