Infos über ein Feld aus Resultat

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

  • Infos über ein Feld aus Resultat

    Ich habe folgender Code:

    PHP-Code:
    <?php
    $result 
    mysql_query("SELECT spalte FROM tabelle");
    while(
    $row=mysql_fetch_array($result))
    {
      echo 
    "AUTO-INCREMENT: ";
      if(
    $row["spalte"] == "auto-increment")    // lol
        
    echo "YES!";
      else
        echo 
    "NO!";
    }
    ?>
    also, es geht darum, dass ich von diesem Feld erfahre, ob es das Extra Auto-Increment hat oder nicht. Wie finde ich das bei einer derartigen Abfrage am einfachsten heraus?
    Zuletzt geändert von roobin; 06.05.2003, 17:11.

  • #2
    wenn du phpMyAdmin hast, kannst du ja ml in die datei "tbl_properties.php"
    schauen, wie die es gemacht haben.
    Kissolino.com

    Kommentar


    • #3
      ging das nicht mit

      Code:
      SHOW TABLE STATUS
      oder

      Code:
      DESCRIBE name
      letzteres ist es.....

      Code:
      mysql> DESCRIBE GD_Art;
      +--------+-------------+------+-----+---------+----------------+
      | Field  | Type        | Null | Key | Default | Extra          |
      +--------+-------------+------+-----+---------+----------------+
      | ArtKey | int(11)     |      | PRI | NULL    | auto_increment |
      | Name   | varchar(30) |      | UNI |         |                |
      +--------+-------------+------+-----+---------+----------------+
      2 rows in set (0.00 sec)
      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


      • #4
        müsste nicht wenn die ganze spalte auto increment sein? weil ich mein wenn du eine spalte abfragst kann die ja nur entweder so sein oder nicht

        Kommentar


        • #5
          die ganze spalte ArtKey ist AUTOINCR

          die spalte Name natürlich nicht.
          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
            ach ich versteh schon. nur bei seiner while-schleife hatte ich gedacht er will das mehrmals überprüfen, das hat mich ziemlich verwundert

            Kommentar


            • #7
              war ein blödes Beispiel ...

              also, die Anwendung ist folgende:
              Ich will den Inhalt (also die Dumping Data) aus einer Tabelle lesen (für ein Textfile-Backup). Nun soll aber, wenn eine Spalte AUTOINC ist, nicht der spezifische Inhalt dieses Feld, sondern eben 'NULL' ausgeben werden!

              habe ich also:

              PHP-Code:
              <?php
              $result_
              =_mysql_query("SELECT * FROM tabelle");
              while(
              $row=mysql_fetch_array($result))
              {
                for(
              $i=0$i mysql_num_fields($result); $i++)
                {
                  
              // jetzt soll hier eine Abklärung stattfinden, ob $row[$i] AUTOINC ist oder nicht!
                
              }
              }
              ?>
              wie löse ich diese Abklärung?

              Kommentar


              • #8
                Original geschrieben von roobin
                wie löse ich diese Abklärung?
                was ist eine abklärung?


                --

                ich würde es wahrscheinlich so lösen.
                zumindest soll dir das einen ansatz geben.
                das script musst du schon noch selber weiter ausbauen.
                ist sogar schon sehr lang geworden. soviel wollte ich
                eigentlich gar nicht vorsagen.

                PHP-Code:
                <?php

                    
                // erst einmal die auto-inc spalte ermitteln
                    // es kann nur eine geben!
                    // wenn es zwei gäbe, was es nicht gibt, wird
                    // nur die zweit genommen.
                    
                $sql "DESCRIBE tabelle";
                    
                $result mysql_query($sql) or die(mysql_error());
                    
                $autofield "";
                    while (
                $zeile=mysql_fetch_assoc($result))
                    {
                        if (
                $zeile["Extra"] == "auto_increment"$autofield $zeile["Field"];
                    }
                  
                    
                // und nun weiter bei dir.
                    // leicht umgebaut.
                    
                $result mysql_query ("SELECT * FROM tabelle") or die(mysql_error());
                    while(
                $row mysql_fetch_assoc($result))
                    {
                        for(
                $i=0$i mysql_num_fields($result); $i++)
                        {
                            
                // jetzt soll hier eine Abklärung stattfinden, ob $row[$i] AUTOINC ist oder nicht!
                            // --> was ja jetzt auch geht.... (gehen sollte)
                            
                $spaltenwert = (mysql_field_name($result$i) == $autofield) ? "NULL" $row[$i];
                        }
                    }

                ?>
                das sollte funktionieren. ist aber nicht getestet.
                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


                • #9
                  erstmals ein Dankeschön für die Hilfe!
                  Kann es leider nicht gerade ausprobieren, sieht mir aber plausibel aus
                  den Rest habe ich auch schon gemacht, nur diese Änderung wollte/muss ich noch einbauen...

                  Kommentar


                  • #10
                    gib dann einfach mal bescheid....
                    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


                    • #11
                      noch eine kleine Frage zu Deinem Code:
                      soweit ich mich erinnere, ist mysql_fetch_assoc einfach eine vereinfachte Form von mysql_fetch_array, weil es sich um keinen nummerierten Array handelt. Ist das korrekt?

                      Kommentar


                      • #12
                        tipp: manual

                        tipp2: gib mal das entstandene array mit print_r() einmal bei mysql_fetch_array() und einmal bei mysql_fetch_assoc() aus.
                        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


                        • #13
                          Original geschrieben von roobin
                          also, die Anwendung ist folgende:
                          Ich will den Inhalt (also die Dumping Data) aus einer Tabelle lesen (für ein Textfile-Backup). Nun soll aber, wenn eine Spalte AUTOINC ist, nicht der spezifische Inhalt dieses Feld, sondern eben 'NULL' ausgeben werden!
                          damit sind aber m.e. probleme vorprogrammiert.

                          wenn mal irgendwann ein datensatz aus deiner tabelle gelöscht wurde, und du dann mit deiner methode ein 'backup' machst, und die daten wieder einspielst, dann wird ab dem gelöschten datensatz für alle folgenden eine um eins niedrigere ID vergeben, als dies in der original-tabelle der fall war.

                          und wenn jetzt diese tabelle mit einer anderen über das autoincrement-feld verknüpft ist, dann hast du ein problem...
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            da seh ich jetzt keine Probleme, denn meistens ist ein AUTOINC-Feld ja gerade dazu da, absolut dynamisch zu sein. Und so ist es auch das Script, wo ich diese Backup machen will: Nirgends wird ein Datensatz durch die ID ausgelesen! Ist also kein Problem

                            @Abraxax: Trotz dem Sternchen unter Deinem Namen und der Tatsache, dass ich in diesem Forum noch ein n00b bin, frage ich mich doch, warum Du nicht einfach ein 'Ja' oder ein 'Nein' als Antwort gibst

                            Kommentar


                            • #15
                              Original geschrieben von roobin
                              @Abraxax: Trotz dem Sternchen unter Deinem Namen und der Tatsache, dass ich in diesem Forum noch ein n00b bin, frage ich mich doch, warum Du nicht einfach ein 'Ja' oder ein 'Nein' als Antwort gibst
                              die sterne und meine mitgliedschaft hier haben nichts mit meinem antworten zu tun.... ich bin ncihts besonderes...

                              ja/nein ist auch viel zu einfach.

                              einmal hast du eben die spaltennummer MIT dabei UND die spaltennamen (array) und einmal nur die namen der spalten (assoc)

                              reicht dir das jetzt? ....
                              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

                              Lädt...
                              X