MySQL-Abfrage will nicht so wie ich.

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

  • #16
    Erstmal fetten Dank für die superschnelle Antwort... Nu hab ich für den Abend wieder was zu lernen und zu basteln...

    ...wobei ich immer noch nicht schnalle, wie ich den 25 Buttons im Browser die ID zuordnen sollte. Die haben sich ja durch das while potenziert. Grübel, grübel

    Dann mach ich mal wieder ein bischen Grundlagen und wenn ich nicht drauf kommen sollte, meld ich mich frech wieder.

    Kommentar


    • #17
      ...wobei ich immer noch nicht schnalle, wie ich den 25 Buttons im Browser die ID zuordnen sollte. Die haben sich ja durch das while potenziert. Grübel, grübel
      SELECT id, ... FROM tabelle
      while()
      echo <button mit $row[id]>

      Ist doch kein Problem.

      Kommentar


      • #18
        SELECT id, ... FROM tabelle
        Habsch ja schon mit dem * gemacht

        while()
        das ist ja auch schon funktionierend eingebaut

        echo <button mit $row[id]>
        button habsch und $row[id] = $row[0] bei mir

        Ist doch kein Problem.
        jetzt wo du es sagst, spür ich es auch. Ich glaube, ich hab da ein Zuordnungsproblem und werde mich jetzt in die Grundlagen der buttons & co stürzen.

        Thx für die Häppchen....ist ja auch Abendbrotzeit... ;-)

        php macht Appetit!

        Kommentar


        • #19
          Habsch ja schon mit dem * gemacht
          Schlechter Stil und allgemein nicht zu empfehlen.

          das ist ja auch schon funktionierend eingebaut
          ich weiß!

          button habsch und $row[id] = $row[0] bei mir
          Schlecht, weil schlecht lesbar und fehleranfällig. Aber immerhin.

          Kommentar


          • #20
            Ok, mit dem * dachte ich mir ist ok, weil ich wirklich alles aus der Tabelle brauche. Ist sonst nicht mein Stil...doppelschwör.

            Gelernt hab ich nu, dem Button eins mitzugeben, aber ich bekomm es bis dato nicht hin. Ich hab zwar während der Suche einiges dazu gelernt, aber nicht das Passende. Ich erlaube mir einfach mal den ganzen Code zu posten und die url, unter der man sich das Elend ansehen kann. Ich bekomme immer nur die erste Spalte editert, bei den anderen erscheint nur die ID in der url, aber nichts passiert...

            update1.php

            PHP-Code:
            <?PHP include("dbc.php");
             if (
            $button1==" OK ") {
                      
            mysql_query("UPDATE erste SET `11` = '$spalte1' where id = '$id'");
                      
            header ("Location: update1.php");
             if (
            $button2==" OK ") {
                      
            mysql_query("UPDATE erste SET `12` = '$spalte2' where id = '$id'");
                      
            header ("Location: update1.php");
             if (
            $button3==" OK ") {
                      
            mysql_query("UPDATE erste SET `13` = '$spalte3' where id = '$id'");
                      
            header ("Location: update1.php");
             if (
            $button4==" OK ") {
                      
            mysql_query("UPDATE erste SET `14` = '$spalte4' where id = '$id'");
                      
            header ("Location: update1.php");
             if (
            $button5==" OK ") {
                      
            mysql_query("UPDATE erste SET `15` = '$spalte5' where id = '$id'");
                      
            header ("Location: update1.php");
             
            mysql_close();
             }}}}} 
            else {
             
            $query "SELECT * FROM erste";
             
            $result mysql_query($query);
                      while (
            $row mysql_fetch_array($resultMYSQL_NUM)){
             
            ?> <html><body> 
            <table width="100%" border="1" cellpadding="0" cellspacing="2">  
            <tr>   
            <td> <form method="post" action="update1.php?id=<?PHP echo $row[0]; ?>">
                       <textarea name="spalte1" cols="30" rows="7"><?PHP echo $row[1]; ?></textarea>
                       <input type="submit" name="button1" value=" OK "><?PHP echo $row[0],", 11"?>
                       </form></td>
            <td> <form method="post" action="update1.php?id=<?PHP echo $row[0]; ?>">
                       <textarea name="spalte2" cols="30" rows="7"><?PHP echo $row[2]; ?></textarea>
                       <input type="submit" name="button2" value=" OK "><?PHP echo $row[0],", 12"?>
                       </form></td>   
            <td> <form method="post" action="update1.php?id=<?PHP echo $row[0]; ?>">
                       <textarea name="spalte3" cols="30" rows="7"><?PHP echo $row[3]; ?></textarea>
                       <input type="submit" name="button3" value=" OK "><?PHP echo $row[0],", 13"?>
                       </form></td>   
            <td> <form method="post" action="update1.php?id=<?PHP echo $row[0]; ?>">
                       <textarea name="spalte4" cols="30" rows="7"><?PHP echo $row[4]; ?></textarea>
                       <input type="submit" name="button4" value=" OK "><?PHP echo $row[0],", 14"?>
                       </form></td>
            <td> <form method="post" action="update1.php?id=<?PHP echo $row[0]; ?>">
                       <textarea name="spalte5" cols="30" rows="7"><?PHP echo $row[5]; ?></textarea>
                       <input type="submit" name="button5" value=" OK "><?PHP echo $row[0],", 15"?>
                       </form></td>
              </tr>
             </table>
             <?}}?>
             </body></html>

            Kommentar


            • #21
              Kurze Zwischenfrage: Wenn du jetzt 10 Zeilen editieren willst, kopierst du dann den ganzen Quelltext noch mal???

              PHP ist eine Scriptsprache zur Erstellung dynamische Webseiten. Nutze das! Soll heißen, streich den ganzen redundanten Code, sorge dafür, dass er einmal funktioniert, dann baust du ihn generisch um, dass du ihn mehrfach (z.B. in oben genannter While-Schleife) verwenden kannst.

              Kommentar


              • #22
                Original geschrieben von TobiaZ
                Kurze Zwischenfrage: Wenn du jetzt 10 Zeilen editieren willst, kopierst du dann den ganzen Quelltext noch mal???
                ....ja, hätte ich gemacht [erröt]. Woher weisst du, das ich 10x10 plane?...unheimlich

                Original geschrieben von TobiaZ
                PHP ist eine Scriptsprache zur Erstellung dynamische Webseiten. Nutze das! Soll heißen, streich den ganzen redundanten Code, sorge dafür, dass er einmal funktioniert, dann baust du ihn generisch um, dass du ihn mehrfach (z.B. in oben genannter While-Schleife) verwenden kannst.
                Mir ist ja selber nicht wohl, wenn ich so mein copy/paste-Konstrukt sehe. Ich bin ja schon froh, dass du kein Einblick in die anderen Dateien hast: Das würde dich dann voll aus den Puschen hauen...;-)

                Aber im Ernst: ich werde mein Möglichstes tun, um den code so kurz und effektiv wie möglich zu halten. Ist halt manchmal nicht ganz einfach....

                Kommentar


                • #23
                  Original geschrieben von kyloe
                  ....ja, hätte ich gemacht [erröt]. Woher weisst du, das ich 10x10 plane?...unheimlich
                  Mit den Jahren lernt man die User und ihre Probleme hier einzuschätzen. Viele machen immer ein absolutes Geheimnis aus ihrem Vorhaben, da muss man sich die Hintergrundinfos zusammendenken.

                  Aber in deinem Fall war es rein hypothetisch.

                  Mir ist ja selber nicht wohl, wenn ich so mein copy/paste-Konstrukt sehe. Ich bin ja schon froh, dass du kein Einblick in die anderen Dateien hast: Das würde dich dann voll aus den Puschen hauen...;-)
                  Auch hier habe ich schon einiges erlebt...

                  Aber im Ernst: ich werde mein Möglichstes tun, um den code so kurz und effektiv wie möglich zu halten. Ist halt manchmal nicht ganz einfach....
                  Ja, das ist gut. Versuch erstmal die Formulare dynamisch aufzubauen. Denke daran, dass du ein Feld mit der ID übergibst. (halte ich für besser als sie dem Button zu übergeben).

                  Wenn das steht, guckst du dir mal an, welche Daten das Formular absendet (z.B. print_r($_POST)). Die Daten dann auszuwerten sollte kein Problem mehr sein.

                  Kommentar


                  • #24
                    Original geschrieben von kyloe
                    Ich bekomme immer nur die erste Spalte editert, bei den anderen erscheint nur die ID in der url, aber nichts passiert...
                    Natürlich - weil du durch "ungeschickte" (will sagen, blödsinnige) Klammersetzung dafür gesorgt hast, dass die zweite If-Abfrage von der ersten abhängig ist, die dritte von den ersten beiden, etc. ...
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #25
                      Original geschrieben von wahsaga
                      Natürlich - weil du durch "ungeschickte" (will sagen, blödsinnige) Klammersetzung dafür gesorgt hast, dass die zweite If-Abfrage von der ersten abhängig ist, die dritte von den ersten beiden, etc. ...

                      Oh man, wie peinlich....
                      Ich bin ja froh, das du nicht "idiotische Klammersetzung" geschrieben hast.
                      Das löst natlürlich das Problem, thx, aber beseitigt nicht das Übel an der Wurzel.
                      @TobiaZ: ich gehe das Tutorial vom Peter Kropff nochmal durch. Dann sollte vllt auch der Code geschmeidiger werden. Irgendwie scheint das ohne Grundlagen nicht zu gehen...

                      Kommentar


                      • #26
                        So, die Schmach kann ich ja nicht auf mir sitzen lassen:
                        Ein paar Stunden Grundwissenstudium und die A****tritte von euch hat mich, für meine Verhältnisse, zur Hochform auflaufen lassen. ;-)
                        Obwohl das Script nach der Klammerbeutelentfernung einwandfrei gefunzt hatte, hier die Minimalform des PHP-Teils.

                        PHP-Code:
                        <?PHP
                        include("../dbc.php");
                        $query "SELECT * FROM erste";
                        $result mysql_query($query);
                        $anz_reihen mysql_num_rows($result); 
                        for(
                        $i 0$i $anz_reihen$i++) {
                                 if (${
                        "button".$i}==" OK ") {
                                    
                        $ii $i 10;
                                    
                        mysql_query("UPDATE erste SET `$ii` = '${"spalte".$i}' where id = '$id'");
                                    
                        header ("Location: update1.php");
                                }

                        while (
                        $row mysql_fetch_array($resultMYSQL_NUM)){
                        ?>
                        hier HTML-Teil
                        }

                        nochmals thx für die Geduld, schönes WE

                        Kommentar


                        • #27
                          Code:
                          ${"button".$i}
                          Code:
                          ${"spalte".$i}
                          Variable variablen sind pfui pfui. Verwende bitte Arrays.

                          Und SELECT * ist auch pfui. Selektiere genau die Spalten, die du haben willst.

                          Ein header Location: mitten in einer For-Schleife ist sehr schmutzig. Bau wenigstens ein exit() danach ein, damit das Script nicht weiterläuft.

                          Kommentar


                          • #28
                            Original geschrieben von h3ll
                            Code:
                            ${"button".$i}
                            Code:
                            ${"spalte".$i}
                            Variable variablen sind pfui pfui. Verwende bitte Arrays.

                            Und SELECT * ist auch pfui. Selektiere genau die Spalten, die du haben willst.

                            Ein header Location: mitten in einer For-Schleife ist sehr schmutzig. Bau wenigstens ein exit() danach ein, damit das Script nicht weiterläuft.
                            hauaha, schon wieder was auf die Ohren.
                            Arrays? Ok, ich frag jetzt nicht: "Wie geht das?" --> Grundwissen!
                            * ist pfui? Auch wenn ich alle Spalten brauche? Nö, da bin ich bockig.
                            Mit dem Header fällt mir keine andere Lösung ein...muss gehen, aber den exit bau ich ein.
                            thx für die Watschen...;-)

                            Kommentar


                            • #29
                              * ist pfui? Auch wenn ich alle Spalten brauche? Nö, da bin ich bockig.
                              Ne, brauchst du nicht, nur die Spalten 0-5. Und wenn du mal eine hinzufügst, wird dir diese zurückgegeben, verschwendet aber nur sinnlos Speicher. Oder wenn du die Reihenfolge der Spalten mal ändern möchtest, dann funktioniert dein Skript nicht mehr. Immer die zu selektierenden Spalten explizit mit angeben.

                              Kommentar


                              • #30
                                Original geschrieben von PHP-Desaster
                                Ne, brauchst du nicht, nur die Spalten 0-5. Und wenn du mal eine hinzufügst, wird dir diese zurückgegeben, verschwendet aber nur sinnlos Speicher. Oder wenn du die Reihenfolge der Spalten mal ändern möchtest, dann funktioniert dein Skript nicht mehr. Immer die zu selektierenden Spalten explizit mit angeben.
                                ok, ist natürlich ein Argument. Allerdings sind ja bei mir die Tabellenspalten von 11-xx durchnummeriert. Ich "missbrauche" die Tabelle als Koordinatenraster für Räume in einem Textadventure. Folglich wird sich die Reihenfolge der Spaltennummern nicht ändern und wenn Spalten dazu kommen, müssen die auch zwingend abgefragt werden. Ansonsten verstehe ich natürlich die Unsinnigkeit des * und hab das auch verinnerlicht.

                                ....aber thx für die INfo

                                Kommentar

                                Lädt...
                                X