Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak wyświetlić listę użytkowników z bazy
Tho
post 18.08.2011, 10:58:58
Post #1





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


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');


?

Ten post edytował Tho 18.08.2011, 10:59:25
Go to the top of the page
+Quote Post
Fifi209
post 18.08.2011, 11:01:24
Post #2





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

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


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ć?


--------------------
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
Tho
post 18.08.2011, 11:12:46
Post #3





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


  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ć
Go to the top of the page
+Quote Post
nospor
post 18.08.2011, 11:19:27
Post #4





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
webmaniak
post 18.08.2011, 11:27:02
Post #5





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

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


  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

Ten post edytował webmaniak 18.08.2011, 11:30:14


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
Tho
post 18.08.2011, 12:10:46
Post #6





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


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 "@"?
Go to the top of the page
+Quote Post
nospor
post 18.08.2011, 12:12:18
Post #7





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




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 @


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tho
post 18.08.2011, 13:00:34
Post #8





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


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
Go to the top of the page
+Quote Post
nospor
post 18.08.2011, 13:11:31
Post #9





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




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
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tho
post 18.08.2011, 13:21:34
Post #10





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


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.
Go to the top of the page
+Quote Post
nospor
post 18.08.2011, 13:22:15
Post #11





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tho
post 18.08.2011, 13:59:00
Post #12





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 26.07.2011

Ostrzeżenie: (20%)
X----


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?
Go to the top of the page
+Quote Post
nospor
post 18.08.2011, 14:02:03
Post #13





Grupa: Moderatorzy
Postów: 36 456
Pomógł: 6296
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 26.04.2024 - 13:28