Sarah: Einträge verschieben

Guten morgen zusammen,

ich hatte das Problem schon mal kurz angesprochen.
Bin aber leider nicht weitergekommen.

Ich ziehe meine Daten aus der Datenbank, diese sieht ungefähr so aus.

1.  Projektname   'oben'   'unten'
2.  Stückzahl     'oben'   'unten'
3.  Dauer         'oben'   'unten'

Klicke ich jetzt bei Eintrag 3. auf 'oben' soll dieser Eintrag um eins nach oben verschoben werden. Also Eintrag 3 soll dann an stelle 2 stehen und Eintrag 2 an Stelle 3.

Dies soll belibig erweiterbar sein. Das Prinzip ist eigendlich recht simple der Eintrag soll eben um 1. Stelle nach oben oder nach unten Verschoben werden.

Hier mal meine jetzige Ausgabe.
<b>Completed Cells</b><br><br>
<?
while($c=mysql_fetch_object($completed_result))
{
?><table>
 <tr>
 <td>
 <?echo "$c->Inhalt1";?>
 <?echo '<ahref="'.$_SERVER['PHP_SELF'].'?action=delete&amp;ids='.$c->IDs.'">
 <img src="oben.gif" border=0></a>'; ?>

<?echo '<ahref="'.$_SERVER['PHP_SELF'].'?action=delete&amp;ids='.$c->IDs.'">
<img src="unten.gif" border=0></a>'; ?>
 </td>
</table>
 <?
}
?>

Hoffe ihr könnt mir helfen, komme damit wirklich nicht klar.
Vielen Dank
Sarah

  1. Hi,

    Hoffe ihr könnt mir helfen, komme damit wirklich nicht klar.

    im prinzip ganz einfach. du machst ein array:

      
    $anzeige_reihengolge[0] = "Projektname";  
    $anzeige_reihengolge[1] = "Stückzahl";  
    $anzeige_reihengolge[2] = "Dauer";  
    
    

    dann gehst du das array durch:

      
    foreach($anzeige_reihengolge as $angezeigen)  
    {  
      if($angezeigen == "Projektname")  
      {  
        // ausgabe Projektname  
      }  
      if($angezeigen == "Stückzahl")  
      {  
        // ausgabe Stückzahl  
      }  
      if($angezeigen == "Dauer")  
      {  
        // ausgabe Dauer  
      }  
      // etc.  
    }  
    
    

    dann brauchst noch die links oder submitbuttons in denen du dann die nummer des arrays übergibst, außerdem die aktuellen werte des arrays

      
    if(isset($up))  
    {  
      $key = $up  
      if($key>=1)  
      {  
        $vorherkey = $key-1  
        $zwischenspeicherung = $anzeige_reihengolge[$vorherkey];  
        $anzeige_reihengolge[$vorherkey] = $anzeige_reihengolge[$key];  
        $anzeige_reihengolge[$key] = $zwischenspeicherung;  
      }  
    }  
    
    

    das soll nur als denkanstoss genommen werden

    MfG

    1. Hallo
      ich komme mit dem letzten Teil deines Postings nicht so ganz klar wo füge ich denn nun meine Links und wie sähen diese aus.

      Schonmal Danke
      Sarah

      1. Hi,

        ich komme mit dem letzten Teil deines Postings nicht so ganz klar wo füge ich denn nun meine Links und wie sähen diese aus.

        wo du sie einfügst? na da wo du sie haben willst, wo denn sonst?
        das ganze sieht ja in etwa so aus:

        -------------------------------
        | Ausgabe1    | hier evt.link |
        -------------------------------
        | Ausgabe2    | hier evt.link |
        -------------------------------
        | Ausgabe3    | hier evt.link |
        -------------------------------

        mit dem link verweist du auf dein script also: <a href="dein_script.php">
        und gibst mit welche ausgabe früher kommen soll. also <a href="dein_script.php?up=hier steht die ausgabe position">
        BEACHTE DAS DAS ARRAY BEI 0 UND NICHT BEI 1 BEGINNT

        MfG

        1. Also es tut mir wirklich total leid aber ich blicke da nicht durch.
          Muss evt dazu sagen das ich mit PHP erst 1 Woche Programmiere.

          Mein Code sieht jetzt so aus:

          $anzeige_reihengolge[0] = "Test1";
           $anzeige_reihengolge[1] = "Test2";
           $anzeige_reihengolge[2] = "Test3";
           $completed_result = @mysql_query("SELECT * FROM completedcells");
           while($c=mysql_fetch_object($completed_result))
           {
            foreach($anzeige_reihengolge as $angezeigen)
            {
             if($angezeigen == "Test1")
             {
              echo "$c->Inhalt1";

          }
             if($angezeigen == "Test2")
             {
              echo "$c->Inhalt1";
              echo '<a href="'.$_SERVER['PHP_SELF'].'?up'.$up.'">
                   up</a>';
             }
             if($angezeigen == "Test3")
             {
              echo "$c->Inhalt1";
             }

          }
           }
           if(isset($up))
           {
           $key = $up;
           if($key>=1)
           {
            $vorherkey = $key-1;
            $zwischenspeicherung = $anzeige_reihengolge[$vorherkey];
            $anzeige_reihengolge[$vorherkey] = $anzeige_reihengolge[$key];
            $anzeige_reihengolge[$key] = $zwischenspeicherung;
           }
          }

          Damit sollte es doch möglich sein 'Test2' an die erste Stelle zu schieben.
          Nochmal sorry wenn ich was blöd frage. *schnief*
          Danke dir
          Sarah

    2. Hi,

      $anzeige_reihengolge[0] = "Projektname";
      $anzeige_reihengolge[1] = "Stückzahl";
      $anzeige_reihengolge[2] = "Dauer";

        
      Hier anstatt der namen eindeutige ID's zu verwenden ist natürlich ratsam  
        
      
      > ~~~php
        
      
      > foreach($anzeige_reihengolge as $angezeigen)  
      > {  
      >   if(...)  
      > }  
      > 
      
      

      hier würde sich je nach umfang auch ein switch anbieten.

      dann brauchst noch die links oder submitbuttons in denen du dann die nummer des arrays übergibst, außerdem die aktuellen werte des arrays

      das array musst du zuvor mit urlencode umwandeln. ich hoffe das
      PHP-Handbuch ist dir bekannt

      MfG