Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Nach ENTER nächsten Eintrag anzeigen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Nach ENTER nächsten Eintrag anzeigen

    Moin,

    hab da mal ein ganz billiges Problem, welches mich aber zur Verzweiflung und Ihr wißt schon

    Ich frage aus einer Datenbank 18 Elemente ab. Dem User soll nun das jeweils nächste Elemente angezeigt werden, nachdem er ENTER gedrückt hat.

    Also so solls aussehen.

    Pizza Salami
    ENTER
    Pizza Napoli
    ENTER
    Pizza Tonno


    $Abfrage = mysql_query ("Select * from Pizzas ");
    while ($row=mysql_fetch_array($Abfrage) )
    {
    $Name= $row[Name];
    $Nummer = $row[Nummer];
    echo '<br>'.$Name;
    }

    Wie muss ich wo einen Submit Button einbauen?

    Danke für Eure Hilfe.
    Gruß

    Hügel


  • #2
    Das wird so auch nicht funktionieren.
    Dein Browser bekommt nur das fertige HTML-Dokument, also alle Pizzen auf mal.

    Du kannst natürlich mit LIMIT arbeiten oder über ne Session laufen. In beiden Fällen hast Du aber immer den kompletten Seitenreload.
    Alternativ bliebe Dir nur noch JavaScript.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Danke,
      Das hatte ich fast befürchtet. Muss ich halt die Abfrage mehrfach aufrufen.
      Ich poste das Ergebnis später.

      Kommentar


      • #4
        Zitat von Hügel Beitrag anzeigen
        Danke,
        Das hatte ich fast befürchtet. Muss ich halt die Abfrage mehrfach aufrufen.
        Ich poste das Ergebnis später.
        Das wäre die schlechteste Variante.
        Nutz dann doch lieber ne Session...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Zitat von Hügel Beitrag anzeigen
          Ich poste das Ergebnis später.
          So, hier das Ergebnis.

          Ich habe die Abfrage so geändert, dass er nur den letzen leeren Eintrag anzeigt.

          Nach ENTER schreibt er dort etwas rein und schon zeigt er mir den nächsten Eintrag.
          Gut in der falschen Reihenfolge, aber das stört mich nicht.
          PHP-Code:
           $Abfrage mysql_query ("Select * from ges_antworten WHERE Name = '$Name' and Antwort = ''");
               while (
          $row=mysql_fetch_array($Abfrage) )
               {
               
          $Fragen $row[Fragen];
               
          $ID $row[ID];
               }
          echo 
          '<table border = 1 CELLSPACING=3 CELLPADDING=3>
               <form action="" method="post">
               '
          .$Fragen.'
               <tr><td><textarea name="Antwort" cols = 55></textarea>
               <input type="hidden" name="ID" value="′.$ID.′">
               <tr><td><input type="submit" name="Auswahl" value="Antworten">
               <⁄table><⁄form>'
          ;    


          IF (
          $_POST["Auswahl"]=="Antworten") {
             
          $Antwort mysql_real_escape_string$_POST[Antwort]);
             
          $ID mysql_real_escape_string$_POST[ID]);
             
          mysql_query ("Update ges_antworten set `Antwort` = '$Antwort'
             where `ID` = ′
          $ID′ ");
             echo 
          '<meta http-equiv="refresh" content="0 URL=Datei.php?Name='.$Name.'">';

          Ok, meta refresh is nicht ganz sauber . . Aber so gehts.

          Kommentar


          • #6
            So ein Müll.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              GRAUSAM!!!

              Schreibe mal an den Anfang diese beiden Zeilen
              PHP-Code:
              error_reporting(E_ALL);
              ini_set("display_errors"true); 
              und dann viel Spaß mit den Meldungen.
              Außerdem solltest du die MySQL-Extension nicht mehr nutzen, sondern auf MySQLi umsteigen.

              16.14. Warum soll ich nicht SELECT * schreiben?
              http://home.mengelke.de/html-php-mys...ql-select.html
              Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

              Kommentar


              • #8
                Ergebnis anschauen??

                Gehst Du www.manbergen.de und klickst auf Mittelalterquiz
                Viel Spaß

                Kommentar


                • #9
                  Zitat von uha Beitrag anzeigen
                  GRAUSAM!!!

                  Schreibe mal an den Anfang diese beiden Zeilen
                  PHP-Code:
                  error_reporting(E_ALL);
                  ini_set("display_errors"true); 
                  und dann viel Spaß mit den Meldungen.
                  Außerdem solltest du die MySQL-Extension nicht mehr nutzen, sondern auf MySQLi umsteigen.

                  16.14. Warum soll ich nicht SELECT * schreiben?
                  http://home.mengelke.de/html-php-mys...ql-select.html
                  Select * paßt hier, weil ich wirklich alle Spalten auslese. Ansonsten völlig richtig.

                  Fehlermeldung: Notice:
                  Use of undefined constant Name - assumed 'Name' in Dateiname.php on line 6

                  Toll. was bringt das? Sorry, mache das hobbymäßig, ohne dass irgendjemand da mit Geschwindigkeitsproblemen kommen darf. Solange ich keine riesigen Sicherheitsprobleme einbaue kann ich damit leben.

                  Bitte hilf mir trotzdem, wie kann ich das verbessern?

                  Mit dem MySQLi werde ich mich beschäftigen.

                  Kommentar


                  • #10
                    Zitat von nikosch Beitrag anzeigen
                    So ein Müll.
                    Danke, sehr hilfreich.

                    Kommentar


                    • #11
                      Zitat von Hügel Beitrag anzeigen
                      Select * paßt hier, weil ich wirklich alle Spalten auslese.
                      Select * passt nie! Auch in deinem Fall nicht!
                      Zitat von Hügel Beitrag anzeigen
                      Fehlermeldung: Notice:
                      Use of undefined constant Name - assumed 'Name' in Dateiname.php on line 6
                      Du benutzt eine Konstante, die nicht existiert, PHP ist dann so gnädig und interpretiert das dann als String. Beispiel: $row[Fragen] ändern in $row['Fragen']

                      Und was soll die while-Schleife, die ist sinnlos.
                      Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                      Kommentar


                      • #12
                        Ein paar Anmerkungen:
                        - Du schreibst zunächst $_POST["Auswahl"] und dann darauf $_POST[Auswahl]. Bitte immer $_POST["Auswahl"] und das bei allen Array-Zugriffen, also bspw. $row["Fragen"] statt $row[Fragen]. Fragen wird sonst eigentlich als Name einer Konstanten und nicht als String interpretiert! Aber eine Konstante namens Fragen gibt es ja nicht bzw. ist nicht gemeint, daher muss es als String gekennzeichnet werden. PHP ist (leider) sher tolerant was solche Fehler angeht und versucht dann zu erraten, was eigentlich gemeint ist.
                        - Anstatt
                        PHP-Code:
                        $ID mysql_real_escape_string$_POST[ID]); 
                        kannst du in dem Fall auch kürzer schreiben
                        PHP-Code:
                        $ID = (int) $_POST['ID']; 
                        sofern ID ein Integer ist. Durch das casten nach int wird das Ergebnis "sicher" und muss nicht escaped werden.
                        - Wie gesagt wurde, schau dir mysqli an. http://php.net/manual/de/book.mysqli.php
                        Die Verwendung ist sehr ähnlich zur mysql-Extension, du musst also relativ wenig umlernen.

                        EDIT: uha war schneller...

                        Kommentar


                        • #13
                          PDO wäre auch ne alternative
                          http://php.net/manual/de/book.pdo.php
                          https://github.com/Ma27
                          Javascript Logic is funny:
                          [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

                          Kommentar


                          • #14
                            Zitat von uha Beitrag anzeigen
                            Select * passt nie! Auch in deinem Fall nicht!

                            Du benutzt eine Konstante, die nicht existiert, PHP ist dann so gnädig und interpretiert das dann als String. Beispiel: $row[Fragen] ändern in $row['Fragen']

                            Und was soll die while-Schleife, die ist sinnlos.
                            Danke, das ist doch mal ne tolle Hilfe. Wenn es "nur" die Hochkommas sind, sollte ich das hinbekommen.

                            Nochmals DANKE

                            Kommentar


                            • #15
                              Zitat von monolith Beitrag anzeigen
                              Ein paar Anmerkungen:
                              - Du schreibst zunächst $_POST["Auswahl"] und dann darauf $_POST[Auswahl]. Bitte immer $_POST["Auswahl"] und das bei allen Array-Zugriffen, also bspw. $row["Fragen"] statt $row[Fragen]. Fragen wird sonst eigentlich als Name einer Konstanten und nicht als String interpretiert! Aber eine Konstante namens Fragen gibt es ja nicht bzw. ist nicht gemeint, daher muss es als String gekennzeichnet werden. PHP ist (leider) sher tolerant was solche Fehler angeht und versucht dann zu erraten, was eigentlich gemeint ist.
                              - Anstatt
                              PHP-Code:
                              $ID mysql_real_escape_string$_POST[ID]); 
                              kannst du in dem Fall auch kürzer schreiben
                              PHP-Code:
                              $ID = (int) $_POST['ID']; 
                              sofern ID ein Integer ist. Durch das casten nach int wird das Ergebnis "sicher" und muss nicht escaped werden.
                              - Wie gesagt wurde, schau dir mysqli an. http://php.net/manual/de/book.mysqli.php
                              Die Verwendung ist sehr ähnlich zur mysql-Extension, du musst also relativ wenig umlernen.

                              EDIT: uha war schneller...
                              Auch dir einen besten Danlk für deine Erklärung.
                              Die blöden Hoch oder sonstwie doppel oder einfach Kommas gehen mir gehörig auf den . . . .

                              Ich gelobe Besserung.

                              Kommentar

                              Lädt...
                              X