• 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

Hosting forpsi easy 1 pln
0 głosów
3,062 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,760 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,760 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,760 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,450 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,450 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,450 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,573 wizyt
pytanie zadane 29 stycznia 2018 w SQL, bazy danych przez Dagon Nowicjusz (120 p.)
0 głosów
3 odpowiedzi 632 wizyt
pytanie zadane 3 grudnia 2016 w SQL, bazy danych przez DaltooN Początkujący (430 p.)
–3 głosów
2 odpowiedzi 250 wizyt

92,081 zapytań

140,736 odpowiedzi

317,696 komentarzy

61,401 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia w koszyku, uzyskując rabat aż -50% (w dniach 24.11 - 29.11 z okazji Black Friday, a potem będzie to -30%) na bilety w wersji "Standard"! Więcej informacji na temat akademii znajdziecie tutaj. Dziękujemy Sekurakowi za tak fajną zniżkę dla Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 15% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...