klaus_z: sql hilfe.. existiert ein Feld/Spalte oder nicht?

Hallo

ich komme nicht weiter.. hoffe ihr könnt mir helfen.

Ich will rausfinden, ob eine Spalte in einer bestimmten Tabelle vorhanden ist oder nicht..

ich habe das so probiert

$abfrage = mysql_query"DESCRIBE versandkosten". $test );
$erg = mysql_db_query("datenbank",$abfrage,$verbindung);
echo $erg;
if(!empty($erg9)) {echo "nicht leer";}

bin eigentlich davon ausgegangen, dass wenn die Spalte existiert der Text
"nicht leer" ausgegeben wird.
Ist aber nicht so ..

Kann mir jemand einen Tip geben, wie ich einfach rausfinde, ob ein Feld an einer Tabelle vorhanden ist?

danke
klaus

  1. Hallo,

    mit "show table status from $tablename" oder
    mit "show columns from $tablename"

    solltest Du eigentlich zum Ziel kommen.

    Das zweite Statement gibt Dir eine Link-Ressource auf das Erbenis mit den Feldnamen und ihren Specs zurück.

    LG
    Chris©

    1. Hallo Chris©

      vielen Dank für Deine Antwort!

      ich habe das direkt mal ausprobiert..

      code
      $abfrage = mysql_query("SHOW COLUMNS FROM tabellenname");
      $erg = mysql_db_query("DB",$abfrage,$verbindung);
      echo $erg;
      if(!empty($erg9)) {echo "nicht leer...";}

      aber da kommt immer noch nichts..
      also das echo $erg; gibt genau garnichts aus und nicht leer wir auch nicht ausgegeben.. habe ich da irgendeinen Denkfehler drin??

      danke nochmal für deine hilfe..

      1. Hallo Kauls,

        $abfrage = mysql_query("SHOW COLUMNS FROM tabellenname");
        $erg = mysql_db_query("DB",$abfrage,$verbindung);

        mysql_db_query() sollte nicht mehr benutzt werden, sondern stattdessen die Verbindung vorher auf die DB eingestellt werden mit

        $ok =   mysql_selcet_db('datenbankname', $verbindung);

        und dann nur noch

        $erg = mysql_query($abfrage, $verbindung);

        echo $erg;

        Das sollte nur eine Zahl ergeben, die ungleich 0 (bzw. false) ist, oder die Ausgabe "Ressource Locator: 2" oder so ähnlich:

        Mittels

        $datensatz = mysql_fetch_assoc($erg);

        kannst Du dann den nächstanstehenden Datensatz abholen.

        Mittels

        $table = array();

        while ($datensatz = mysql_fetch_assoc($erg))
          {
             $table[] = $datensatz;
          }

        echo "<pre>\n";
          echo htmlspecialchars(print_r($table,1));
          echo "</pre>\n";

        Kannst Du das gesamte Ergebnis anschauen.

        LG
        Chris©