Matze: Primärschlüssel bei Abfrage weglassen

Hi,
ich habe eine MySQL Abfrage mit Select in PHP. Ich will alle Spalten ausgeben nur nicht die mit der ID (ist ein primary key).
$abfrage = "Select * from artikel";
wie lautet da die Abfrage. Denn es können mal mehrer Spalten  sein, welche durch den User hinzugefügt werden etc. Deshalb kann ich nicht SELECT ID, NAME, BA, PS, abfragen sondern muss es mit * machen.
Aber wie ist es zu sagen er soll mir die Spalte ID nicht ausgeben & net abfragen??

mfg

  1. hallo,

    pseudo wenn spaltenname='id'{ gib nix aus;} else{ gib aus;}

    gruss

    --
    no strict; no warnings;
    1. hallo,

      _pseudo_
      wenn spaltenname='id'{
      gib nix aus;}
      else{
      gib aus;}

      gruss

      ich glaub du hast mich net richtig verstanden. vielleicht bin ich zu blöd zum erklären *g*

      ich will das er alles ausgibt nur nicht die spalte id
      select * from artikel

      gibts da nicht sowas wie
      select *(- mysql_field_name($result,'id')) from artikel
      oder sowas??

      mfg

      1. gude

        ich glaub du hast mich net richtig verstanden.

        ich denke doch |vielleicht bin ich zu blöd zum erklären g nö ;-) ich  kenn persönlich keine, aber die query select * wird doch damit nicht direkt ausgegeben. erst holen, und dann ausgeben.

        oder wie?

        --
        no strict; no warnings;
        1. gude

          ich glaub du hast mich net richtig verstanden.
          ich denke doch
          |vielleicht bin ich zu blöd zum erklären *g*
          nö ;-)
          ich  kenn persönlich keine, aber die query select *
          wird doch damit nicht direkt ausgegeben.
          erst holen, und dann ausgeben.

          oder wie?

          oder das man halt alles ausgibt was als standard null hat... oder als typ "text" hat?
          also

          select * from artikel IS NULL
          meinst das geht so irgendwie?

          aber wie heisst das dann genau?

          mfg

          1. hi,

            select * from artikel IS NULL
            meinst das geht so irgendwie?

            aber wie heisst das dann genau?

            SELECT * FROM artikel WHERE feldname IS NULL
            ?

            gruss,
            wahsaga

            1. hi,

              select * from artikel IS NULL
              meinst das geht so irgendwie?

              aber wie heisst das dann genau?

              SELECT * FROM artikel WHERE feldname IS NULL
              ?

              gruss,
              wahsaga

              das will ich jetzt irgendwie nicht :)

              gibts keine abfrage wo er nur die felder ausliest derren typ auf text steht?
              weil id ist bei mir int(11) :)

              mfg

              1. hi,

                gibts keine abfrage wo er nur die felder ausliest derren typ auf text steht?

                doch - aber nur, wenn _du_ diese spalten vorher ermittelst, und ihre namen in deiner query aufführst.

                weil id ist bei mir int(11) :)

                das, was du möchtest, ist nicht möglich.
                entweder mit * alles auslesen (unschön), oder jedegewünschte spalte explizit angeben.

                gruss,
                wahsaga

              2. Hallo,

                Bsp:

                $query = "select * from tabelle;";
                $result = mysql_query($query, $db);

                for($i=0;mysql_num_rows($result);$i++) {
                echo mysql_result($result,$i,"spalte1")." | ";
                echo mysql_result($result,$i,"spalte2")." | ";
                echo mysql_result($result,$i,"spalten")."<br>";
                }

                Wie du siehst hat das ausgeben mit dem Select erstmal nix zu tun.
                Du selektierst alles und gibst nur das gewünschte aus.

                kannst auch machen:

                $query = "select spalte1, spalte2, spalten from tabelle;";
                $result = mysql_query($query, $db);

                for($i=0;mysql_num_rows($result);$i++) {
                echo mysql_result($result,$i,0)." | ";
                echo mysql_result($result,$i,1)." | ";
                echo mysql_result($result,$i,2)."<br>";
                }

                Gruß Frank

              3. nein,

                dann musst du erst das create statement des tables abfragen und dass parsen und dann die relevanten werte haben, oder du nennst deine spalten zum Bspl: ausgabe_text, nichtausgabe_id, ausgabe_name, ausgabe_horido. so kannst du auf jeden fall sichergehen, wenn du dann abfragst, ob der tblname mit ausgabe beginnt, dass du die spalte ausgibst.

                gruss

                --
                no strict; no warnings;