Avatar billede supermand69 Nybegynder
27. december 2001 - 00:10 Der er 13 kommentarer og
2 løsninger

Vise hvilke tabeller der eksisterer...

Hvordan kan man vise hvilke tabeller der eksisterer i en db og så vise dem i en bestem rækkefølge??

Eks.
Jeg har en db med følgende tabeller:
Venner, familie, Kunder

Her vil jeg så printe alle records fra hver tabel, men hvordan kan jeg så sætte tabellen som overskrift for hver tabel?!

Venner
---------
Henrik
Anne

Famile
---------
Onkel Jens
Fætter Bo
Avatar billede erikjacobsen Ekspert
27. december 2001 - 00:27 #1
Navnene på tabellerne får du f.eks. på denne måde

  mysql_connect(\'host\',\'user\',\'pasw\');
  mysql_select_db(\'din_db\');

  $res=mysql_query(\'show tables\');
  while ($row=mysql_fetch_row($res)) {
    print $row[0].\"<br>\";
  }
Avatar billede novellenet.dk Nybegynder
27. december 2001 - 02:14 #2
Ja.
Avatar billede cyberdude Nybegynder
27. december 2001 - 10:47 #3
Vidre bygger lige lidt på den erik.... kom med.....

mysql_connect(\'host\',\'user\',\'pasw\');
  mysql_select_db(\'din_db\');

  $res=mysql_query(\'show tables\');
  while ($row=mysql_fetch_row($res)) {
    print $row[0].\"<br>\";
$hent=mysql_query(\'select * from $row[0]\');
  while ($hent_row=mysql_fetch_row($hent)) {
print $hent_row[navn].\"<br>\";
}
  }

Så får du først tabellens navn og derefter henter den automatisk indholdet ud....
Avatar billede erikjacobsen Ekspert
27. december 2001 - 11:01 #4
Har du prøvet din, cyberdude ??
Avatar billede cyberdude Nybegynder
27. december 2001 - 11:18 #5
Nej det har jeg ikke, men vil mene at den burde fungere...............
Avatar billede cyberdude Nybegynder
27. december 2001 - 11:25 #6
nu har jeg prøvet!

$res=mysql_query(\'show tables\');
while ($row=mysql_fetch_row($res)) {
print $row[0].\"<br>\";
$hent=mysql_query(\"select * from $row[0]\");
while ($hent_row=mysql_fetch_row($hent)) {
print $hent_row[1].\"<br>\";
}
}

Og denne funger på mit webhotel :-))

Rettede et par små fejl :-)
Avatar billede erikjacobsen Ekspert
27. december 2001 - 11:34 #7
Hvorfor lige $hent_row[1] ? Hvor mange felter i hver tabel skal der
udskrives?
Avatar billede cyberdude Nybegynder
27. december 2001 - 12:19 #8
ved det ikke men det kan jo altid udbygges........

Jeg valgte at teste med et felt, vedkommende der skal bruge det kan jo altid tilføje flere....
Det kunne jo være at han ville have en liste med navn, adresse, og tlf. nr på, så skal der jo være flere end bare lige en på......

print $hent_row[1] $hent_row[3] $hent_row[4].\"<br>\";

Avatar billede erikjacobsen Ekspert
27. december 2001 - 12:25 #9
Men, cyberdude, der er jo nok forskellige antal felter i de forskellige tabeller.
Hvordan vil du håndtere det ?
Avatar billede cyberdude Nybegynder
27. december 2001 - 14:31 #10
nåååå ja ups......

Men så må det vel være noget ala

$res=mysql_query(\'show tables\');
while ($row=mysql_fetch_row($res)) {
print $row[0].\"<br>\";
$hent=mysql_query(\"select * from $row[0]\");
while ($hent_row=mysql_fetch_row($hent)) {
$felter = mysql_num_fields($hent);
$i=0;
while ($i < $felter) {
echo \"$hent_row[$i] \";
$i++;
}
echo \"<br>\";
}
}


Sådant så listes tabel navnet øverest, derefter ALT indholdet i tabellen uanset hvor mange felter der er i den enkelte tabel!

Damm i am good :-))
Avatar billede cyberdude Nybegynder
27. december 2001 - 14:31 #11
erik... -> er vi ik ved at være der nu... ?
Avatar billede supermand69 Nybegynder
27. december 2001 - 14:32 #12
Hvordan kan man så stoppe ved den sidste tabel??
Avatar billede erikjacobsen Ekspert
27. december 2001 - 14:33 #13
Det hjælper. Du kan flytte
  $felter = mysql_num_fields($hent);
en linie op. Det er ikke nødvendigt at be\'  om hver gang.

Ja, men er det ikke en fornøjelse at lære noget nyt, cyberdude :)
Avatar billede erikjacobsen Ekspert
27. december 2001 - 14:34 #14
Den stopper da ved sidste tabel
Avatar billede cyberdude Nybegynder
27. december 2001 - 14:39 #15
mysql_connect(\'host\',\'user\',\'pasw\');
  mysql_select_db(\'din_db\');

$res=mysql_query(\'show tables\');
while ($row=mysql_fetch_row($res)) {
print $row[0].\"<br>\";
$hent=mysql_query(\"select * from $row[0]\");
$felter = mysql_num_fields($hent);
while ($hent_row=mysql_fetch_row($hent)) {
$i=0;
while ($i < $felter) {
echo \"$hent_row[$i] \";
$i++;
}
echo \"<br>\";
}
}


Sådant der!

Nu henter den ALLE de tabeller der er i den database du skriver har : mysql_select_db(\'din_db\');
(hvor der står din_db det erstatter du med navnet på din database!)
Så henter den alle navnene på de tabeller der er i din database tager den første og lister alle de felter der er i den på hver sin linie og fortsætter derefter til den næste tabel indtil der ikek er flere tabeller i databasen :-))

det var faktisk ikke svært... :-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester