Vælg mellem alle tabeller i din database og vis indholdet i en tabel

 

Hejsa jeg er ny her og ny hvad php angår, men heldigvis kan man jo finde hjælp mange gode steder.

Jeg fandt blandt andet stor hjælp i Claus' begynder guide.

Jeg skulle bruge et script der kunne læse alle tabeller i en DB, give mig muligheden for at vælge hvilken tabel jeg ønskede at se, og endelig skulle det vise indholdet i en tabel.

Det kunne jeg ikke finde nogle stedet og så måtte jeg jo selv igang - ufattelig sjovt og lærerigt (og lidt tidskrævende :o))

Jeg ligger eksemplet ud her - det kan jo være at der er andre der har brug for det.

Først har jeg efter mang gode råd lavet en config fil (config.php) der inkluderes i de andre filer og som åbner adgangen til DB'en



<?php

// Her oprettes forbindelsen til databasen
$conn = mysql_connect("server", "brugernavn", "adgangskode");
mysql_select_db("DBnavn");

$DBnavn = 'DBnavn';

if (!mysql_connect("server", "brugernavn", "adgangskode"))
{
echo "Kunne ikke få kontakt med mysql på \n";
exit;
}
?>



Dernæst en fil der finder samtlige tabeller i DB'en og giver mig mulighed for at vælge dem i en drop-down menu.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//DK">
<?php
include('config.php'); //Forbindelsen til Databasen

$result = mysql_list_tables($DBnavn);
$num_rows = mysql_num_rows($result);
//Her generes dropdown menuen
print "<form action='vis.php' method='post'><Select name='tabel'>";
for ($i = 0; $i < $num_rows; $i++)
{
$tabelnavn = mysql_tablename($result, $i);

// Her laves et felt for hver tabel i databsen som en valgmulighed i dropdownmenuen
print "<option value='".$tabelnavn."' >".$tabelnavn."";

}
// Her sættes knappen til at foretage valg på og formen afsluttes
print "<input type='submit' value='Vælg'></select></form>";

// Her lukkes forbindelsen til databasen eller "det huskede" fjernes fra hukommelsen
mysql_free_result($result);
?>


Og endelig filen som viser mig resultatet af det valg jeg gjorde.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Test af en masse sjovt</title>
<meta name="generator" content="TSW WebCoder">
</head>

<body>
<?php

include('config.php'); //Forbindelsen til Databasen

// Her sættes variablen $tnavn der indeholder POST'en af den valgte tabel
$t_navn = $_POST['tabel'];

// Her foretages selve sql-forespørgslen
$result = mysql_query("SELECT * FROM $t_navn");

// Her læses hvilke felter tabellen indeholder
$fields=mysql_num_fields($result);

// Her begydner tabellen der skal vise resultaterne af forespørgslen
echo "<table border='1' style='border-collapse:collapse; border: 1px solid #000000;' cellpadding='5' cellspacing='0'>\n<tr>";
// Jeg har dundet hjælp til dette på http://dk.php.net/manual/da/function.mysql-num-fields.php
// Feltnavne bruges som overskrifter til kollonnerne i tabellerne
for ($i=0; $i < mysql_num_fields($result); $i++)
{ print "<th align='left' valign='top'>".mysql_field_name($result, $i)."</th>"; }
echo "</tr>\n";
while ($row = mysql_fetch_row($result)) { //Tabellens indhold
echo "<tr>";
for ($f=0; $f < $fields; $f++) {
echo "<td valign='top'>$row[$f]</td>"; }
echo "</tr>\n";}
echo "</table><p>";

// Her lukkes forbindelsen til databasen eller "det huskede" slettes fra hukommelsen
mysql_free_result($result);
?>

</body>


</html>



God fornøjelse - jeg vil meget gerne høre konstruktiv kritik og se hvis nogen har noget lignende. Det kunne også være at nogle havde et tilsvarende script der kunne lidt mere.

Nå det var alt fra mig i denne omgang



Skrevet af: | Dato : 2005-04-10 07:5 | Læst : 13302 gange