Problem beim Tabellendaten auslesen

matzseesi

Erfahrenes Mitglied
Hi Leute

Möchte mir gerne so einen Datenbankmanager schreiben (kleines projekt) und brauche dazu die genauen Daten einer Tabelle.
Das heißt ich möchte wissen welche Felder da drinnen sind und mit welchen Eigenschaften.
Hab mich ein wenig umgeschaut und bin dann draufgekommen dass es fix fertige Funktionen in PHP gibt die man anwenden kann. Auch im SelfPHP Skriptum habe ich eni Beispiel gefunden.

Allerdings funktioniert dies nicht so ganz wie es sollte.
Mit folgendem Code habe ich dies getestet

PHP:
           	$verbindung=@MYSQL_CONNECT($db_host,$db_username,$db_passwort);
            $tableabfrage=mysql_list_fields($db_databasename,$db_tablename,$verbindung);
            $tableeintraege=mysql_num_fields($tableabfrage);
           	if ($tableeintraege==0)
           	{
           	 echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"2\" style=\"height:50px;\">\n";
           	 echo "<tr><td>\n";
           	 echo "<font class=\"fonth1\">\n";           		
           	 echo $error_noenteredtables[$lang];
           	 echo "</font>";
           	 echo "</td></tr></table>";             	 
           	}
           	else
           	{
           	 echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"2\" style=\"height:50px;\">\n";
             echo "<tr><td class=\"fonth2_b\">\n";
             echo $showtabelle_hl_tabellefield[$lang];
             echo "</td><td class=\"fonth2_b\">\n";
             echo $showtabelle_hl_tabelletype[$lang];
             echo "</td><td class=\"fonth2_b\">\n";
             echo $showtabelle_hl_tabelleextra[$lang];
             echo "</td></tr>\n";  
             for ($i=1;$i<=$tableeintraege;$i++)
           	 {
              $type = mysql_field_type($tableabfrage,$i);
              $name = mysql_field_name($tableabfrage,$i); 
              $len = mysql_field_len($tableabfrage,$i); 
              $flags = mysql_field_flags($tableabfrage,$i);            	 
              echo "<tr><td class=\"fonth1\">\n";             
              echo $name;
              echo "</td><td class=\"fonth1\">\n";   
              echo $type[$len];
              echo "</td><td class=\"fonth1\">\n";   
              echo $flags;
              echo "</tr>\n";   
             }
           	}

Diese Fehlermeldung bringt mir der Parser zurück!

Code:
Warning: mysql_field_type(): Field 9 is invalid for MySQL result index 7 in D:\web\htdocs\server\manager\index.php on line 183

Warning: mysql_field_name(): Field 9 is invalid for MySQL result index 7 in D:\web\htdocs\server\manager\index.php on line 184

Warning: mysql_field_len(): Field 9 is invalid for MySQL result index 7 in D:\web\htdocs\server\manager\index.php on line 185

Warning: mysql_field_flags(): Field 9 is invalid for MySQL result index 7 in D:\web\htdocs\server\manager\index.php on line 186

Was kann da sein?

Ich habe probiert die Tabellen und Datenbanken mittels SQL Query auszugeben allerdings weiß ich nicht wie man dann auf die array felder zugreifen kann.

dh wenn ich einen SQL Befehl schicke SHOW DATABASES; und mir das ganze dann mit mysql_fetch_array in ein Array lad dann kann ich mit current($db_abfrage); den Namen auslesen.
Wenn ich dies in einem Array hab (also mit mysql_fetch_array($db_abfrage)) dann muss ich ja mit einem Namen draufzugreifen wie zb $databases['name'] ! Wie heißen diese Feldnamen?

Grüße Posseidon
 
hat sich erledigt
die for schleife muss um -1 erweitert werden weil er sonst zuweit zählt
und des echo von der Type muss auf echo $type . '(' . $len . ')'; ausgebessert werden

Grüße
 
Hi!

Die Feldnamen von Array bekommt man am einfachsten so:

PHP:
$array = array('Key' => 'Value');
foreach($array as $key => $value)
{
    //In $key befinden sich die Feldnamen und in $value deren wert
}

lese dir auch mal im PHP manual die fkt.
next,each durch

Gruss Danilo
 
Zurück