Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Closed TopicStart new topic
> Jak wyświetlić liste tabel z bazy danych
Cwirek1987
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

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


Chciałbym wyświetlić zawartość tabeli na stronie, a najlepiej aby można też było wchodzi za pomocą strony do zawartości wybranej tabeli wyświetlonej z bazy danych czy w ogóle jest taka możliwość, coś w stylu phpmyadmin bez możliwości edycji tej bazy.

Ja nawet już mam skrypt napisany, ale nie dokonca działą bo wyświtla mi coś innego niż chiałem.

  1. <?
  2. $sql=mysql_connect (localhost, login, hasło);
  3. mysql_select_db("sklep");
  4. $query = mysql_query('show tables');
  5. echo "$query";
  6. ?>


i odpaleniu strony wyskakuje mi Resource id #7

Ten post edytował Cwirek1987 28.05.2008, 18:09:39
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #2





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Ja o czymś takim nie słyszałem, ale możesz zrobić własny skrypt zarządzający bazą z możliwością odczytu (choć można zrobić usera do phpmyadmin'a, który będzie mógł tylko oglądać tabele). Poczytaj w maualu cała masa funkcji które możesz wykorzystać.
Go to the top of the page
+Quote Post
pyro
post
Post #3





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


<?
$sql=mysql_connect (localhost, login, hasło);
mysql_select_db("sklep");
$query = mysql_query('show tables');
print_r($query); // sprobuj tak
mysql_close($sql);
?>
Go to the top of the page
+Quote Post
webdice
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




A panowie o funkcjach mysql_fetch_* nie słyszeli?

P.S. ~pyro dodaj odpowiednie bbcode.
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

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


~pyro to samo wyskakuje Resource id #7,

a jak by to miało wygladać z funkcją mysql_fetch_*?

Ten post edytował Cwirek1987 28.05.2008, 18:23:48
Go to the top of the page
+Quote Post
webdice
post
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2.  
  3. mysql_connect  ('localhost', '*', '*');
  4. mysql_select_db ('test');
  5.  
  6. $query = mysql_query ('SHOW TABLES');
  7.  
  8. while ($field = mysql_fetch_assoc ($query))
  9. {
  10. print $field[0];
  11. }
  12.  
  13. ?>


Jak będziesz takim leniem i będziesz pytał o takie proste rzeczy, zamiast samemu poszukać, to gwarantuje Ci że naukę programowania zakończysz na etapie co najwyżej gimnazjalisty.
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

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


Fajnie krytykować osobę która ma technika informatyka i jest dobra w programowaniu językami tubo paskal, c, c++ html i zaczyna poznawać php w szerokim zakresie wiesz. Poza tym dla twoich informacji od tego są fora, a jeśli chodzi o to, to juz siedzę nad tym drugi dzień jak wyświetlić te tabel.

Zresztą mniejsza z tym nie działa mi to co napisałaś

Ten post edytował Cwirek1987 28.05.2008, 18:47:17
Go to the top of the page
+Quote Post
rzymek01
post
Post #8





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


Cytat(webdicepl @ 28.05.2008, 19:27:54 ) *
Jak będziesz takim leniem (...) zakończysz na etapie co najwyżej gimnazjalisty.

co jest złego w etapie gimnazjalisty? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

nie chwaląc się umiem C++,xhtml,html,xml,css,css2,js,PHP,MySQL i wcale mi nie przeszkadza, że jestem gimnazjalistą (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

przeszkadza mi jedynie, że matematyka w gimnazjum ma za wąski zakres i dopiero jak otworzyłem słynnego Cormena to zrozumiałem czego mam się douczyć (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

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


Dobra opanujmy się i skupmy się na temacie bo mnie czas goni (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
rzymek01
post
Post #10





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


chcesz gotowca czy wskazówki?
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #11





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

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


gotowiec też może być. Pod warunkiem że nie będzie zbyt skomplikowany żebym mógł go w razie przeanalizować i zrozumieć czym będzie bardziej zawiły tym dla mnie będzie trudniej bo jestem początkujący daj co masz i wiesz na ten temat.
Go to the top of the page
+Quote Post
rzymek01
post
Post #12





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


ok, poczekaj 5min

na początek spróbuj takie coś, ale pamiętaj o zabezpieczeniach (które zrobisz sam (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) )
!przeczytaj komentarze!

edit: TWOI PRZYJACIELE: http://dev.mysql.com i http://php.net (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

  1. <?php
  2. /*START:PHP*/
  3. #COPY#
  4. /*//sprawdzenie zmiennych
  5. if (empty($_GET['table']) || zrob wyrazenia regularne czy ctype_alnum na tego GETa)
  6.   $_GET['table'] = null;*/
  7.  
  8. /*pobranie i zapisanie nazw tabel*/
  9. $sql = $DB->query('SHOW TABLES FROM '.DB_N.' LIKE "'.DB_P.'%"', __FILE__, __LINE__);
  10. /* gdzie:
  11. const DB_N - nazwa bazy danych
  12. const DB_P - prefiks do tabel (możesz usunąć cały LIKE jesli nie chcesz korzystać z prefiksów
  13. ogólnie $DB->query zamień sobie na mysql_query
  14. a $DB->fetch na mysql_fetch_assoc
  15. a $DB->fetch(..., 'NUM') na mysql_fetch_row
  16. */
  17.  
  18. $tables = array();
  19. while ($data = $DB->fetch($sql, 'NUM'))
  20. $tables[] = $data[0];
  21.  
  22. /*
  23. do $tables wrzuciłem nazwy znalezionych tabel
  24. */
  25.  
  26.  
  27. if (empty($_GET['table']))
  28. {
  29. /*
  30. jesli żadna nie została kliknięta to przedstaw widok nazw tabel z możliwością kl
  31. knięcia w celu ujrzenia zawartości
  32. */
  33. echo '<h1>Tabele:</h1>';
  34. for ($i = 0, $count = count($tables); $i < $count; ++$i)
  35. echo '<a href="?table='.$tables[$i].'">'.$tables[$i].'</a><br/>';
  36. }
  37. else if (in_array($_GET['table'], $tables))
  38. {
  39. /*
  40. pokaż zawartość odpowiedniej tabeli
  41. */
  42. $sql = $DB->query('SHOW COLUMNS FROM `'.$_GET['table'].'`', __FILE__, __LINE__); // nazwy kolumn
  43. $sql2 = $DB->query('SELECT * FROM `'.$_GET['table'].'`', __FILE__, __LINE__); // zawartośc całej tabeli
  44.  
  45. $fields = array();
  46. while ($data = $DB->fetch($sql))
  47. {
  48. $fields[] = $data['Field']; // nazwy kolumn do tablicy
  49. }
  50. $count = count($fields);
  51.  
  52. echo '<h1>Tabela '.$_GET['table'].':</h1>
  53. <table border="1px" style="border: 1px solid #000;background-color:#DDD;">
  54. <tr>';
  55. for ($i = 0; $i < $count; ++$i)
  56. {
  57. echo '<th>'.$fields[$i].'</th>'; // wyświetlenie nazw kolumn
  58. }
  59. echo '</tr>';
  60.  
  61. while ($data = $DB->fetch($sql2, 'NUM'))
  62. {
  63. echo '<tr>';
  64. for ($j = 0; $j < $count; ++$j)
  65. echo '<td>'.$data[$j].'</td>'; // wyświetlenie danych
  66.  
  67. echo '</tr>';
  68. }
  69. echo '</table>';
  70. }
  71. else
  72. {
  73. echo 'Nie ma takiej tabeli bądź nie masz do niej dostępu :)';
  74. }
  75. ?>


Ten post edytował rzymek01 28.05.2008, 19:39:16
Go to the top of the page
+Quote Post
batman
post
Post #13





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




przenoszę na przedszkole
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #14





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

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


nie ma nic prostrzego żeby się połączył i wyświetlił tabele to nie może być aż tak skomplikowane
skoro to takie proste czemu nikt za bardzo pomóc nie może.

Ten post edytował Cwirek1987 28.05.2008, 19:50:32
Go to the top of the page
+Quote Post
batman
post
Post #15





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Przecież dostałeś już odpowiedź. Nie wiem czy działa, nie sprawdzałem. A jeśli nie działa, to napisz co nie działa. Poza tym polecam manual.
Go to the top of the page
+Quote Post
marcio
post
Post #16





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


  1. <?php
  2. function sql() {
  3.  
  4.  
  5. echo('<form method="post" action="'.$_SERVER['PHP_SELF'].'">
  6. <table align="center" width="75%" style="border: 1px dotted white;">
  7. <tr><td align="center"><b>SQL</b></td></tr>
  8. <tr><td align="center"><input type="text" name="db" value="localhost" style="font-style:italic; background-color:#000000; color:#00A54E; border-color: #000000; border: #000000;"></td></tr> 
  9. <tr><td align="center"><input type="text" name="db_login" value="login" style="font-style:italic; background-color:#000000; color:#00A54E; border-color: #000000; border: #000000;"></td></tr>
  10. <tr><td align="center"><input type="text" name="db_pass" value="pass" style="font-style:italic; background-color:#000000; color:#00A54E; border-color: #000000; border: #000000;"></td></tr>
  11. <tr><td align="center"><input type="text" name="db_name" value="nazwa bazy" style="font-style:italic; background-color:#000000; color:#00A54E; border-color: #000000; border: #000000;"></td></tr> 
  12. <tr><td align="center">
  13. <tr><td align="center"><textarea name="mysql_query" rows="5" cols="50" style="background-color:#000000; color:#CCCCCC;">Zapytania sql(opcjonalne)</textarea></td></tr>
  14. <tr><td align="center">
  15. <input type="submit" name="polacz" value="Polacz" style="font-style:italic; background-color:#000000; color:#00A54E;"></td></tr>
  16. </form>
  17. ');
  18.  
  19. if(!empty($_POST['db']) && !empty($_POST['db_login']) && !empty($_POST['db_pass']) && !empty($_POST['db_name']) && isset($_POST['polacz'])) {
  20.  
  21.  if($resource = @mysql_connect($_POST['db'], $_POST['db_login'], $_POST['db_pass'])) {
  22. mysql_select_db($_POST['db_name']);
  23.  
  24.  $id = mysql_query('show databases');
  25. $ile = mysql_num_fields($id);
  26.  echo('<tr>');
  27. for($i = 0; $i < $ile; $i++) 
  28.  echo('<td align="center" style="border: 1px dotted red;"><b>'.mysql_field_name($id,$i).'</b></td></tr>');
  29.  
  30. while($kol = mysql_fetch_row($id)) {
  31.  
  32.  for($a = 0; $a < $ile; $a++)
  33. echo('<tr><td align="center">'.htmlspecialchars($kol[$a]).'</td></tr>');
  34.  }
  35.  
  36. $id2 = mysql_query('show tables');
  37.  $ile2 = mysql_num_fields($id2);
  38. echo('<tr>');
  39.  for($e = 0; $e < $ile2; $e++)
  40. echo('<td align="center" style="border: 1px dotted red;"><b>'.mysql_field_name($id2,$e).'</b></td></tr>');
  41.  
  42.  while($kol2 = mysql_fetch_row($id2)) {
  43.  
  44. for($o = 0; $o < $ile2; $o++)
  45.  echo('<tr><td align="center">'.htmlspecialchars($kol2[$o]).'</td></tr></table>');
  46.  }
  47.  
  48. if(!empty($_POST['mysql_query'])) {
  49.  
  50.  if($resource = @mysql_connect($_POST['db'], $_POST['db_login'], $_POST['db_pass'])) {
  51. mysql_select_db($_POST['db_name']);
  52.  
  53.  
  54. if($query = mysql_query($_POST['mysql_query'], $resource)) {
  55.  $ile3 = mysql_num_fields($query);
  56. echo('<table align="center" style="border: 1px dotted white;"><tr>');
  57.  for($u = 0; $u < $ile3; $u++) 
  58. echo('<td align="center" style="border: 1px dotted red;"><b>'.mysql_field_name($query, $u).'</b></td>');
  59.  echo('</tr>');
  60.  
  61.  while($kol3 = mysql_fetch_row($query)) {
  62.  
  63.  echo('<tr>');
  64. for($d = 0; $d < $ile3; $d++)
  65.  echo('<td align="center">'.htmlspecialchars($kol3[$d]).'</td>');
  66. echo('</tr>');
  67. }
  68. echo('</table>');
  69.  }
  70. else echo('<table align="center" width="75%" style="border: 1px dotted white;"><tr><td align="center"><b style="color:#f00">Error: '.mysql_error().'</b></td></tr></table>');
  71. } 
  72. }
  73. }
  74. }
  75.  
  76.  
  77.  
  78. if(!empty($_POST['db']) && !empty($_POST['db_login']) && !empty($_POST['db_pass']) && !empty($_POST['db_name']) && isset($_POST['polacz'])) {
  79.  
  80. if(!@mysql_connect($_POST['db'], $_POST['db_login'], $_POST['db_pass']))
  81.  
  82.  echo('<table align="center" width="75%" style="border: 1px dotted white;"><tr><td align="center"><b style="color:#f00">Nie mozna polaczyc z baza</b></td></tr></table>');
  83. }
  84. }
  85.  
  86. sql();
  87. ?>
Go to the top of the page
+Quote Post
rzymek01
post
Post #17





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


Cwirek1987, dostałeś ode mnie gotowca (patrz parę postów wyżej) (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

masz uproszczoną wersję:
  1. <?php
  2. error_reporting(E_ALL | E_STRICT);
  3.  
  4. mysql_connect('localhost', 'user', 'pass');
  5. mysql_selectdb('nazwa_db');
  6.  
  7. if (empty($_GET['table']))
  8. $_GET['table'] = null;
  9.  
  10. /*pobranie i zapisanie nazw tabel*/
  11. $sql = mysql_query('SHOW TABLES FROM `nazwa_db`');
  12.  
  13. $tables = array();
  14. while ($data = mysql_fetch_row($sql))
  15. $tables[] = $data[0];
  16.  
  17.  
  18. if (empty($_GET['table']))
  19. {
  20. /*
  21. jesli żadna nie została kliknięta to przedstaw widok nazw tabel z możliwością kl
    iknięcia w celu ujrzenia zawartości
  22. */
  23. echo '<h1>Tabele:</h1>';
  24. for ($i = 0, $count = count($tables); $i < $count; ++$i)
  25. echo '<a href="?table='.$tables[$i].'">'.$tables[$i].'</a><br/>';
  26. }
  27. else if (in_array($_GET['table'], $tables))
  28. {
  29. /*
  30. pokaż zawartość odpowiedniej tabeli
  31. */
  32. // struktura tabeli, dane z możliwością edycji (brak możliwości podglądu danych dla session)
  33. $sql = mysql_query('SHOW COLUMNS FROM `'.$_GET['table'].'`'); // nazwy kolumn
  34. $sql2 = mysql_query('SELECT * FROM `'.$_GET['table'].'`'); // zawartośc całej tabeli
  35.  
  36. $fields = array();
  37. while ($data = mysql_fetch_assoc($sql))
  38. {
  39. $fields[] = $data['Field']; // nazwy kolumn do tablicy
  40. }
  41. $count = count($fields);
  42.  
  43. echo '<h1>Tabela '.$_GET['table'].':</h1>
  44. <table border="1px" style="border: 1px solid #000;background-color:#DDD;">
  45. <tr>';
  46. for ($i = 0; $i < $count; ++$i)
  47. {
  48. echo '<th>'.$fields[$i].'</th>'; // wyświetlenie nazw kolumn
  49. }
  50. echo '</tr>';
  51.  
  52. while ($data = mysql_fetch_row($sql2))
  53. {
  54. echo '<tr>';
  55. for ($j = 0; $j < $count; ++$j)
  56. echo '<td>'.$data[$j].'</td>'; // wyświetlenie danych
  57.  
  58. echo '</tr>';
  59. }
  60. echo '</table>';
  61. }
  62. else
  63. {
  64. echo 'Nie ma takiej tabeli bądź nie masz do niej dostępu :)';
  65. }
  66. ?>
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #18





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

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


kurcze ale ja chce wyświetlić liste tabel a nie zawartość konkretnej tabeli ludzie dopiero jak wyświetli liste tabel to chce zeby po kliknieciu w nazwe danej tabeli on pokazywał jej zawartość
Go to the top of the page
+Quote Post
batman
post
Post #19





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(Cwirek1987 @ 28.05.2008, 18:53:50 ) *
Chciałbym wyświetlić zawartość tabeli na stronie, a najlepiej aby można też było wchodzi za pomocą strony do zawartości wybranej tabeli wyświetlonej z bazy danych czy w ogóle jest taka możliwość, coś w stylu phpmyadmin bez możliwości edycji tej bazy.

Pisz jaśniej i używaj interpunkcji, to więcej osób Ciebie zrozumie.

Wracając do tematu - kolejny raz manual
Go to the top of the page
+Quote Post
Cwirek1987
post
Post #20





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 9.06.2007

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


tak fajnie się podaje stronki tylko ze tam wszytko po angielsku i niewiem za bardzo jak tam szukać bo az tak dobrze angielskiego nie znam
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.10.2025 - 08:13