Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][SQL]Problem ze zmienna Php ktora wystepuje w zapytaniu SQL, Problem ze zmienna Php ktora wystepuje w zapytaniu SQL
byczek1984
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

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


Witam
Mam problem, mam zmienna $godzina_orginal ktorej wartosc wynosi 8.00 - 8.45 i ta zmienna dodaje do zapytanie i to zapytanie nie dziala, wartosc zmiennej $liczba wynosi 0 i nie wiem gdzie jest problem, wszystko powinno dzialac... w tabeli mam kolumne o nazwie `godzina` i jest rowna '8.00 - 8.45' . Prosze o pomoc

  1. <?php
  2. $godzina_orginal='8.00 - 8.45';
  3. ?>


  1. $zapytanie="Select `$dzien`,`godzina` from plan_1a where `godzina`='$godzina_orginal' ";
  2. $wynik=mysql_query($zapytanie);
  3. $liczba=mysql_num_rows($wynik);
  4.  
  5. echo $liczba;


Ten post edytował byczek1984 5.11.2008, 10:58:41
Go to the top of the page
+Quote Post
bregovic
post
Post #2





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Weź wrzuć:
  1. <?php
  2. ?>

Na samym końcu. Bo z tego co widzę to nie ma w tym kodzie żadnego problemu. A, i spróbuj dać:
  1. <?php
  2. $zapytanie= "Select `Poniedzialek`, `godzina` from plan_1a where `godzina`='".$godzina_orginal."';";
  3. ?>

Zamiast twojego.
No i koniecznie zacznij używać BBCode.

Ten post edytował bregovic 5.11.2008, 01:13:27


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
Ociu
post
Post #3





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Proszę dodać tag do tematu i odpowiednie bbCode do kodu.
Go to the top of the page
+Quote Post
nevt
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


czy Poniedzialek to na pewno nazwa kolumny w tabeli? a nie przypadkiem zwykły tekst? wtedy twoje zapytanie powinno wyglądać:
  1. <?php
  2. $zapytanie=("SELECT 'Poniedziałek', `godzina` FROM `plan_1a` WHERE `godzina`='$godzina_orginal';");
  3. ?>

a najlepiej popraw kod na:
  1. <?php
  2. $wynik=mysql_query($zapytanie) or die(mysql_error());
  3. ?>

pokaż tu rezultat...


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
byczek1984
post
Post #5





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

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


Witam , nic nie pomaga, probowalem wszystkich metod i zadna nie daje efektu....
Pokaze wam moja tabele , moze tutaj jest cos zlego ze nie wykonuje zapytania sql

  1. CREATE TABLE `plan_1a` (
  2. `id_plan` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `nr` varchar(20) NOT NULL DEFAULT '',
  4. `godzina` varchar(40) NOT NULL,
  5. `Poniedzialek` varchar(20) NOT NULL DEFAULT '',
  6. `Wtorek` varchar(20) NOT NULL DEFAULT '',
  7. `Sroda` varchar(20) NOT NULL DEFAULT '',
  8. `Czwartek` varchar(20) NOT NULL DEFAULT '',
  9. `Piatek` varchar(20) NOT NULL DEFAULT '',
  10. `Sobota` varchar(20) NOT NULL DEFAULT '',
  11. `Niedziela` varchar(20) NOT NULL DEFAULT '',
  12. PRIMARY KEY (`id_plan`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


P.s : natomiast jak podstawie aktualna godzina bez zadnego przypisywania do zmiennej To dziala: `godzina`='8.00 - 8.45' , natomiast jak dam
  1. `godzina`='$godzina_orginal';
nie pracuje....

Ten post edytował byczek1984 5.11.2008, 10:41:26
Go to the top of the page
+Quote Post
JoShiMa
post
Post #6





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

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


Problemem mogą być jakieś białe znaki na początku lub/i końcu stringu $godzina_orginal Spróbuj użyć wpierw trim()


--------------------
Go to the top of the page
+Quote Post
bregovic
post
Post #7





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


To znaczy nie otrzymujesz żadnego błędu po dodaniu "or die mysql_error()"?
Poza tym, dodaj tag do tematu, i użyj BBCode w oryginalnym poście.


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
byczek1984
post
Post #8





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

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


Tak nie otrzymuje zadnego komunikatu o bledzie jak dodam "or die mysql_error()"

Probowalem uzyc funkcji trim() do usuwanie nie potrzebnych pustych przestrzeni ale tez nic nie zadzialalo:>
Go to the top of the page
+Quote Post
JoShiMa
post
Post #9





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

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


No to jak już skonstruujesz sobie to zapytanie to je wyświetl i zobacz jak wygląda. Nam też pokaż.


--------------------
Go to the top of the page
+Quote Post
bregovic
post
Post #10





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Może ja głupieję o poranku (ach to śledzenie wyborów winksmiley.jpg) ale właśnie wypróbowałem twój kod, i działa jak trzeba - zakładając że masz rekord z odpowiednią godziną...


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
nevt
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


czy przypadkiem w tej linijce:
  1. <?php
  2. $godzina_orginal='8.00 - 8.45';
  3. ?>

nie jest użyty znak '–' czyli MYŚLNIK zamiast znaku '-' czyli MINUS questionmark.gif albo odwrotnie, w bazie masz myślnik zamiast minusa?


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
byczek1984
post
Post #12





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

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


Masz uzyty minus "-" tak jak w zmiennej... i nie trybi
Go to the top of the page
+Quote Post
bregovic
post
Post #13





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Pffft... może podaj pełen kod który próbujesz wykonać? Bo coś tu śmierdzi. A ja się dzisiaj myłem winksmiley.jpg


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
byczek1984
post
Post #14





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

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


Hmm oki tutaj jest caly kod
tutaj zawartosc tabeli
  1. INSERT INTO `plan_1a` (`id_plan`, `nr`, `godzina`, `Poniedzialek`, `Wtorek`, `Sroda`, `Czwartek`, `Piatek`, `Sobota`, `Niedziela`) VALUES
  2. (1, '1', '8.00 - 8.45', 'Polski', 'Matematyka', 'Religia', 'W-F', 'Historia', 'Matematyka', 'Matematyka'),
  3. (2, '2', '8.55 - 9.40', 'Polski', 'Biologia', 'Matematyka', 'WOLNE', 'Matematyka', 'Historia', 'Matematyka'),
  4. (3, '3', '9.50 - 10.35', 'Matematyka', 'Biologia', 'Matematyka', 'Biologia', 'Matematyka', 'Niemiecki', 'Matematyka'),
  5. (4, '4', '10.50 - 11.35', 'Historia', 'Matematyka', 'Geografia', 'Fizyka', 'Historia', 'Geografia', 'Matematyka'),
  6. (5, '5', '11.45 - 12.35', 'Matematyka', 'WOLNE', 'Matematyka', 'Matematyka', 'Matematyka', 'Matematyka', 'Matematyka'),
  7. (6, '6', '12.40 - 13.25', 'Matematyka', 'WOLNE', 'Matematyka', 'Matematyka', 'Matematyka', 'Religia', 'Matematyka');



KOD PHP
  1. <?php
  2.  
  3. $dzien=dzien_tyg(date("w"));  //aktualny dzien w postaci slownej (funkcje dzien_ty()tutaj uzylem wlasne)
  4. $godzina=date("H:i"); //aktualna godzina, lecz ustawimy samoczynie zeby wiedzial ze wkoncu ten kod dziala:) daje na 8.00 - 8.45 (taka sama jaka jest w bazie danych)
  5. $godzina_orginal='8.00 - 8.45';
  6.  
  7.  
  8. echo $godzina_orginal;  //wyswietla mi tu 8.00 - 8.45
  9. ?>



  1. $zapytanie="Select `$dzien`,`godzina` from plan_1a where `godzina`='$godzina_orginal' ";
  2. $wynik=mysql_query($zapytanie);
  3. $liczba=mysql_num_rows($wynik);
  4. echo $liczba;


Glownie ten kod polega na tym ze stronka pobiera automatycznie aktualna godzine czasu, nastepnie ta godzine porownuje z godzinami jakim ma w bazie danych( jest to dzienniczek ucznia, i np jesli aktualna godz bedzie 8.17 to mam funkcje ktora mowi ze w tym czasi trwa lekcja od 8.00 - 8.45 i przypisuje do zmiennej $godzina_orginal='8.00 - 8.45' i nastepnie to dodaje do zapytanie w sql, ale zapytanie nie dziala jak napisze `godzina`='$godzina_orginal' wyswietla 0 natomiast jak napisz `godzina`='8.00 - 8.45' wyswietla prawde.... I nie wiem czemu nie dziala jak przypisze zmienna.... tak jakby ta zmienna $godzina_orginal nie ma wartosci w zapytaniu...
Go to the top of the page
+Quote Post
bregovic
post
Post #15





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


I cease my case. U mnie, po zaimportowaniu MySQL'a i wykonaniu poniższego kodu, dostaję 1...
  1. <?php
  2. $dzien='Poniedzialek';
  3. $godzina_orginal='8.00 - 8.45';
  4.  
  5. $zapytanie="Select `$dzien`,`godzina` from plan_1a where `godzina`='$godzina_orginal' ";
  6. $wynik=mysql_query($zapytanie);
  7. $liczba=mysql_num_rows($wynik);
  8. var_dump($liczba);
  9. ?>


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
JoShiMa
post
Post #16





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

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


I możemy sobie tak gdybać. Weź wyświetl to zapytanie po tym jak je już skonstruujesz, bo inaczej nie dojdziesz co jest nie tak. A poza tym wszystkie problemy biorą się z beznadziejnej konstrukcji tabeli. Chcesz analizować godziny a używasz varcharów zamiast time. Beznadzieja.


--------------------
Go to the top of the page
+Quote Post
byczek1984
post
Post #17





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

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


Nio wiem ze mozna uzyc Time zamiast varchar, tylko jak uzyje time to jak zapisze godzine : 8.00 - 8.45 do bazy danych....
Go to the top of the page
+Quote Post
JoShiMa
post
Post #18





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

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


Cytat(byczek1984 @ 5.11.2008, 15:36:00 ) *
Nio wiem ze mozna uzyc Time zamiast varchar, tylko jak uzyje time to jak zapisze godzine : 8.00 - 8.45 do bazy danych....

W dwóch kolumnach typu time?


--------------------
Go to the top of the page
+Quote Post
byczek1984
post
Post #19





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

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


nio tak ale to znowu wiecej roboty... a czemu mi nie chce wyswietlac tak jak mam:> wszystko powinno sie zgadzac... wszystkiego probowalem usuwanie pustych przestrzeni, znakow kontrolnych itp trim() i jak podstawie jako zmienna nie wyswietli mi natomiast jak napisze :8.00 - 8.45 to mi zadziala
Go to the top of the page
+Quote Post
JoShiMa
post
Post #20





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

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


Cytat(byczek1984 @ 5.11.2008, 16:06:33 ) *
a czemu mi nie chce wyswietlac tak jak mam:>


A nie zgadniemy póki sobie nie wyświetlisz zapytania....


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

2 Stron V   1 2 >
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 Aktualny czas: 21.08.2025 - 23:38