Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wyświetlić listę użytkowników z bazy
Forum PHP.pl > Forum > Przedszkole
Tho
Mam tabelę users i tabelę(<table>) na stronie, jak wyświetlić te dane z tej tabeli na stronie? w jednej kolumnie(<td>) nicki(kolumna name w bazie), w drogiej opis użytkownika(kolumna description).

NIe chodzi mi o to jak zbudować kolumnę, ale jak pobrać te dane i druga sprawa, może nawet ważniejsza - jaki jest najlepszy sposób na łączenie się z bazą danych?

  1. <?php
  2.  
  3. try
  4. {
  5. $pdo = new PDO('mysql:host=localhost;dbname=produkty', 'root', 'root', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  6. echo 'Połączenie nawiązane!';
  7. }
  8. catch(PDOException $e)
  9. {
  10. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  11. }


Czy

  1. $connection = @mysql_connect('localhost', 'root', 'haslo')
  2. or die('Brak połączenia z serwerem MySQL');
  3. $db = @mysql_select_db('baza', $connection)
  4. or die('Nie mogę połączyć się z bazą danych');


?
Fifi209
Ja preferuję PDO i Tobie też bym polecał, choćby ze względu na bezpieczeństwo.

A jak wysłać zapytanie do bazy danych nie wiesz? Czy nie wiesz jak ma wyglądać?
Tho
  1. $pokaz_uzytkownik1 = @mysql_query("SELECT name FROM users WHERE id=1");


oneeyedsmiley02.png ?

Jestem początkujący, bardzo... wink.gif

Chodzi mi o to jak pobrać danę(wszystkie naraz) by móc je sortować i by wyświetlić tablicę(tak to się nazywa?).

Tak to miałoby wyglądać
nospor
Cytat
Jestem początkujący, bardzo...

1) To pisz w dziale przedszkole - przenosze
2) To nie zwalnia cię by zajrzeć do podstaw php + mysql - w pierwszym lepszym kursie php + mysql dostępnym za darmo masz wyjaśnione jak pobiera sie dane z bazy i jak się je wyświetla
webmaniak
  1. $pokaz = mysql_query("SELECT * FROM users");
- wtedy wyświetlasz wszystko
  1. while($wyswietl=mysql_fetch_array($pokaz))
  2. {
  3. echo 'Nick '.$wyswietl['name'].'<br/>';
  4. echo 'opis '.$wyswietl['description'].'<br/>';
  5. }

oczywiście jest to tylko przykłądowy kod, musisz sam sobie dostosować do swoich potrzeb resztę.
Mam nadzięję że trochę Ci przybliżyłem te zapytania, polecam również kurs ze strony:
http://php.praktyka.prv.pl/ - sam z niego korzystałem i nie raz jeszcze korzystam smile.gif
Tho
Dzięki, ale właśnie nie jest tak kolorowo, już wcześniej znalazłem jak to zrobić, zrobiłem właśnie coś takiego:

  1. $pokaz = mysql_query("SELECT * FROM users")
  2. or die('Błąd zapytania');


No i gdy wykonuję to zapytanie w phpmyadmin ładnie pobiera, ale na stronie pokazuje się: "Błąd zapytania". ohno-smiley.gif

Jeszcze takie pytanie-ciekawostka wink.gif Dlaczego przy łączeniu się z bazą danych używa się:

  1. @mysql_select_db('baza', $connection)


A przy pobieraniu nie dajemy "@"?
nospor
Na obydwa Twoje pytania odpowiedź znajduje się tu:
Temat: Jak poprawnie zada pytanie
przeczytaj i zastosuj się do wskazówek. Masz tam też wyjasnione małpy @
Tho
Dzięki bardzo, ale nie jest tam wyjaśnione dlaczego po pobraniu na stronie wyświetla się błąd a w phpmyadmin pobiera normalnie. Dlatego proszę o pomoc lub odesłanie do artykułu gdzie będzie napisane to akurat, bo z tamtego dowiedziałem się tylko o "małpach".

  1. <?php
  2.  
  3. // sprawdzacz błędów
  4. ini_set('display_errors','1');
  5.  
  6. // nawiazujemy polaczenie
  7. $connection = mysql_connect('localhost', 'root', '')
  8. // w przypadku niepowodznie wyświetlamy komunikat
  9. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  10. // połączenie nawiązane ;-)
  11. echo "Udało się połączyć z serwerem!<br />";
  12. // nawiązujemy połączenie z bazą danych
  13. $db = mysql_select_db('baza', $connection)
  14. // w przypadku niepowodzenia wyświetlamy komunikat
  15. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  16. // połączenie nawiązane ;-)
  17. echo "Udało się połączyć z bazą dancych!";
  18. // zamykamy połączenie
  19. mysql_close($connection);
  20.  
  21.  
  22. /* zapytanie do konkretnej tabeli */
  23. $wynik = mysql_query("SELECT * FROM users")
  24. or die('Błąd zapytania');
  25.  
  26. $sql = 'SELECT * FROUM users';
  27. echo 'ZAPYTANIE:'.$sql;
  28. mysql_query($sql) or die('BŁĄD:'.mysql_error());
  29.  
  30. /*
  31. wyświetlamy wyniki, sprawdzamy,
  32. czy zapytanie zwróciło wartość większą od 0
  33. */
  34. if(mysql_num_rows($wynik) > 0) {
  35. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  36. echo "<table cellpadding=\"2\" border=1>";
  37. while($r = mysql_fetch_array($wynik)) {
  38. echo "<tr>";
  39. echo "<td>".$r[1]."</td>";
  40. echo "<td>".$r[2]."</td>";
  41. echo "<td>
  42. <a href=\"index.php?a=del&amp;id={$r[0]}\">DEL</a>
  43. <a href=\"index.php?a=edit&amp;id={$r[0]}\">EDIT</a>
  44. </td>";
  45. echo "</tr>";
  46. }
  47. echo "</table>";
  48. }
  49.  
  50. ?>


Skrypt napisany z pomocą artykułu
nospor
Tam jest napisane, że gdy masz blad zapytania to masz wyświetlać mysql_error() a nie żadne nic nie mowiące "Błąd zapytania".
Jest to napisane po polsku, prostym by się mogło wydawać językiem, więc nie wiem czemu tego nie doczytałeś.

  1. $wynik = mysql_query("SELECT * FROM users")
  2. or die('Błąd zapytania');
  3.  
  4. $sql = 'SELECT * FROUM users';
  5. echo 'ZAPYTANIE:'.$sql;
  6. mysql_query($sql) or die('BŁĄD:'.mysql_error());


Widzę ze robisz mysql_error()..... ino jest małe ale... przecież ty je robisz po die() wiec już do tego nie dojdzie :/ Zduplikowałeś bez namysłu kod. Tak ma być:
  1. $sql = 'SELECT * FROM users';
  2. echo 'ZAPYTANIE:'.$sql;
  3. $wynik = mysql_query($sql) or die('BŁĄD:'.mysql_error());

Masz mysql_error wyswietlac dla aktualnego zapytania a nie dopisywać kolejne takie samo.

// zamykamy połączenie
mysql_close($connection);

Połączenie należy zamykać po wykonaniu zapytań a nie przed. Nie chce mi się wierzyć, że tak było w arcie z którego kopiujesz
Tho
No tak, roztrzepany dzisiaj jestem smile.gif

Gdy już to zrobiłem pokazuje się "No database selected", dlaczego, jeśli wyraźnie widać że jest podana i ISTNIEJE, w phpmyadmin.
nospor
Mój ostatni edit z ostatniego posta:
Cytat
// zamykamy połączenie
mysql_close($connection);

Połączenie należy zamykać po wykonaniu zapytań a nie przed. Nie chce mi się wierzyć, że tak było w arcie z którego kopiujesz
Tho
A po co właściwie dodawać tę linijkę jeśli bez tego działa, a jeśli dodasz to w złym miejscu to psuje skrypt.

Cytat
mysql_close() zamyka nie stałe połączenie do serwera MySQL, które zostało skojarzone z podanym identyfikatorem połączenia. Jeśli identyfikator_połączenia nie został określony, zostanie użyte ostatnio używane połączenie.

Używanie mysql_close() nie jest zwykle konieczne, ponieważ nie stałe linki są automatycznie zamykane na końcu wykonywania skryptu. Patrz także zwalnianie zasobów.


To kiedy jest konieczne jeśli zostało stworzone?
nospor
close zamyka połączenie i zwalnia zużyte zasoby. Jeśli potrzebujesz w danej chwili zwolnić zasoby to robisz close.
Jak nie potrzebujesz to nie używaj. Jako osoba poczatkująca podejrzewam, ze nie będziesz narazie potrzebował zwalniania zasobów, więc nie zaprzątaj sobie tym głowy wink.gif
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.