Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP/MYSQL] problem ze skryptem
Roguś
post
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 14.12.2006
Skąd: Częstochowa

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


Probowałem wielu rzeczy i coś mi nie wychodzi :/ Chce by wyswietlilo mi slowo i trzeba bylo by dopisać znaczenie. Nastepnie sprawdzi je i napisze czy dobrze czy zle. Probowałem wrzucić ta cześć kodu od if ($_POST['sa'] == ok) do "pierwszego" While-a lecz jak klikałem submit to nic mi sie nie pokazywało. Teraz natomiast nie wyswietla $row['tlumaczenie'] i wyswietla blad. Ten skrypt moze być zle napisany bo juz z braku pomysłu pisałem co mi przyszło na myśl (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

  1. <?php
  2. $wybierz = mysql_query("SELECT * FROM slowa WHERE login='$in' AND kategoria='$kategoria' ORDER BY RAND() LIMIT 1")
  3. or die ("$wybierz");
  4. while ($row = mysql_fetch_array($wybierz))
  5. {
  6. echo $row['slowo'];
  7. echo '- <form method=POST><input type=text name="translate"><input type=hidden name="sa" value=ok><input type="submit" value="sprawdz"></form><br><br>';
  8.  
  9. }
  10. if ($_POST['sa'] == ok)
  11. {
  12. echo 'Prawidłowe tłumaczenie to';
  13. while ($row = mysql_fetch_array($wybierz)) {
  14. echo $row['tlumaczenie']; }
  15. if ($_POST['translate'] == $row['tlumaczenie']) {
  16. echo 'brawo trafiłeś :)';
  17.  
  18. }
  19. else { echo 'blad !!';}
  20. ?>
Go to the top of the page
+Quote Post
kossa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


z tym rand to jakaś bzdura, losujesz nazwę kolumny?! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

Cytat
$wybierz = mysql_query("SELECT * FROM slowa WHERE login='$in' AND kategoria='$kategoria' ORDER BY RAND() LIMIT 1")


2 razy pętla while do tego samego zapytania sql?

popraw to a pewnie zadziała a jak nie to mając już bardziej poprawny kod to pomoemy bo to teraz... ach

Łukasz
Go to the top of the page
+Quote Post
Roguś
post
Post #3





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 14.12.2006
Skąd: Częstochowa

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


Czemu uważasz ze to bzdura bo nie rozumiem (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)

Poprawiłem kod taki jak był pierwotnie
  1. <?php
  2. $wybierz = mysql_query("SELECT * FROM slowa WHERE login='$in' AND kategoria='$kategoria' ORDER BY RAND() LIMIT 1")
  3. or die ("$wybierz");
  4. while ($row = mysql_fetch_array($wybierz))
  5. {
  6. echo $row['slowo'];
  7. echo '- <form method=POST><input type=text name="translate"><input type=hidden name="sa" value=ok><input type="submit" value="sprawdz"></form><br><br>';
  8. if ($_POST['sa'] == ok)
  9. {
  10. echo 'Prawidłowe tłumaczenie to';
  11. echo $row['tlumaczenie'];
  12. if ($_POST['translate'] == $row['tlumaczenie']) {
  13. echo 'brawo trafiłeś :)';
  14.  
  15. }
  16. else { echo 'blad !!';}
  17. }
  18.  
  19.  
  20. }
  21. ?>



Nikt nie wie :/ ?

Ten post edytował Roguś 29.07.2007, 17:37:19
Go to the top of the page
+Quote Post
kossa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


Cytat(Roguś @ 29.07.2007, 18:37:24 ) *
Czemu uważasz ze to bzdura bo nie rozumiem (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)


http://dev.mysql.com/doc/refman/4.1/en/mat...l#function_rand

bo rand losuje liczbę a order by służy do ustawiania kolejności danych w wybranej kolumnie a u Ciebie zapytanie w bazie może przybrać po wykonaniu rand następującą wartość (końcówka): ... order by 0.70100469486881

a masz taką kolumnę w tabeli któa nazywa się 0.70100469486881? raczej nie

nie wiem skąd to wytrzasnąłeś ale usuń to bo to jakaś bzdura
Go to the top of the page
+Quote Post
Roguś
post
Post #5





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 14.12.2006
Skąd: Częstochowa

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


No to jak mam zrobić zeby mi losowało rekord ? Dziwne troche bo jak narazie to spełniało swoje zadanie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Roguś nie sluchaj go. Ty z tym rand masz jak najbardziej poprawnie. Nie Twoja wina że kossa nie zna podstawowej techniki losowego wyboru rekordu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

edit:
najlepsze jest to, ze rzucil ci linkiem do manuala a sam go nie przeczytal....
Cytat
ORDER BY RAND() combined with LIMIT is useful for selecting a random sample from a set of rows:
mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d -> ORDER BY RAND() LIMIT 1000;

@Kossa (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
kossa
post
Post #7





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


Człowiek uczy się całe życie, dzięki za zwrócenie uwagi.

Łukasz
Go to the top of the page
+Quote Post
Roguś
post
Post #8





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 14.12.2006
Skąd: Częstochowa

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


No dobra chłopaki ale to nadal nie mowi mi gdzie mam blad :/
Go to the top of the page
+Quote Post

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: 23.08.2025 - 02:19