Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] wyswietlanie wyników z bazy danych.
Forum PHP.pl > Forum > Przedszkole
-Kokosz-
Witam

mam problem z kawałkiem kodu - mianowicie, wyświetlaniem listy osób pobranej z bazy mysql smile.gif
Mam tabelę users a w niej kolumnę nick.

  1. <select size="1" name="opponent">
  2. <?php
  3. mysql_connect ("adres","baza", "pw") or die ("Could not connect");
  4. $result2 = mysql_db_query ("baza", "select nick from users ORDER BY last ASC") or die ("Query failed");
  5. while ($row2=mysql_fetch_array($result2)) {
  6. $nick=$row2["nick"];
  7. print "<option>$nick</option>";
  8. }
  9. ?>
  10. </select>


i dlaczego to nie działa?

z góry dziękuję za pomoc smile.gif

iwosz
Zacznij od zmiany mysql_db_query() na mysql_select_db() + mysql_query() na dobry początek smile.gif
Cytat
mysql_db_query() - This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

  1. This function is deprecated, do not use this function. Use mysql_select_db() and mysql_query() instead.

Mogło by to wyglądać tak:
  1. <?php
  2. if (!$link = mysql_connect("adres","baza", "pw")) {
  3. echo 'Could not connect to mysql';
  4. }
  5. if (!mysql_select_db("baza", $link)) {
  6. echo 'Could not select database';
  7. }
  8. $result2 = mysql_query("select nick from users ORDER BY last ASC", $link);
  9.  
  10. echo '<select size="1" name="opponent">';
  11. while ($row2=mysql_fetch_array($result2)) {
  12. echo '<option value="'.$row2["nick"].'">'.$row2["nick"].'</option>';
  13. }
  14. echo '</select>';
  15. ?>

Dokładnie jak nospor zauważył, mógł byś jeszcze opisać jaki dostajesz błąd smile.gif
nospor
A czymże objawia się to nie działanie? Może dostajesz jakiś błąd??
-Kokosz-
No rzeczywiście, teraz trochę poczytałem i widzę że często korzystam z archaicznych funkcji, a to z tego powodu że uczę się na przerabianiu starszych skryptów dla własnych celów. Trzeba będzie pobawić się w zmienianie funkcji na nowsze i bardziej eleganckie smile.gif

@nospor
Zapomniałem napisać co jest nie tak, rzeczywiście. Objaw jest bardzo prosty. Po prostu nic nie wyświetla. Zero błędów.

Natomiast jest inaczej w przypadku kodu który podał Iwosz.
Tutaj wyrzuca:
  1. Parse error: syntax error, unexpected ',' in /(..)/skrypt.php on line 89


linia kodu 89:
  1. if (!mysql_select_db(("users", $link)) {



-Kokosz-
Post pod postem, ale goście nie mają prawa edycji:

znalazłem błąd
było:
  1. if (!mysql_select_db(("users", $link)) {


A powinno być:
  1. if (!mysql_select_db("users", $link)) {


był po prostu o jeden nawias za dużo smile.gif

Ale to i tak nie rozwiązało problemów ! dalej nic nie wyświetla.. żadnych błędów..
nospor
Ok, to teraz zapoznaj się z tematem
Temat: Jak poprawnie zada pytanie
i zastosuj do podanych tam wskazówek
-Kokosz-
sorry największe - za dużo spraw na głowie, zamotałem się. Oczywiście skrypt od iwosza działa jak najbardziej poprawnie ! Wina była po mojej stronie - niezamknięty znacznik nie wyświetlał skryptu.. smile.gif Teraz trybi w najlepszym porządku, za co ogromne dzięki @iwosz!

Lecz pojawił się następny problem. Mianowicie - dodanie formularza do bazy danych..

Oto moje pliki

  1. <form action="dodaj.php" method="post">
  2. Choose the opponent:
  3. <?php
  4. if (!$link = mysql_connect("DANE DO BAZY")) {
  5. echo 'Could not connect to mysql';
  6. exit;
  7. }
  8. if (!mysql_select_db('DANE DO BAZY', $link)) {
  9. echo 'Could not select database';
  10. exit;
  11. }
  12. $result2 = mysql_query("select user_login from users", $link);
  13.  
  14. echo '<select size="1" name="opponent">';
  15. while ($row2=mysql_fetch_array($result2)) {
  16. echo '<option value="'.$row2["user_login"].'">'.$row2["user_login"].'</option>';
  17. }
  18. echo '</select>';
  19. ?>
  20. <br>
  21. <br>
  22. Who win this battle?<br>
  23. <input type="radio" name="wynik" value="Win - <?php echo $_SESSION['user_login']; ?>" />Me
  24. <input type="radio" name="wynik" value="Lost - <?php echo $_SESSION['user_login']; ?>" />Opponent
  25. <br>
  26. <br>
  27. What rules you played? (<b>you can choose more than 1 !)</b><br>
  28. <input type="checkbox" name="rules" value="1000 0pt ," />1000 0pt<br />
  29. <input type="checkbox" name="rules" value="5000 0pt ," />5000 0pt<br />
  30. <input type="checkbox" name="rules" value="5000 10pt ," />5000 10pt<br />
  31. <input type="checkbox" name="rules" value="5000 20pt no dc ," />5000 20pt no dc<br />
  32. <input type="checkbox" name="rules" value="$$$ def 0pt ," />$$$ def 0pt<br />
  33. <input type="checkbox" name="rules" value="$$$ def 10pt ," />$$$ def 10pt<br />
  34. <input type="checkbox" name="rules" value="none" />None (T/W)<br />
  35. <br>
  36. Result:<br>
  37. <input type="radio" name="result" value="2:0" />2:0<br />
  38. <input type="radio" name="result" value="2:1" />2:1<br />
  39. <input type="radio" name="result" value="T/W" />T/W<br />
  40. <br>
  41. <br>
  42. <input type="submit" value="ADD RESULT" />
  43. </form>


Pliczek dodaj.php
  1. <?php
  2. // odbieramy dane z formularza
  3. $opponent = $_POST['opponent'];
  4. $wynik = $_POST['wynik'];
  5. $winner = $_POST['winner'];
  6. $rules = $_POST['rules'];
  7. $result = $_POST['result'];
  8.  
  9. if($opponent and $wynik and $winner and $rules and $result) {
  10.  
  11. // łączymy się z bazą danych
  12. $connection = @mysql_connect('DANE DO BAZY')
  13. or die('Brak połączenia z serwerem MySQL');
  14. $db = @mysql_select_db('walki', $connection)
  15. or die('Nie mogę połączyć się z bazą danych');
  16.  
  17. // dodajemy rekord do bazy
  18. $ins = @mysql_query("INSERT INTO walki SET result='$result'");
  19.  
  20. if($ins) echo "Rekord został dodany poprawnie";
  21. else echo "Błąd nie udało się dodać nowego rekordu";
  22.  
  23. mysql_close($connection);
  24. }
  25.  
  26. ?>


oto moja baza danych:
  1. CREATE TABLE walki (
  2. id int( 11 ) NOT NULL AUTO_INCREMENT ,
  3. winner varchar( 100 ) NOT NULL DEFAULT '',
  4. (...) varchar( 100 ) NOT NULL DEFAULT '',
  5. result varchar( 100 ) NOT NULL DEFAULT '',
  6. PRIMARY KEY ( id )
  7. );

Po kliknięciu ADD RESULT nie wyświetla nic. Absolutnie nic. Nie dodaje też rekordu w bazie danych (sprawdzałem kilka razy).
Oczywiście mam tabelę walki a w niej wszystkie kolumny. Co jest nie tak? Z góry dziękuję za pomoc ! smile.gif
nospor
Poraz ostatni proszę, byś zastosował się do tego tematu
Temat: Jak poprawnie zada pytanie
W przeciwnym wypadku temat zostanie zamknięty
-Kokosz-
już nie ważne smile.gif Poczytałem i znalazłem błąd w skrypcie. Temat można zamknąć, a moderatora proszę o przyznanie iwoszowi punktu pomógł .
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.