kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Seitensortierung per ID

    geschrieben von platon123456

    Hallo,

    ich habe eine Seitensortierung per ID. Wenn ich nun IDs ändern will habe ich einen Array mit den altern Werten und einen mit den neuen. DIe ausgeführten Querys sind beispielsweise:

    UPDATE sys_categories_security SET ID = \'1\' WHERE ID = \'0\'
    UPDATE sys_categories_security SET ID = \'2\' WHERE ID = \'1\'
    UPDATE sys_categories_security SET ID = \'0\' WHERE ID = \'2\'

    Wie man hier sehen kann, werden die korrekten Querys geliefert, überschneiden sich jedoch. Ideal wäre eine Lösung, die wie eine chemische Reaktion funktioniert: Man weiß nicht, ob die alte Bindung zuerst gebrochen oder die neue sich zuerst gebildet hat, weil es gleichzeitig passiert. Aug gut deutsch: Die Dinger müssen wohl gleichzeitg ausgeführt werden.

    Vielleicht hat ja einer eine Idee.

    Schon einmal Danke im vorraus.

    Felix
  • in: Problem bei Rückgabe eines Arrays

    geschrieben von platon123456

    So, zur Aufklärung:

    Niemand konnte mir den Fehler nennen, aber mit Schleife funktionierts^^

    function makeHigher( $return, $pos, $value, $end ) { 
    
    for($i=$end;$i>$pos;$i--) 
    { 
    $return[$i] = $return[$i-1]; 
    } 
    $return[$pos] = $value; 
    return $return; 
    } 
    
    function makeDowner( $return, $pos, $value, $end ) { 
    for($i=$end;$i<$pos;$i++) 
    { 
    $return[$i] = $return[$i+1]; 
    } 
    $return[$pos] = $value; 
    return $return; 
    } 
    
    function movePosition( $return, $pos, $value, $end ) { 
    if( $pos > $end ) { 
    $returnNeu = makeDowner( $return, $pos, $value, $end ); 
    } 
    else if( $pos < $end ) { 
    $returnNeu = makeHigher( $return, $pos, $value, $end ); 
    } 
    return $returnNeu; 
    }
  • in: Problem bei Rückgabe eines Arrays

    geschrieben von platon123456

    Hallo liebe Community,

    ich habe eine Funktion geschrieben, die es ermöglicht innerhalb eines Arrays Werte zu verschieben. Da wird beispielswese benötigt, wenn bei einem CMS die Seiten-IDs und damit die Reihenfolge geändert werden soll.

    Leider hat der Array nach dem Aufruf keinen Wert mehr. Innerhalb der Funktion, vor allem kurz vor der Rückgabe, hat er jedoch seinen korrekten Wert. Hier ist das Testprogramm:

    In diesem Fall wird der Wert $test[3] nach $test[1] verschoben. Der Rest der Werte rückt auf.

    <?php
    
    function makeHigher( $return, $pos, $value, $end ) {
            if( $pos <= $end ) {
                    $temp = $return[$pos];
                    $return[$pos] = $value;
                    $pos++;
                    makeHigher( $return, $pos, $temp, $end );
            }
            else {
                    return $return;
            }
    }
    
    function makeDowner( $return, $pos, $value, $end ) {
            if( $pos >= $end ) {
                    $temp = $return[$pos];
                    $return[$pos] = $value;
                    $pos--;
                    makeDowner( $return, $pos, $temp, $end );
            }
            else {
                    return $return;
            }
    }
    
    function movePosition( $return, $pos, $value, $end ) {
            if( $pos > $end ) {
                    return makeDowner( $return, $pos, $value, $end );
            }
            else if( $pos < $end ) {
                    return makeHigher( $return, $pos, $value, $end );
            }
            else {
                    return $return;
            }
    }
    
    $test = array();
    $loop = 0;
    $end = 5;
    while( $loop <= $end ) {
            $test[$loop] = \"wert[$loop]\";
            echo \"$test[$loop]<br>\";
            $loop++;
    }
    
    echo \"<br>\";
    
    $test = movePosition( $test, 1, $test[3], 3 );
    
    echo \"<br>\";
    
    $loop = 0;
    $end = 5;
    while( $loop <= $end ) {
            echo \"$test[$loop]<br>\";
            $loop++;
    }
    
    ?>



    Beitrag geändert: 19.7.2008 15:50:12 von platon123456

Login zum Webhosting ohne Werbung!