MySQL-Abfrage will nicht so wie ich.

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

  • MySQL-Abfrage will nicht so wie ich.

    Moin allerseits!
    Erster Beitrag und schon ein Problem...

    Bei einer Abfrage bekomme ich anstatt der abgelegten Buchstaben nur die Spaltenüberschrift, in dem Fall "12".

    relevanter code:

    PHP-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
    ...und ja, viele PHP-Resourcen durchgegangen und Gooogle qualmt von meinen vielen Anfragen. ;-)
    Irgendwie hab ich da keine Idee mehr...mir qualmt der Kopp
    Zuletzt geändert von kyloe; 31.03.2009, 19:40.

  • #2
    PHP-Code:
    $abfrage_txt "SELECT $position_num AS inhalt FROM erste WHERE id=$position"
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Original geschrieben von Kropff
      PHP-Code:
      $abfrage_txt "SELECT $position_num AS inhalt FROM erste WHERE id=$position"
      peter
      thx für die schnelle Antwort!

      Leider keinerlei Änderung, auch ohne die Quotes ...

      Kommentar


      • #4
        nimm Backstick dafür:

        PHP-Code:
        $abfrage_txt "select `$position_num` fromAS inhalt FROM erste WHERE id=$position"

        Kommentar


        • #5
          Jippi!
          supi, thx...mit den Delimitern gehts. Da wäre ich wohl erst nach dem Studieren der ganzen MySQL-Referenz drauf gekommen. ;-)

          Kommentar


          • #6
            Tipp gesucht, Alle Felder editieren

            Ich weiss nicht, ob das sinnvoll ist meine Frage hier zu posten, aber irgendwie möchte ich auch nciht dafür einen neuen Thread aufmachen...(bin noch neu und schüchtern) ;-)

            Aber vllt. liest es ja auch hier eine/r:

            In einem Online-Textadventure hab ich die Räume in die Felder einer Tabelle gelegt. Soweit klappt alles wie ich will. Was ich nun bräuchte, wäre ein Admin-Interface, mit dem ich alle Felder editierbar habe. Editieren mit einem Feld ist kein Problem, aber da immer Abhängigkeiten mit den Nachbarfeldern sind, müsste ich die zeitgleich auch editieren können.

            Ich suche auch nicht unbedingt ein fertiges Script, sondern nur einen Lösungsansatz. Irgendwie hab ich da ne Blockade im Hirn. Bin dankbar für jeden Ansatz.

            NB: wenn es sich unbedingt einer ansehen will, schicke ich gerne den Link vom Spiel via PN. Ich halt noch nichts zum veröffentlichen...

            Kommentar


            • #7
              Kann mir wenig darunter vorstellen.

              Aber was macht es für dich für einen Unterschied, ob du EIN Feld bearbeitest, oder mehrere?

              Kommentar


              • #8
                Original geschrieben von TobiaZ
                Kann mir wenig darunter vorstellen.

                Aber was macht es für dich für einen Unterschied, ob du EIN Feld bearbeitest, oder mehrere?
                ...ist vllt. ein bischen unglücklich ausgedrückt: Bearbeiten kann ich natürlich immer nur ein Feld, aber die anderen Felder müsste dabei sichtbar sein. Ausserdem müsste ich quasi in ein Nachbarfeld springen können um dieses dann auch zu editieren.

                Mom, ich mach mal ein Bild von meiner Vorstellung...kommt gleich
                Zuletzt geändert von kyloe; 22.04.2009, 19:31.

                Kommentar


                • #9
                  Bearbeiten kann ich natürlich immer nur ein Feld, aber die anderen Felder müsste dabei sichtbar sein. Ausserdem müsste ich quasi in ein Nachbarfeld springen können um dieses dann auch zu editieren.
                  Das ist doch kein Problem. Auslesen und Anzeigen kannst du doch alle Felder.

                  Die Frage ist, ob du alle Felder auf einmal editierbar machen willst, oder nur jeweils ein einzelnes.

                  Falls ersteres der Fall ist, brauchst du natürlich auch weiterhin nur eine UPDATE-Query
                  Falls du alle Felder auf einmal bearbeiten willst, dann brauchst du für jedes Feld eine Query (so schätze ich zumindest dein DB-Layout ein). Aber auch das ist eigentlich kein größeres Hindernis.

                  Wenn du etwas fortgeschritten bist, kannst du das speichern auch vornehmen, ohne die Seite neu zu laden. Dann wären aber ein paar Grundlagen in Richtung AJAX erforderlich.

                  Kommentar


                  • #10
                    So, Bild von meiner Vorstellung ist oben....

                    ...und ne, fortgeschritten bin ich nicht, aber da ich seit Wochen im Krankenhaus liege und auch ncoh einige Zeit dort und in der Reha liegen werde, kann ich mir noch viel aneignen.

                    Falls du alle Felder auf einmal bearbeiten willst, dann brauchst du für jedes Feld eine Query (so schätze ich zumindest dein DB-Layout ein). Aber auch das ist eigentlich kein größeres Hindernis.
                    JA, genau das. Ist für mich aber noch irgendwie ein Hindernis.
                    Zuletzt geändert von kyloe; 22.04.2009, 19:49.

                    Kommentar


                    • #11
                      zwei möglichkeiten, entsprechen im wesentlichen denen von oben:

                      für jedes textfeld+button ein formular. => eine Update Query

                      alle felder in ein Formular => Alle Felder werden in der DB geändert. (egal ob du eine änderung vorgenommen hast)

                      eine REPLACE-Query könnte dich in dem Zusammenhang interessiern.

                      Kommentar


                      • #12
                        moinsen, hab da mal eine Konstruktion geklöppelt, die mir genau das Seitenlayout bringt, was ich suchte. Tut alles wunderbar, bis auf das updaten der "id" 2-5...hm. Wie könnte ich das "where" passend machen? Oder ist das so garnicht möglich?

                        Die DB "erste" sieht folgend aus:

                        id 11 12 13
                        --------------------
                        1 txt txt txt
                        2 txt txt txt
                        3 txt txt txt

                        PHP-Code:
                        if ($button1==" OK ") {          
                                  
                        mysql_query("UPDATE erste SET `11` = '$spalte1' where id = '?'");
                                  
                        header ("Location: $PHP_SELF");
                        if (
                        $button2==" OK ") {
                                  
                        mysql_query("UPDATE erste SET `12` = '$spalte2' where id = '?'");
                                  
                        header ("Location: $PHP_SELF"); 
                        if 
                        //.....usw. [snip]

                        else {
                        $query "SELECT * FROM erste"//Debugging or die(mysql_error().'<hr />'. $query .'<hr />')
                        $result mysql_query($query);
                                 while (
                        $row mysql_fetch_array($resultMYSQL_NUM))
                                 { 
                        PHP-Code:
                        <tr>
                        <td> <form method="post" action="<? "$PHP_SELF" ?>">
                                  <textarea name="spalte1" cols="30" rows="10"><?PHP echo $row[1]; ?></textarea>
                                  <input type="submit" name="button1" value=" OK "><?PHP echo $row[0],", 11"?>
                                  </form></td>
                        <td> <form method="post" action="<? "$PHP_SELF" ?>">
                                  <textarea name="spalte2" cols="30" rows="10"><?PHP echo $row[2]; ?></textarea>
                                  <input type="submit" name="button2" value=" OK "><?PHP echo $row[0],", 12"?>
                                  </form></td>
                        <td>//......usw. [snip]

                        Kommentar


                        • #13
                          bis auf das updaten der "id" 2-5...hm. Wie könnte ich das "where" passend machen? Oder ist das so garnicht möglich?
                          Häh???

                          Du hast deine Spalten nicht wirklich 1-x genannt???
                          register_globals hast du beachtet?
                          Sql-Injections auch?

                          Du musst doch wissen, welchen Eintrag du bearbeiten willst, also kannst du doch auch eine ID vergeben. Die kennst du doch schon, schließlich hast du den Eintrag ja auch vorher ausgelesen.

                          Kommentar


                          • #14
                            Original geschrieben von TobiaZ
                            Häh???

                            Du hast deine Spalten nicht wirklich 1-x genannt???
                            register_globals hast du beachtet?
                            Sql-Injections auch?

                            Du musst doch wissen, welchen Eintrag du bearbeiten willst, also kannst du doch auch eine ID vergeben. Die kennst du doch schon, schließlich hast du den Eintrag ja auch vorher ausgelesen.
                            Doch, ich hab die Spaltennamen numerisch. Wieso? Geht einwandfrei und da ich Zähler in der Navigation habe, erleichtert mir das die Zuordnung.
                            Mit der ID habe ich ja gerade meine Schwierigkeiten: Im Script hab ich z.Z. 5 buttons, aber in der Ausgabe sind das insgesamt 25 Felder. Wie ordne ich denn einen OK-Button, den ich z.B. auf Feld "A 3" klicke, die ID 3 zu?
                            Und sorry, das ist wahrscheinlich html,php,mysql-technisch unterste Schiene, aber fragen kostet ja nichts. Sollte ich hier falsch sein, bitte ich höflichst um einen Link, wo ich solche Fragen stellen könnte.

                            Kommentar


                            • #15
                              Doch, ich hab die Spaltennamen numerisch. Wieso? Geht einwandfrei und da ich Zähler in der Navigation habe, erleichtert mir das die Zuordnung.
                              Naja, ist generell von abzuraten. Erkennt man schon allein daran, dass es nötig ist Backticks zu verwenden.

                              Mit der ID habe ich ja gerade meine Schwierigkeiten: Im Script hab ich z.Z. 5 buttons, aber in der Ausgabe sind das insgesamt 25 Felder. Wie ordne ich denn einen OK-Button, den ich z.B. auf Feld "A 3" klicke, die ID 3 zu?
                              Das machst du schon bei der Ausgabe. Gib einfach im Formular eine Hidden-Field mit der ID ein. Oder benenn den Button entsprechend der ID, oder oder oder...

                              Und sorry, das ist wahrscheinlich html,php,mysql-technisch unterste Schiene, aber fragen kostet ja nichts.
                              Nö, unterste Schiene ist es nicht. Die grundlagen scheinst du ja zu beherrschen (abgesehen von den eben erwähnten hinweisen), aber konzeptionell und logisch fehlt dir halt ne ganze Menge. Aber dafür bekommst du ja die Hinweise.

                              Kommentar

                              Lädt...
                              X