Show Columns

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Show Columns

    Hi,

    ich hab über die Suche den Befhel Show Columns gefunden und gleich mal bei www.mysql.de näher angesehen.
    Beim Ausprobieren war das Ergebnis aber ganz anders als erwartet.

    PHP-Code:
    echo('<br>Informationen &uuml;ber die Tabelle Fahrzeuge<br><br>');
    $query "SHOW COLUMNS FROM fahrzeuge";
    $ergebnis mysql_query($query$db_handle);
    if(
    $ergebnis != false)
    {
      
    $liste mysql_fetch_row($ergebnis);
      
    print_r($liste);

    Ergebnis :

    Informationen über die Tabelle Fahrzeuge

    Array ( [0] => id [1] => int(10) [2] => [3] => PRI [4] => [5] => auto_increment )
    Eigentlich müssten da jetzt 33 Spaltennamen auftauchen wie id, gewicht, kraftstoff usw

    Wie muss ich die Abfrage ändern, damit mir nur die Spaltennanmen angezeigt werden ?

    thx & cya max


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

  • #2
    dein SHOW COLUMNS FROM <table> ist doch das gleiche wie DESCRIBE <table> bzw DESC <table>.

    und wenn du dir das mal ohne dein script ansiehst, siehst du auch was du falsch gemacht hast.

    mysql_fetch_row() ist hier nämlich nicht angebracht.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Danke für den Hinweis

      ich habs jetzt mal so gelöst :

      PHP-Code:
      echo('<br>Informationen &uuml;ber die Tabelle Fahrzeuge<br><br>');
      $query "SHOW COLUMNS FROM fahrzeuge";
      $ergebnis mysql_query($query$db_handle);
      $feldnamen = array();
      $i 0;
      if(
      $ergebnis != false)
      {
        while(
      $liste mysql_fetch_row($ergebnis))
        {
          
      $feldnamen[$i] = $liste[0];
          
      $i++;
        }
      }
      else die(
      'Fehler bei der Datenbankabfrage');

      $c count($feldnamen);
      for(
      $i=0$i<$c$i++)
      {
        echo(
      "<br>$i : {$feldnamen[$i]}");


      Ausgabe ist wie erwartet :

      0 : id
      1 : besitzer_id
      2 : einstell_stamp
      3 : lastaction_stamp
      4 : email_send
      5 : marke
      [...]
      Alle felder werden korrekt angezeigt ^^
      Wie der ein oder andere gemerkt hat, bin ich heute morgen nicht voll bei Sinnen, gehts noch eleganter als meine Lösung ?

      cya max


      An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

      Kommentar


      • #4
        Original geschrieben von Abraxax
        mysql_fetch_row() ist hier nämlich nicht angebracht. [/B]
        Ist das nun gut so wie ich das gemacht habe oder kann mir einer den "besseren" mal teigen ?

        imho ist fetch_row die einzigste möglichkeit...


        An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

        Kommentar


        • #5
          mysql_fetch_array().

          ist aber das gleiche, nur kannst du hier mit assozitiven namen arbeiten.

          aber dennoch kann man den code optimieren. du kannst z.b. die daten direkt ausgaben, statt sie erst einmal in einem array zu sammeln.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            fetch_array bringt mir in diesem Fall ja nix, da ich es als numerisches Array ausgeben muss, da ich davon ausgehe dass ich die namen der felder nicht kenne / nicht kennen muss

            Sicher, aber ich wollts halt mal so sammeln ^^


            Mein Langfristiges Ziel ist ein System, dass aus den Feldern der Datenbank + deren typ ein Formular generit zum eingeben und editieren und mir die html-templates voll automatisch erstellt.

            dazu mus ich halt ganz abstrkt die felder auslesen usw.#

            Jedenfalls bin ich jetzt mal einen Schritt weiter


            An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

            Kommentar

            Lädt...
            X