Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MYSQL] problem ze skryptem
Forum PHP.pl > Forum > Przedszkole
Roguś
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 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. ?>
kossa
z tym rand to jakaś bzdura, losujesz nazwę kolumny?! 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
Roguś
Czemu uważasz ze to bzdura bo nie rozumiem 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 :/ ?
kossa
Cytat(Roguś @ 29.07.2007, 18:37:24 ) *
Czemu uważasz ze to bzdura bo nie rozumiem 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
Roguś
No to jak mam zrobić zeby mi losowało rekord ? Dziwne troche bo jak narazie to spełniało swoje zadanie tongue.gif
nospor
@Roguś nie sluchaj go. Ty z tym rand masz jak najbardziej poprawnie. Nie Twoja wina że kossa nie zna podstawowej techniki losowego wyboru rekordu 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 tongue.gif
kossa
Człowiek uczy się całe życie, dzięki za zwrócenie uwagi.

Łukasz
Roguś
No dobra chłopaki ale to nadal nie mowi mi gdzie mam blad :/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.