Gibt es einen befehl, der...

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

  • Gibt es einen befehl, der...

    Hallo

    einen Befehl der Werte einer Spalte +1 rechnet, außer einige bestimmte Werte nicht?

    Wenn nein, wie löst man das Problem?
    The Human Mirror - Mein Blog!
    www.sonicsense.de - The future of music!

  • #2
    Code:
    UPDATE tabelle SET spalte = spalte+1 WHERE ...
    meinst du das ^^ ?
    Kissolino.com

    Kommentar


    • #3
      Hmm also an einem Beispiel:

      Ich habe in der Datenbank folgende Datensätze:

      ID1 - Wert:1
      ID2 - Wert:2
      ID3 - Wert:3
      ID4 - Wert:4
      ID5 - Wert:5

      Nun Aktualisiere ich einen Wert: z.B den von ID3 und setze Ihn auf 1.
      Dann sieht es so aus:

      ID3 - Wert:1
      ID1 - Wert:1
      ID2 - Wert:2
      ID4 - Wert:4
      ID5 - Wert:5

      Nun sollen alle Werte bis einschließlich ID2 Wert+1 werden. Damit sich die Zahlenfolge wieder herstellt.
      The Human Mirror - Mein Blog!
      www.sonicsense.de - The future of music!

      Kommentar


      • #4
        anderer ablauf:

        ID1 - Wert:1
        ID2 - Wert:2
        ID3 - Wert:3
        ID4 - Wert:4
        ID5 - Wert:5

        3 soll zielwert =>1 werden, hat jetztwert=> 3

        update tab set pos = pos+1 where pos >= zielwert and pos < jetztwert and gruppe = X

        so siehts jetzt aus:
        ID1 - Wert:2
        ID2 - Wert:3
        ID3 - Wert:3
        ID4 - Wert:4
        ID5 - Wert:5

        danach:
        update tab set pos = zielwert where id = diedatensatzid

        dh du arbeitest mit 4 werten
        - wo liegt der datensatz
        - wo soll er hin
        - zu welcher gruppe gehört er (optional)
        - eindeutige identifikation => id
        Kissolino.com

        Kommentar


        • #5
          Hey Wurzel,

          ich hab deinen Vorschlag mal genommen und umgesetzt. Leider ändert sich in der DB nicht ein einziger Wert. Nicht mal unkontrolliert :P ... Was stimmt nicht mit dem Script?

          PHP-Code:
                  if($csort_top) {
                      
          $sql_csort "SELECT MIN(menusort) AS menusort FROM content WHERE status = 'category' ORDER BY menusort DESC LIMIT 1";
                      
          $result_csort mysql_query($sql_csort) OR die(mysql_error());
                      
          $row_csort mysql_fetch_assoc($result_csort);
                      
          $zielwert $row_csort["menusort"]; //Korrekt übergeben
                      
          echo 'zielwert='.$zielwert;
                      
          $sql_csort_get_id_id "SELECT id FROM content WHERE menusort = '$id' AND status = 'category' ORDER BY id DESC LIMIT 1;"
                      
          $result_csort_get_id_id mysql_query($sql_csort_get_id_id);    
                      
          $row_csort_get_id_id mysql_fetch_assoc($result_csort_get_id_id);
                      
          $idsort $row_csort_get_id_id["id"];
                      echo 
          'idsort='.$idsort//korrekt übergeben    
                      
          $sql_top "UPDATE content SET menusort = menusort+1 WHERE menusort >= '$zielwert' AND menusort < '$jetztwert' AND status = 'content';";
                      
          $sql_top_setdata "UPDATE content SET menusort = '$zielwert' WHERE id = '$idsort';";
                      
          mysql_query($sql_top);
                      
          mysql_query($sql_top_set_data);
                      } 
          The Human Mirror - Mein Blog!
          www.sonicsense.de - The future of music!

          Kommentar


          • #6
            PHP-Code:
            echo $sqlquery;
            mysql_query(... bla ...) or die(mysql_error()); 
            ausgabe?
            Kissolino.com

            Kommentar


            • #7
              Welchen sql string hättens denn gerne ?
              The Human Mirror - Mein Blog!
              www.sonicsense.de - The future of music!

              Kommentar


              • #8
                zur fehlersuche würde meinereiner alle bevorzugen. wenn diese aussehen wie erwartet, auch mal im phpmyadmin absetzen ... und in der entwicklung kannst du auch bei allen vorkommen von mysql_query() ein "or die(mysql_error())" einsetzen.
                Kissolino.com

                Kommentar


                • #9
                  Werde ich gleich Morgen machen, muss mich erstmal um meine Freundin kümmern :] Ich poste morgen Mittag mal die Ergebnisse...


                  Wünsch ne gute Nacht.
                  The Human Mirror - Mein Blog!
                  www.sonicsense.de - The future of music!

                  Kommentar


                  • #10
                    So, hab noch ein bisschen rumprobiert. Funktioniert nun einwandfrei. Hat jemand noch ne Idee zum optimieren?

                    PHP-Code:
                    <?PHP
                    if($_POST["sortcode"]) 
                    {
                        
                    $id $_POST["sortcode"];
                            if(
                    $csort_up) {
                                
                    $sql_csort "SELECT menusort FROM content WHERE menusort < '$id' AND status = 'category' ORDER BY menusort DESC LIMIT 1;";
                                
                    $result_csort mysql_query($sql_csort);
                                
                    $row_csort mysql_fetch_assoc($result_csort);
                                
                    $sortchange $row_csort["menusort"];
                                
                    $sql_csort_get_id_id "SELECT id FROM content WHERE menusort = '$id' AND status = 'category' ORDER BY id DESC LIMIT 1;"
                                
                    $sql_csort_get_id_sortchange "SELECT id FROM content WHERE menusort = '$sortchange' AND status = 'category' ORDER BY id DESC LIMIT 1;";
                                
                    $result_csort_get_id_id mysql_query($sql_csort_get_id_id);
                                
                    $result_csort_get_id_sortchange mysql_query($sql_csort_get_id_sortchange);
                                
                    $row_csort_get_id_id mysql_fetch_assoc($result_csort_get_id_id);
                                
                    $row_csort_get_id_sortchange mysql_fetch_assoc($result_csort_get_id_sortchange);
                                
                    $idsort $row_csort_get_id_id["id"];
                                
                    $msort $row_csort_get_id_sortchange["id"];
                                
                    $sql_sort_entry_up2 "UPDATE content SET menusort='$sortchange' WHERE id = '$idsort';";
                                
                    $sql_sort_entry_up1 "UPDATE content SET menusort='$id' WHERE id = '$msort';";
                                
                    mysql_query($sql_sort_entry_up2);
                                
                    mysql_query($sql_sort_entry_up1);
                            }
                            elseif(
                    $csort_down) {
                                
                    $sql_csort "SELECT menusort FROM content WHERE menusort > '$id' AND status = 'category' ORDER BY menusort ASC LIMIT 1;";
                                
                    $result_csort mysql_query($sql_csort);
                                
                    $row_csort mysql_fetch_assoc($result_csort);
                                
                    $sortchange $row_csort["menusort"];
                                
                    $sql_csort_get_id_id "SELECT id FROM content WHERE menusort = '$id' AND status = 'category' ORDER BY id DESC LIMIT 1;"
                                
                    $sql_csort_get_id_sortchange "SELECT id FROM content WHERE menusort = '$sortchange' AND status = 'category' ORDER BY id DESC LIMIT 1;";
                                
                    $result_csort_get_id_id mysql_query($sql_csort_get_id_id);
                                
                    $result_csort_get_id_sortchange mysql_query($sql_csort_get_id_sortchange);
                                
                    $row_csort_get_id_id mysql_fetch_assoc($result_csort_get_id_id);
                                
                    $row_csort_get_id_sortchange mysql_fetch_assoc($result_csort_get_id_sortchange);
                                
                    $idsort $row_csort_get_id_id["id"];
                                
                    $msort $row_csort_get_id_sortchange["id"];
                                
                    $sql_sort_entry_up2 "UPDATE content SET menusort='$sortchange' WHERE id = '$idsort';";
                                
                    $sql_sort_entry_up1 "UPDATE content SET menusort='$id' WHERE id = '$msort';";
                                
                    mysql_query($sql_sort_entry_up2);
                                
                    mysql_query($sql_sort_entry_up1);
                            }
                            elseif(
                    $csort_top) {
                                
                    $sql_csort "SELECT MIN(menusort) AS menusort FROM content WHERE status = 'category' ORDER BY menusort DESC LIMIT 1";
                                
                    $result_csort mysql_query($sql_csort);
                                
                    $row_csort mysql_fetch_assoc($result_csort);
                                
                    $zielwert $row_csort["menusort"];
                                
                    $sql_csort_get_id_id "SELECT id FROM content WHERE menusort = '$id' AND status = 'category' ORDER BY id DESC LIMIT 1;"
                                
                    $result_csort_get_id_id mysql_query($sql_csort_get_id_id);    
                                
                    $row_csort_get_id_id mysql_fetch_assoc($result_csort_get_id_id);
                                
                    $idsort $row_csort_get_id_id["id"];
                                
                    $sql_top "UPDATE content SET menusort = menusort+1 WHERE menusort >= '$zielwert' AND menusort < '$id' AND status = 'category';";
                                
                    $sql_top_setdata "UPDATE content SET menusort = '$zielwert' WHERE id = '$idsort';";
                                
                    mysql_query($sql_top);
                                
                    mysql_query($sql_top_setdata);
                                }
                            elseif(
                    csort_bottom) {
                                
                    $sql_csort "SELECT MAX(menusort) AS menusort FROM content WHERE status = 'category' ORDER BY menusort DESC LIMIT 1";
                                
                    $result_csort mysql_query($sql_csort);
                                
                    $row_csort mysql_fetch_assoc($result_csort);
                                
                    $zielwert $row_csort["menusort"];
                                
                    $sql_csort_get_id_id "SELECT id FROM content WHERE menusort = '$id' AND status = 'category' ORDER BY id DESC LIMIT 1;"
                                
                    $result_csort_get_id_id mysql_query($sql_csort_get_id_id);    
                                
                    $row_csort_get_id_id mysql_fetch_assoc($result_csort_get_id_id);
                                
                    $idsort $row_csort_get_id_id["id"];
                                
                    $sql_top "UPDATE content SET menusort = menusort-1 WHERE menusort <= '$zielwert' AND menusort > '$id' AND status = 'category';";
                                
                    $sql_top_setdata "UPDATE content SET menusort = '$zielwert' WHERE id = '$idsort';";
                                
                    mysql_query($sql_top);
                                
                    mysql_query($sql_top_setdata);
                            }

                    }
                    ?>
                    The Human Mirror - Mein Blog!
                    www.sonicsense.de - The future of music!

                    Kommentar

                    Lädt...
                    X