Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Szukam] Skryptu który pobierze elementy tabeli mysql
Forum PHP.pl > Forum > Przedszkole
krzysiuus
Tak jak w temacie poszukuję gotowego skryptu który połączy się z bazą danych mysql potem wypisze elementy z tablicy.

Wiem że to raczej pytanie na odpowiedz typu "KURS PHP/MYSQL"

Ale już dużo stron przejzałem i nic nie chce działać.

Proszę o pomoc.
blooregard
Chyba sobie żarty robisz.
Gotowca masz nawet w doumentacji mysql_query na php.net.

Przenoszę.
krzysiuus
Fajnie ale dałem coś takiego i nie działa:

  1. <?php
  2. $sql_conn = mysql_connect('localhost', 'login', 'haslo')
  3. or die('Nie mogłem połaczyć się z bazą danych');
  4. $zapytanie = "SELECT `url`,`title`,`description` FROM `tabela`";
  5. $idzapytania = mysql_query($zapytanie);
  6. echo '<table>';
  7. while ($wiersz = mysql_fetch_row($idzapytania)) {
  8. echo '<tr><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td><td>'. $wiersz[2] .'</td><td>'. $wiersz[3] .'</td></tr>';
  9. }
  10. echo '</table>';
  11. mysql_close($sql_conn);
  12. ?>
blooregard
A jakiś komunikat błędu?
krzysiuus
Nic białe tło... chyba coś źle wlepałem ten kod?
Rysh
Wygląda OK.

Dodaj w 4 i 6 linijce na końcu:

Jakieś błędy wypluwa?
krzysiuus
teraz wyskakuje coś takiego:

  1. '; while ( = mysql_fetch_row()) { echo ''. .''. .''. .''. .''; } echo ''; mysql_close(); ?>



po wpisaniu:

  1. <?php
  2. $sql_conn = mysql_connect('localhost', 'loginl', 'haslo')
  3. or die('Nie mogłem połaczyć się z bazą danych');
  4. $zapytanie = "SELECT `url`,`title`,`description` FROM `tabela`";
  5. $idzapytania = mysql_query($zapytanie) or die (mysql_error());
  6. echo '<table>';
  7. while ($wiersz = mysql_fetch_row($idzapytania)) {
  8. echo '<tr><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td><td>'. $wiersz[2] .'</td><td>'. $wiersz[3] .'</td></tr>';
  9. }
  10. echo '</table>';
  11. mysql_close($sql_conn);
  12. ?>
DiH
Wiem, że to głupie, ale na pewno masz MySQL na serwerze? Wygląda na to, że przed tym kodem gdzieś nie domknąłeś cudzysłowiu.
Rysh
Cytat(DiH @ 25.03.2010, 23:56:57 ) *
Wiem, że to głupie, ale na pewno masz MySQL na serwerze? Wygląda na to, że przed tym kodem gdzieś nie domknąłeś cudzysłowiu.

By mu zabiło już na połączeniu do mysql_connect wykonywanie kodu.

Czemu pobierasz zapytaniem url, title i desctription a masz 4x $row?

Spróbuj z tym:
  1. <?php
  2. mysql_connect("localhost", "login", "haslo") or die("Wystąpił błąd: ". mysql_error());
  3. mysql_select_db('baza') or die ("Wystąpił błąd: ". mysql_error());
  4.  
  5. $sql = mysql_query("SELECT `url`,`title`,`description` FROM `tabela`") or die ("Wystąpił błąd: ". mysql_error());
  6.  
  7. echo "<table>";
  8. while ($wynik = mysql_fetch_assoc($sql)) {
  9. echo "<tr><td>". $wiersz['id'] ."</td><td>". $wynik['url'] ."</td><td>". $wynik['title'] ."</td><td>". $wynik['description'] ."</td></tr>";
  10. }
  11. echo "</table>";
  12.  
  13. ?>
blooregard
Przede wszystkim daj na początek skryptu:
  1. <?php
  2. ini_set('display_errors' , 1);
  3. error_reporing(E_ALL);

To nam rozjaśni sytuację, bo tak, to możemy się bawić we wróżki do Bożego Narodzenia.
qrooel
Cytat(krzysiuus @ 26.03.2010, 00:28:25 ) *
  1. mysql_close($sql_conn);


Wywal to i powinno być dobrze. ;P
Fifi209
Cytat(Rysh @ 26.03.2010, 00:08:02 ) *
By mu zabiło już na połączeniu do mysql_connect wykonywanie kodu.

Czemu pobierasz zapytaniem url, title i desctription a masz 4x $row?

Spróbuj z tym:
  1. <?php
  2. mysql_connect("localhost", "login", "haslo") or die("Wystąpił błąd: ". mysql_error());
  3. mysql_select_db('baza') or die ("Wystąpił błąd: ". mysql_error());
  4.  
  5. $sql = mysql_query("SELECT `url`,`title`,`description` FROM `tabela`") or die ("Wystąpił błąd: ". mysql_error());
  6.  
  7. echo "<table>";
  8. while ($wynik = mysql_fetch_assoc($sql)) {
  9. echo "<tr><td>". $wiersz['id'] ."</td><td>". $wynik['url'] ."</td><td>". $wynik['title'] ."</td><td>". $wynik['description'] ."</td></tr>";
  10. }
  11. echo "</table>";
  12.  
  13. ?>


Najpierw mu zwracasz uwagę po czym robisz ten sam błąd. W zapytaniu nie dodałeś `id` smile.gif

Cytat(qrooel @ 26.03.2010, 10:18:55 ) *
Wywal to i powinno być dobrze. ;P

Tylko po co? Jak masz źle doradzać to nie rób tego wcale.
qrooel
Cytat(fifi209 @ 26.03.2010, 11:13:07 ) *
Tylko po co? Jak masz źle doradzać to nie rób tego wcale.


Ostatnio miałem taki sam problem, mimo, że kod był napisany poprawnie, to przeglądarka wyświetlała pustą stronę. Po sprawdzaniu każdej części kodu z osobna, okazało się, że funkcja mysql_close(); powodowała problem, po jej usunięciu problem zniknął. Jestem początkujący - ale taki sam problem (podobny) rozwiązałem właśnie tak.
Fifi209
Cytat(qrooel @ 26.03.2010, 11:23:27 ) *
Ostatnio miałem taki sam problem, mimo, że kod był napisany poprawnie, to przeglądarka wyświetlała pustą stronę. Po sprawdzaniu każdej części kodu z osobna, okazało się, że funkcja mysql_close(); powodowała problem, po jej usunięciu problem zniknął. Jestem początkujący - ale taki sam problem (podobny) rozwiązałem właśnie tak.


Widocznie połączenie zamknąłeś w nieodpowiednim miejscu.
qrooel
Cytat(fifi209 @ 26.03.2010, 12:25:40 ) *
Widocznie połączenie zamknąłeś w nieodpowiednim miejscu.


No właśnie nie, bo robiłem wszystko zgodnie z książką. Przyczyny tego stanu rzeczy nie znam - ale to inny temat, w sumie nie powinienem tutaj zabierać głosu. :-)
Fifi209
Cytat(qrooel @ 26.03.2010, 12:01:02 ) *
No właśnie nie, bo robiłem wszystko zgodnie z książką. Przyczyny tego stanu rzeczy nie znam - ale to inny temat, w sumie nie powinienem tutaj zabierać głosu. :-)

W książkach są liczne błędy, pamiętaj o tym.
thomson89
Masz klasę. Mam nadzieję, że chociaż wywoływać klasy umiesz?

Jak nadal nie będzie działało to znaczy że:
-> jesteś totalnie nie w temacie
-> złe dane dostępu do serwera
-> ten serwer nie istnieje

biggrin.gif

  1. class baza
  2. {
  3. var $serwer = 'serwer';
  4. var $baza = 'baza';
  5. var $uzytkownik = 'login';
  6. var $haslo = 'haslo';
  7.  
  8. public function __construct()
  9. {
  10. $polaczenie = mysql_connect($this -> serwer, $this -> uzytkownik, $this -> haslo);
  11. if(!$polaczenie)
  12. return false;
  13. else
  14. {
  15. mysql_select_db($this -> baza, $polaczenie);
  16. mysql_query('SET NAMES utf8');
  17. mysql_query('SET CHARACTER utf8');
  18. return $polaczenie;
  19. }
  20. }
  21. }
luck
Sorki, że tak się wtrącę, ale konstruktor może zwracać wartość?
krzysiuus
Wielkie dzięki za porady zastosowałem się do nich i jest git działa.

Teraz mam drugie pytanie jak mogę zrobić aby np. powiem po ludzku
użytkownik chce dodać stronę do katalogu... klika DODAJ STRONĘ przekierowuje go do skryptu gdzie są pola nazwa url itp. Chcę jeszcze dodać tam pole z formularzem rozwijanym a mianowicie wybór kategorii...

Jak mam to zacząć robić jaką funkcją pobrać nazwy poszczególnych kategorii z bazy itp?
Fifi209
Cytat(luck @ 26.03.2010, 16:54:48 ) *
Sorki, że tak się wtrącę, ale konstruktor może zwracać wartość?


Owszem, ale nie w przykładzie podanym przez kolegę...

  1. <?php
  2.  
  3. class test {
  4.  
  5. public function __construct() {
  6. return 'test';
  7. }
  8.  
  9. }
  10.  
  11. class test2 extends test{
  12.  
  13. public function x() {
  14. return parent::__construct();
  15. }
  16.  
  17. }
  18.  
  19. $obj = new test2;
  20.  
  21. echo $obj->x();
  22.  
  23. ?>


Coś takiego.
luck
Cytat(fifi209 @ 26.03.2010, 21:07:06 ) *
Owszem, ale nie w przykładzie podanym przez kolegę...

Źle się wyraziłem, chodziło mi raczej o to, czy konstruktor powinien zwracać wartość w podanym wyżej przykładzie. To że może coś zwracać jest jasne. W tym konkretnym wypadku użyłbym po prostu singletona. Ale to tak na marginesie, wyjdzie że się czepiam, a bynajmniej nie o to mi chodzi. Spytałem z czystej ciekawości.
Pozdrawiam.
Fifi209
Cytat(luck @ 26.03.2010, 23:02:43 ) *
Źle się wyraziłem, chodziło mi raczej o to, czy konstruktor powinien zwracać wartość w podanym wyżej przykładzie. To że może coś zwracać jest jasne. W tym konkretnym wypadku użyłbym po prostu singletona. Ale to tak na marginesie, wyjdzie że się czepiam, a bynajmniej nie o to mi chodzi. Spytałem z czystej ciekawości.
Pozdrawiam.

Użyłbyś singletona nie bacząc na to, że ktoś może potrzebować otworzyć dwa połączenia równocześnie? tongue.gif
luck
Cytat(fifi209 @ 27.03.2010, 07:00:08 ) *
Użyłbyś singletona nie bacząc na to, że ktoś może potrzebować otworzyć dwa połączenia równocześnie? tongue.gif

Zauważ kolego, że zaznaczyłem iż chodzi mi o ten konkretny przypadek, który został przedstawiony. Tam użyto tylko jednego połączenia.
Edit: No i żeby nie robić lekkiego offtopa, to jeszcze trochę na temat ostatniego pytania autora wątku: przecież napisałeś, że już udało Ci się pobrać dane z bazy. Tak samo odczytasz listę kategorii:
  1. /* Tu polaczenie z baza i wszystko jak juz wczesniej Ci podano */
  2. $sql = mysql_query("SELECT `id`,`name` FROM `kategorie` ORDER BY `name`") or die ("Wystąpił błąd: ". mysql_error());
  3. while ($kat = mysql_fetch_assoc($sql)) {
  4. echo 'kategoria '. $kat['name'] .' o id '. $kat['id'];
  5. }
  6. /* Dalszy ciag skryptu */
To Ci zwróci listę kategorii z ich ID. Co z nią zrobić powinieneś już wiedzieć. I prawdopodobnie uprzedzając Twoje następne pytanie: aby odczytać dane z formularza i zapisać je do bazy poczytaj sobie o takiej tablicy PHP
  1. $_POST
oraz takim zapytaniu SQL
  1. INSERT ... INTO ...
thomson89
Cytat(krzysiuus @ 26.03.2010, 21:13:04 ) *
klika DODAJ STRONĘ przekierowuje go do skryptu gdzie są pola nazwa url itp. Chcę jeszcze dodać tam pole z formularzem rozwijanym a mianowicie wybór kategorii...

sciana.gif
  1. <a href="plik_z_polami.php">DODAJ STRONĘ</a>

  1. <select name="kategorie">
  2. <option value="kat1">Kategoria 1</option>
  3. <option value="kat2">Kategoria 2</option>


Cytat(krzysiuus @ 26.03.2010, 21:13:04 ) *
Jak mam to zacząć robić jaką funkcją pobrać nazwy poszczególnych kategorii z bazy itp?


Po pierwsze:
Kurs PHP lub dobra książka.

Pod drugie:
Manual PHP i funkcje PHP do MySQL.

Po trzecie:
Funkcja mysql_fetch_assoc lub _array.
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.