Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Sortierung mit <option> und Datenbank

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Sortierung mit <option> und Datenbank

    Ich stehe glaube ich gerade auf der Leitung.

    Habe schon verschiedenste Sachen probiert.

    Ich arbeite mit dem Template Engine "Tiny but strong", aber ich glaube das erstmal net so wichtig.

    Ich will nämlich beim bearbeiten von Produkten, dass ich eine Auswahl habe, wie ich die sortiere. Und will da ein <select> machen. So dass halt bei jedem Produkt ein Select ist, wo ich auswählen kann, an welcher Stelle es kommt. Und wenn ich es wieder bearbeite, dass die Zahl ausgewählt ist, die in der DB eingetragen ist. Es will leider nicht so wirklich =( sonst würde ich auch nicht posten. Nach guten 3 Stunden.... Ich hoffe Ihr versteht wie es gemeint ist und wollt mir vielleicht ein bisschen helfen.

    Hier noch die Funktion.

    PHP-Code:
    $sql="SELECT anordnung 
        FROM `products` 
        WHERE `category` = 
    $cid";
    $ergebnis mysql_query($sql);
    $i 0;
    while(
    $row=mysql_fetch_assoc($ergebnis))
    {
        
    $sql2 "SELECT count(anordnung) 
                FROM `products` 
                WHERE `category` = 
    $cid";
        
    $ergebnis2 mysql_query($sql2);
        for(
    $j=1$j<=$ergebnis2$j++)
        {
            if(
    $row['anordnung'] == $j)
            {
                
    $data[$i]['anordnung'] = '<option value="'.$row['anordnung'].'" selected="selected">'.$row['anordnung'].'</option>';     
            }
            else
            {
                
    $data[$i]['anordnung'] = '<option value="'.$j.'">'.$j.'</option>';
            }
        }
        
    $i++;


  • #2
    Wenn Du sortieren willst: wo ist dein ORDER BY in deinen SQL Statements?

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Nicht die Ausgabe sortieren. Ich will, dass er mir so die
      Code:
      <option value="1">1</option>
      <option>2</option>
      .
      .
      .
      ausgibt. Das ich das auswählen kann. Das er dann anzeigt, bei dem ersten product ist die "1" eingetragen unter anordnung. Und mir dann aber auch noch so viele <option>ZAHL</option> gibt, wie es produkt einträge gibt, dass ich die anordnung ändern kann in dem ich da eine andere Zahl auswähle und das speichere . Das ist ja einfach, aber eben das er mir das so ausgibt bekomme ich nicht hin.

      Kommentar


      • #4
        Meinst Du es so (ungetestet)? Bin nicht sicher, ob ich dich korrekt verstehe:

        PHP-Code:
        $sql="SELECT anordnung 
            FROM `products` 
            WHERE `category` = 
        $cid";
            
        $ergebnis mysql_query($sql);
        $i 0;

        echo 
        "<select name=\"meineauswahl\" size=\"1\">";

        while(
        $row=mysql_fetch_assoc($ergebnis))
        {
         if (
        $i == $row["anordnung"]){
          echo 
        "<option value=".$row["anordnung"]." selected>".$row["anordnung"]."</option>";
         }else{
          echo 
        "<option value=".$i.">".$row["anordnung"]."</option>";
         }
         
        $i++
        }  

        echo 
        "</select>"
        Wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          Also, hier mal ein Bild, wo die Produkte gelistet sind untereinander.



          Und da bei dem select, will ich die Auswahl haben. Im Moment steht bei allen in der DB unter `anordnung` nur "1" und bei einem eine "3" Ich will, dass er dann die Produkte untereinander anzeigt, wie es schon ist und das ich dann die Auswahl habe, bei der z.B. 3 selektiert ist ich aber, wenn wir mal annehmen es gibt 16 Produkte, ich bei der Auswahl die Zahlen 1-16 zur Auswahl habe.

          Nur leider, das was du gemacht hast macht das auch nicht.

          Kommentar


          • #6
            Zitat von Crypt Beitrag anzeigen
            PHP-Code:
                $sql2 "SELECT count(anordnung) 
                        FROM `products` 
                        WHERE `category` = 
            $cid"
            Was soll denn das deiner Meinung nach bewirken? Eine SQL-Abfrage innerhalb einer Schleife ist schonmal immer ein schlechtes Zeichen, hier bekommst du noch dazu jedes mal das selbe Ergebnis, nämlich die Anzahl Zeilen in denen anordnung gesetzt ist. Dann vergleichst du diesen Wert mit der Nummer der aktuellen Zeile, um immer das letzte Element vorzuselektieren?

            Ich sehe a) den Sinn dahinter nicht und b) falls es einen gibt, ist das extrem umständlich gelöst.
            [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
            [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

            Kommentar


            • #7
              So...immer noch unklar. Du hast eine Art "Reihenfolge" für die Datensätze in der Datenbank stehen, oder was genau? Wenn Du für 16 Datensätze 16 zahlen in der DB hast und du dann eine auswählst, was soll dann passieren? Welche soll selektiert sein? Möchtest Du die Reihenfolge der Datensätze bei der Ausgabe ändern und mittels der Select Box ändern können?
              Mein Skript hat sich an deinem 2. Beitrag orientiert, wo der erste Eintrag selected ist und der 2. keinen Value hat und mit dem Zähler befüllt wird.

              Wolf29
              while (!asleep()) sheep++;

              Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

              Kommentar


              • #8
                Also nochmal, nehmen wir mal das erste Produkt, da soll in der Select Box dann erst einmal die Zahl selektiert sein, die in der Datenbank unter `Anordnung` steht. Und es soll auch in der selben Select Box noch die anderen Zahlen stehen. Also die Zahlen 1 bis 16 z.B., wenn in es 16 Produkte der Category 1(Beispiel) gibt.
                In der nächsten zeile, also bei dem nächsten Produkt, soll er dann auch wieder eine Select Box haben, in der dann auch wieder z.B. bei dem 2. die Zahl 2 selektiert ist und man in der Select Box von 1-16 auswählen kann.

                So dass man dann die Zahl dort ändern kann, damit man die Rehenfolge ändern und abspeichern kann. Ich hoffe ich habe es jetzt richtig erklärt.

                Kommentar


                • #9
                  du scheinst hier immer die Werte von 2 Spalten in einer Select-Box mischen zu wollen .. das ist aber nur umständlich wieder auszulesen ...

                  normal würde man in einer ersten Select-Box das Produkt zur Auswahl stellen - und zwar etwas eindeutiger als nur mit der Nummer ... und in einer 2ten SelectBox dann die weitere Wahl - wobei auch hier nur eine Zahl aus 1-16 irgendwie undurchsichtig ist - hast du keine aussagefähigen Texte, die du dort anzeigen lassen kannst - die dann jeweils einem option-Tag folgendermaßen darstellst
                  HTML-Code:
                  <option value="1" >Text</option 
                                 ^ hier jeweils von 1 bis 16
                  auf die Art hat der Anwender wenigstens eine Entscheidungshilfe bei der Auswahl
                  "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                  Kommentar


                  • #10
                    Och manno =( mich versteht keiner. Ich habe mal ein anderes Beispiel gefunden da sind es registrierte leute aber stellt euch vor, es wären Produkte. Und der admin kann die administrieren und wie da die Sortierung ändern.
                    [IMG entfernt]
                    Mit hilfe der Select Box. Und wenn er dann die Asuwahlliste aufklickt, hat er von 1 - Anzahl der eingestellten Produkte (hier registrierte User) und kann dort dann eine Zahl auswählen, an welcher Stille Sie in einer "Registrierte User" Liste er steht. so etwas will ich auch nur halt für die Produkte.
                    [IMG entfernt]

                    Kommentar


                    • #11
                      achso .. konnteste das nicht gleich schreiben - die anderen Erklärungen waren weit von deinem letzten Post ...


                      Das Problem an deinem Vorhaben ist nun : PHP läuft auf dem Server - eigentlich müsstest du nun mit Javascript "aushelfen", da natürlich die bereits "vergebenen" Nummern bei den anderen Produkten nicht mehr zur Auswahl stehen ....

                      da bietet sich eher an, du realisierst das über eine Tabelle von Radiobuttons (wenn es wirklich nur um die Sortierung geht) ...

                      nach dem Submit müsstest du natürlich den Fall abfangen, dass dir einige Radiobuttons den gleichen "Sortier-Platz" zurückliefern ...
                      ansonsten find ich das wesentlich übersichtlicher als deine vielen Select-boxen


                      Code:
                      Produkt1 Produkt2 Produkt3 Produkt4 ....
                      1  ( )         ( )          ( )        (x)
                      2  (x)        ( )          ( )        ( )
                      3  ( )        ( )          (x)        ( )
                      4  ( )        (x)         (  )        ( )
                      so etwa würde ich das Realisieren
                      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                      Kommentar


                      • #12
                        Ich habe schon verstanden, was du willst, das Problem an deinem Code ist glaube ich dass $ergebnis2 nicht das enthält was du glaubst, setze da mal das Debuggen an. Und wie gesagt, zieh dieses Statement der Performance zuliebe unbedingt aus der Schleife heraus.

                        Spannend wird das ganze erst, wenn du anhand des übermittelten Formulars die Sortierung neu eintragen willst und der Benutzer keine disjunkten Werte ausgewählt hast. Hast du dir schon überelgt, wie du das handhaben willst?
                        [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
                        [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

                        Kommentar


                        • #13
                          So, für alle mal nen kleines Wireframe erstellt. Das wird mit einer <form> dann abgesendet und gespeichert.

                          Hier mal der Link. Untitled Document

                          Kommentar


                          • #14
                            Und jetzt?
                            [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
                            [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

                            Kommentar


                            • #15
                              nehm ich an, er hätte gern den script code für den "sortieren button"
                              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                              Kommentar

                              Lädt...
                              X