Problem mit position

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

  • Problem mit position

    Erst mal mein Script:

    PHP-Code:
    if($_REQUEST['go']=="down"){
        
    $i=1;
        
    $posm mysql_query("SELECT * FROM sites ORDER by pos");
        while(
    $pos mysql_fetch_array($posm)){
            
    $poss[$i]['id'] = $pos['id'];
            
    $poss[$i]['position'] = $pos['pos'];
            
    $i++;
        }
    $ist      $poss[$_REQUEST['id']]['position'];
    $muss     = ($poss[$_REQUEST['id']]['position']+1);

    foreach ( 
    $poss as $value ){
            if(
    $value['position'] == $muss){
                
    $change $value['id'];
            }
    }
    mysql_query("UPDATE sites SET pos='99999' WHERE id='".$change."'");
    mysql_query("UPDATE sites SET pos='".$muss."' WHERE id='".$_REQUEST['id']."'");
    mysql_query("UPDATE sites SET pos='".$ist."' WHERE id='".$change."'");

    meine Tabelle ist:

    id | pos | text

    Was soll das Skript tun?
    Es soll die jeweige Position um eine Position nach unten verschieben! Das Problem ist folgendes:

    Beim ersten mal verschiebt der absolut richtig - führe ich dies erneut aus, nimmt er dieselben ID's für die "mysql_query's". Wo steh ich da aufm schlauch? Ich erkenn den Fehler grade nich ...
    Signatur-Text ...

  • #2
    AHHHH - grade selbst gesehen ...
    ich kann doch nicht die id für $i nehmen xD

    Sorry
    Signatur-Text ...

    Kommentar


    • #3
      Für die, die ma sowas brauchen - so iss richtig:

      PHP-Code:
      if($_REQUEST['go']=="down"){
          
      $i=1;
          
      $posm mysql_query("SELECT * FROM sites ORDER by pos");
          while(
      $pos mysql_fetch_array($posm)){
              
      $poss[$i]['id'] = $pos['id'];
              
      $poss[$i]['position'] = $pos['pos'];
              
      $i++;
          }

      foreach ( 
      $poss as $value ){
              if(
      $value['id'] == $_REQUEST['id']){
                  
      $ist $value['position'];
              }
              
      $muss $ist+1;
              if(
      $value['position'] == $muss){
                  
      $change $value['id'];
              }
      }

      mysql_query("UPDATE sites SET pos='99999' WHERE id='".$change."'");
      mysql_query("UPDATE sites SET pos='".$muss."' WHERE id='".$_REQUEST['id']."'");
      mysql_query("UPDATE sites SET pos='".$ist."' WHERE id='".$change."'"); 
      Signatur-Text ...

      Kommentar


      • #4
        es geht auch konsistenter (sprich, mit einer update-query): http://php-resource.de/forum/showthr...threadid=60429

        das feld id sollte vermutlich kein string sein?

        Kommentar

        Lädt...
        X