• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pobieranie wszystkich tabel i kolumn z bazy MySQL

Mały hosting, OGROMNE możliwości
0 głosów
4,273 wizyt
pytanie zadane 13 sierpnia 2016 w SQL, bazy danych przez typowy_endriu Użytkownik (620 p.)
Witam,szukam odpowiedzi już na kilku grupkach i stronach i nie mogę znaleść odpowiedzi,dodatkowym utrudnieniem jest to że jestem dopiero początkujący.

Mam przygotowaną bazę danych i formularz do tworzenia tabel w oddzielnym pliku .php więc wszystko działa automatycznie.

Problem polega na tym że nie wiem jak mam skonstruować zapytanie aby wyświetlało mi wszystkie tabele i kolumny na stronie z mojej bazy.

Oczywiście można użyć SELECT imie, nazwisko,punkty FROM tabela ale tych tabel w bazie może być setka w dodatku są one tworzone automatycznie więc nie ma możliwość dodawania ich ręcznie.

Mam nadzieję ze rozumiecie i piszę dla przypomnienia jestem początkujący ale nie zielony  więc nie chciałbym komentarzy typu "użyj gugle,masz w internecie,poczytaj dokumentacje"

Baza MySQL PHP oraz SQL

Jak to ma wyglądać:

 

 

BAZA DANYCH  --> TABELA (tabel może być nawet 100) --> KOLUMNY (imie,nazwisko,punkty)

 

plik .php

 

Imie       Nazwisko     Punkty

1 rekord

2

3

4

5

6        

 

Nie oczekuję gotowego kodu,ale już długo nie mogę sobie z tym poradzić i znacząco przyśpieszyłoby to moją pracę.

Poza tym na przykładach człowiek najlepiej się uczy a wiedza ta na pewno zostanie przezemnie wykorzystana w kolejnych amatorskich projektach

 

Z góry dzięki za odpowiedzi ! :)

2 odpowiedzi

0 głosów
odpowiedź 13 sierpnia 2016 przez Surykat Stary wyjadacz (14,780 p.)

W MSSQL Server zadziałał mi taki kod:

 

USE NORTHWND --tutaj wprowadź nazwę swojej bazy
SELECT *
FROM sys.Tables

Znajdź po prostu miejsce, gdzie w bazie MySQL znajdują się informacje o tabelach w poszczególnych bazach na twoim serwerze. Najlepiej w dokumentacji. :)

komentarz 13 sierpnia 2016 przez typowy_endriu Użytkownik (620 p.)

Wydaje mi się że podrzuciłeś mi przykład z T-SQL który działa na MSSQL

A ja potrzebuję SQL z relacyjną bazą MySQL v. 5.7.11

komentarz 13 sierpnia 2016 przez Surykat Stary wyjadacz (14,780 p.)
Przecież napisałem, że to MSSQL i poradziłem Ci znaleźć analogię dla MySQL- nie chciałeś przecież gotowego kodu, hmm?
komentarz 13 sierpnia 2016 przez typowy_endriu Użytkownik (620 p.)
No racja,po prostu nie spodziewałem się takiej odpowiedzi

Podrzuć w takim razie gotowy kod
komentarz 13 sierpnia 2016 przez Surykat Stary wyjadacz (14,780 p.)
http://dev.mysql.com/doc/refman/5.7/en/show-tables.html

Zajrzyj do dokumentacji- nigdy nie robiłem nic w MySQL więc kodu Ci nie podam, no ale coś tutaj jest, z tego co widzę, wystarczy użyć.
0 głosów
odpowiedź 13 sierpnia 2016 przez xandros Nałogowiec (29,420 p.)
select * from information_schema.tables where table_schema = ? and table_name = ?

Table_name to nazwa tabeli, a table_schema nazwa bazy. (usuń te, których nie będziesz potrzebował)

Jak przerobisz to query wylistujesz w mariaDB nazwy wszystkich tabel i informacje o nich.

komentarz 13 sierpnia 2016 przez typowy_endriu Użytkownik (620 p.)

Zaczynam robić postępy twój kod 

$query  = "SELECT * FROM  information_schema.tables WHERE table_schema = 'zawody";

nie wywala żadnych błędów serwera  ale nic nie wyświetla tylko błąd 

Query failed
$result = mysqli_query($link,$query)



    or die("Query failed");

 

Chciałbym żeby sie to wyświetlało w tabeli albo tablicy asocjacyjnej

 

komentarz 13 sierpnia 2016 przez xandros Nałogowiec (29,420 p.)
Syntax error? nie masz drugiego apostrofa za zawody... i uzywaj bindów.
komentarz 14 sierpnia 2016 przez typowy_endriu Użytkownik (620 p.)

nie wywala żadnych syntaxów poprostu nic nie wyświetla  :( 

Podam cały kod: 

 

<?php
$link = mysqli_connect("localhost", "root", "root")

    or die("Could not connect");

mysqli_select_db($link,"zawody")
    or die("Could not select database");

    mysqli_set_charset($link,"utf8");
$query  = "SELECT imie,nazwisko,punkty FROM  information_schema.tables WHERE table_schema = 'zawody'";



$result = mysqli_query($link,$query)


    or die("Query failed");


mysqli_free_result($result);
mysqli_close($link);


?>

 

komentarz 14 sierpnia 2016 przez xandros Nałogowiec (29,420 p.)

po pierwsze:

> mysqli_select_db($link,"zawody")  or die("Could not select database");

do wywalenia.

po drugie: 

> $query = "SELECT imie,nazwisko,punkty FROM  information_schema.tables WHERE table_schema = 'zawody'";

W nie selektujesz imienia nazwiska i punktow, bo takich kolumn nie ma. Daj *

po trzecie:

Dalej nie masz bindow. http://php.net/manual/en/mysqli.prepare.php

po czwarte:

a gdzie fetchujesz wyniki? http://php.net/manual/en/mysqli-result.fetch-all.php

po piąte:

gdzie var_dumpujesz wyniki? http://php.net/manual/en/function.var-dump.php

komentarz 16 sierpnia 2016 przez typowy_endriu Użytkownik (620 p.)
Nic z tego mi nie działa :/  Nie umiem ułożyć prostego zapytania :(

Podobne pytania

0 głosów
1 odpowiedź 1,944 wizyt
pytanie zadane 29 stycznia 2018 w SQL, bazy danych przez Dagon Nowicjusz (120 p.)
0 głosów
3 odpowiedzi 1,273 wizyt
pytanie zadane 3 grudnia 2016 w SQL, bazy danych przez DaltooN Początkujący (430 p.)
–3 głosów
2 odpowiedzi 469 wizyt

93,719 zapytań

142,632 odpowiedzi

323,264 komentarzy

63,266 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...