jolly_roger: bei einer MySQL-Abfrage nur Zahlen anstatt Buchstaben?

Dann mal der übliche Prolog: Bin noob und hab Gooogle zum qualmen gebracht. (mich auch). ;-)
Bei einer Abfrage bekomme ich anstatt der abgelegten Buchstaben nur die Spaltenüberschrift, in dem Fall "12".

relevanter code:

  
$abfrage_txt = "SELECT '$position_num' AS inhalt FROM erste WHERE id='$position'";  
$ergebnis_txt = mysql_query($abfrage_txt);  
while ($row1 = mysql_fetch_array($ergebnis_txt)) {  
                $inhalt = $row1["inhalt"];  
                }  

Die DB "erste" sieht folgend aus:

id   11   12   13
--------------------
1    os   osw  osw
2    nos  nosw nosw
3    nos  nosw nosw

$position wird mit "2" übergeben
$position_num wird mit "12" übergeben
trotzdem wird bei $inhalt immer nur "12" angezeit. grrr
Irgendwie hab ich da keine Idee mehr...

  1. echo $begrüßung;

    Bei einer Abfrage bekomme ich anstatt der abgelegten Buchstaben nur die Spaltenüberschrift, in dem Fall "12".
    $abfrage_txt = "SELECT '$position_num' AS inhalt FROM erste WHERE id='$position'";
    $position wird mit "2" übergeben
    $position_num wird mit "12" übergeben

    Es ist immer eine gute Idee, sich im Falle eines Falles das SQL-Statement auszugeben und nicht nur den Code anzuschauen, der es zusammenbaut.

    SELECT '12' AS inhalt FROM erste WHERE id='2'

    SELECT  ein Schlüsselwort
    '       Stringwertbegrenzer Anfang
    12      Stringwert
    '       Stringwertbegrenzer Ende
    AS      Schlüsselwort
    ...     usw.

    Dein Ergebnis ist also der Stringwert 12, den du angegeben hast. Wenn du keinen String sondern einen Spaltennamen meist, dann musst du auch die Identifier-Begrenzungszeichen nehmen.

    echo "$verabschiedung $name";

    1. Hello,

      Dein Ergebnis ist also der Stringwert 12, den du angegeben hast. Wenn du keinen String sondern einen Spaltennamen meist, dann musst du auch die Identifier-Begrenzungszeichen nehmen.

      Joa mei, mir hoam zwoa morgen schon wieder den ersten April...
      Aber darf man denn bei MySQL als Spaltenbezeichner reine numerische Werte benutzen?
      Dann hätte ich heute doch noch 'was gelernt.

      Ich kann die Regeln für die Bezeichner bei MySQL immer nicht finden :-(

      Liebe Grüße aus Syburg

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hello,

        Ich kann die Regeln für die Bezeichner bei MySQL immer nicht finden :-(

        *Ups*
        Über den Umweg der deutschen Seite
        http://dev.mysql.com/doc/refman/5.1/de/legal-names.html
        habe ich auch die englische gefunden
        http://dev.mysql.com/doc/refman/5.1/en/identifiers.html

        Das wollte ich nach meinem eigenen 'Lernerfolg' nicht vorenthalten.

        Es sind also tatsächlich alle Zeichen (Bytewerte) erlaubt für Spaltennamen.

        Liebe Grüße aus Syburg

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Ein Moin an alle Beteiligten,

          Jippi, es funzt wie blöd, thx

          NB: den Link mit den Delimitern hab ich gleich in die Lesezeichen gepackt und hoffe, dass sich der Inhalt über Nacht in mein kleines Hirn ergiesst. ;-)

          nochmal thx

      2. echo $begrüßung;

        » [...] Identifier [...]
        Aber darf man denn bei MySQL als Spaltenbezeichner reine numerische Werte benutzen?

        Soll ich dir die verlinkte Seite vorlesen? :-)

        Du kannst alles verwenden, solange du es backtickst. Einschränkungen gibt es nur bei Datenbank- und Tabellennamen, denn die werden als Verzeichnis- und Dateinamen im Dateisystem verwendet und unterliegen dessen Beschränkungen.

        echo "$verabschiedung $name";

        1. Hello,

          » [...] Identifier [...]
          Aber darf man denn bei MySQL als Spaltenbezeichner reine numerische Werte benutzen?

          Soll ich dir die verlinkte Seite vorlesen? :-)

          Nein danke, ich habe die Informationen ja nun auf der deutschen Seite gefunden.

          Du kannst alles verwenden, solange du es backtickst. Einschränkungen gibt es nur bei Datenbank- und Tabellennamen, denn die werden als Verzeichnis- und Dateinamen im Dateisystem verwendet und unterliegen dessen Beschränkungen.

          ... sagar die Backticks selbst; das wird dann aber langsam unlesbar.

          Igitt.

          Liebe Grüße aus Syburg

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de