Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Token poprzez głupie pytanie
kuba_pilach
post 18.03.2011, 22:16:06
Post #1





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Witam, mam w bazie danych mysql tabelę "token" i tam mam kolumny: ID, PYTANIE, ODPOWIEDZ
O to mój kod:
  1.  
  2. <?php
  3. include "connection.php";
  4. if (!$_POST['submit']) {
  5. $zapytanie = mysql_query("select PYTANIE from token ORDER BY rand()")
  6. $wynik = mysql_fetch_assoc($zapytanie);
  7. $_SESSION['pytanie'] = $wynik['PYTANIE'];
  8. echo $wynik['PYTANIE'];
  9. ?>
  10. <form action="formularz.php" method="post">
  11. <input type="text" name="token" />
  12. <input type="submit" name="submit" value="Sprawdz">
  13. </form>
  14. <?php
  15. }
  16. if ($_POST['submit']) {
  17. $token = $_POST['token'];
  18. $zapytaniedrugie = mysql_query("select ODPOWIEDZ from token where PYTANIE='".$_SESSION['pytanie']."'")
  19. $wynikdrugi = mysql_fetch_assoc($zapytaniedrugie);
  20. echo $wynikdrugi['ODPOWIEDZ'];
  21. }
  22. ?>

Narazie chcę, by pokazało samą odpowiedź... ale nie pokazuje nic. Wie ktoś dlaczego? Dzięki z góry
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
sadistic_son
post 18.03.2011, 22:34:38
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


W zapytaniu z linijki 6 dodaj LIMIT 1.

Ten post edytował sadistic_son 18.03.2011, 22:34:47


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
kuba_pilach
post 18.03.2011, 22:40:31
Post #3





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Dzięki, ale bez zmian... nadal nic nie pokazuje

A i dodam jeszcze, że pokazuje samo pytanie, ale odpowiedzi już nie...
Go to the top of the page
+Quote Post
gorzat
post 18.03.2011, 22:41:58
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 3
Dołączył: 18.03.2011

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


zamiast where sprobuj like
Go to the top of the page
+Quote Post
kuba_pilach
post 18.03.2011, 22:45:17
Post #5





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Zamieniłem where na like i teraz wyskakuje mi następujący błąd:
Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'like PYTANIE='Jak ma na imi? Monika?' LIMIT 1' at line 1
Go to the top of the page
+Quote Post
gorzat
post 18.03.2011, 23:00:22
Post #6





Grupa: Zarejestrowani
Postów: 23
Pomógł: 3
Dołączył: 18.03.2011

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


no tak, ale dostosuj zapytanie do LIKE, dodaj %
Go to the top of the page
+Quote Post
Fifi209
post 18.03.2011, 23:36:48
Post #7





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(gorzat @ 18.03.2011, 22:41:58 ) *
zamiast where sprobuj like

A nie przypadkiem
  1. WHERE pole LIKE 'wyrazenie'


?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
sadistic_son
post 18.03.2011, 23:38:10
Post #8





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cytat(gorzat @ 18.03.2011, 22:41:58 ) *
zamiast where sprobuj like
CO ?! WHERE stosuje się razem z LIKE:
  1. SELECT * FROM tabela WHERE costam LIKE '%kawalek_szukania%'


Ten post edytował sadistic_son 18.03.2011, 23:38:45


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
kuba_pilach
post 19.03.2011, 16:14:42
Post #9





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


To zmieniłem na:
  1. $zapytaniedrugie = mysql_query("select ODPOWIEDZ from token where PYTANIE like '%".$_SESSION['pytanie']."%'")

Ale nadal nic...
Go to the top of the page
+Quote Post
Fifi209
post 19.03.2011, 16:39:41
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Nadal nic? A czym się to nic objawia? Pokaż swój aktualny cały kod.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
kuba_pilach
post 19.03.2011, 17:30:24
Post #11





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Dobra, daję:
  1. <?php
  2. include "connection.php";
  3. if (!$_POST['submit']) {
  4. $zapytanie = mysql_query("select PYTANIE from token ORDER BY rand() LIMIT 1")
  5. $wynik = mysql_fetch_assoc($zapytanie);
  6. $_SESSION['pytanie'] = $wynik['PYTANIE'];
  7. echo $wynik['PYTANIE'];
  8. ?>
  9. <form action="formularz.php" method="post">
  10. <input type="text" name="token" />
  11. <input type="submit" name="submit" value="Sprawdz">
  12. </form>
  13. <?php
  14. }
  15. if ($_POST['submit']) {
  16. $token = $_POST['token'];
  17. $zapytaniedrugie = mysql_query("select ODPOWIEDZ from token where PYTANIE like '%".$_SESSION['pytanie']."%'")
  18. $wynikdrugi = mysql_fetch_assoc($zapytaniedrugie);
  19. echo $wynikdrugi['ODPOWIEDZ'];
  20. }
  21. ?>


Wie ktoś może już, co jest źle??
Go to the top of the page
+Quote Post
everth
post 19.03.2011, 17:43:13
Post #12





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


  1. //Przed linia 2
  2. // ...
  3. //Przed linia 8
  4. var_dump($wynik);
  5. // ...
  6. //zamiast linii 19
  7. $query = "select ODPOWIEDZ from token where PYTANIE like '%".$_SESSION['pytanie']."%'";
  8. var_dump($query);
  9. mysql_query($query);
  10. // ...
  11. //Przed linia 22
  12. var_dump($wynikdrugi);

Zobacz co ci wtedy wyrzuca.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
SoSiker
post 19.03.2011, 17:47:03
Post #13





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

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


Cytat(kuba_pilach @ 18.03.2011, 22:45:17 ) *
Zamieniłem where na like i teraz wyskakuje mi następujący błąd:
Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'like PYTANIE='Jak ma na imi? Monika?' LIMIT 1' at line 1


Może problem z kodowaniem? Pierwsze zapytanie coś zwraca?
Go to the top of the page
+Quote Post
kuba_pilach
post 19.03.2011, 17:54:14
Post #14





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Ok, piszę... ta strona co zwykle była dobrze wygląda:
Kod
Notice: Undefined index: submit in C:\serwer\apache\htdocs\nauka\formularz.php on line 5
array(1) { ["PYTANIE"]=> string(22) "Jak ma na imi? Monika?" } Jak ma na imi? Monika?
(<tu pole tekstowe jest <input>)
Notice: Undefined index: submit in C:\serwer\apache\htdocs\nauka\formularz.php on line 19


Na stronie, która zwykle była pusta pisze:
Kod
string(73) "select ODPOWIEDZ from token where PYTANIE like '%Jak ma na imi? Monika?%'"
Notice: Undefined variable: zapytaniedrugie in C:\serwer\apache\htdocs\nauka\formularz.php on line 24

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\serwer\apache\htdocs\nauka\formularz.php on line 24
bool(false)

Go to the top of the page
+Quote Post
everth
post 19.03.2011, 18:40:18
Post #15





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Wychodzi na to że kodowanie. Ustaw sobie kodowanie strony na utf8. W moich zmianach jest błąd. Powinno być:
  1. //Przed linia 2
  2. // ...
  3. //Przed linia 8
  4. var_dump($wynik);
  5. // ...
  6. //zamiast linii 19
  7. $query = "select ODPOWIEDZ from token where PYTANIE like '%".$_SESSION['pytanie']."%'";
  8. var_dump($query);
  9. $zapytaniedrugie = mysql_query($query);
  10. // ...
  11. //Przed linia 22
  12. var_dump($wynikdrugi);

Ale to szczegół. Twoim problemem jest to że dostajesz pytanie pozbawione polskich znaków więc nic nie znajdziesz w bazie.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
kuba_pilach
post 19.03.2011, 20:25:48
Post #16





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Mam problem z tym kodowaniem ...
Niby wszystko dobrze, a jednak problem...
W bazie danych te dwie kolumny mam w utf-8-polish-ci, a w pliku ustawiłem utf-8 bez BOM i w html:
  1. <meta charset="UTF-8">

I nadal nie wyświetla mi ę... Wie ktoś o co może chodzić?
Go to the top of the page
+Quote Post
everth
post 19.03.2011, 20:41:06
Post #17





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Tutorial o kodowaniu (zobacz też na część dotyczącą wysyłanych nagłówków). Dodatkowo przy połączeniu z bazą ustaw sobie "set names utf8".


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
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: 29.06.2025 - 15:33