"Codeverbesserung"

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

  • "Codeverbesserung"

    Hallo!

    Ich habe ein Frage/Bitte an das geschätze Forumpublikum,

    seit langem programmiere ich an meinen CMS herum, z.Zt. bin ich dabei Untersuchungstexte(die Seite wird sich mit Nuklearmedizin befassen) zu reihen.

    Ich hab da einen funktionierenden Code geschrieben, das Problem ist aber, dass er dennoch "starr" ist.
    Seht es euch am besten selber an:

    PHP-Code:
    <?php
    // 1. Deklaration der Variablen:
    include("../config.php");
    include(
    "../checklogin.php");
    include(
    "../protokoll.php");

    if(
    $pos == "1"){
        echo 
    "Untersuchung ist bereits an Erster Stelle!"; }
        else{
        
        if(
    $pos == "2"){
            
    $query=("SELECT id,pos from diagnostik where pos = 1");
            
    $result=mysql_query($query,$db);
            
    $output=mysql_fetch_array($result);
            
    mysql_query ("UPDATE diagnostik SET pos = $output[pos] +1 WHERE id = $output[id]");
            
    mysql_query ("UPDATE diagnostik SET pos = $pos - 1 WHERE id = $id");
            
    header("Location: us_pos_change_new.php");
        }
        if(
    $pos == "3"){
            
    $query=("SELECT id,pos from diagnostik where pos = 2");
            
    $result=mysql_query($query,$db);
            
    $output=mysql_fetch_array($result);
            
    mysql_query ("UPDATE diagnostik SET pos = $output[pos] +1 WHERE id = $output[id]");
            
    mysql_query ("UPDATE diagnostik SET pos = $pos - 1 WHERE id = $id");
            
    header("Location: us_pos_change_new.php");
        }
        if(
    $pos == "4"){
            
    $query=("SELECT id,pos from diagnostik where pos = 3");
            
    $result=mysql_query($query,$db);
            
    $output=mysql_fetch_array($result);
            
    mysql_query ("UPDATE diagnostik SET pos = $output[pos] +1 WHERE id = $output[id]");
            
    mysql_query ("UPDATE diagnostik SET pos = $pos - 1 WHERE id = $id");
            
    header("Location: us_pos_change_new.php");
        }
        if(
    $pos == "5"){
            
    $query=("SELECT id,pos from diagnostik where pos = 4");
            
    $result=mysql_query($query,$db);
            
    $output=mysql_fetch_array($result);
            
    mysql_query ("UPDATE diagnostik SET pos = $output[pos] +1 WHERE id = $output[id]");
            
    mysql_query ("UPDATE diagnostik SET pos = $pos - 1 WHERE id = $id");
            
    header("Location: us_pos_change_new.php");
        }
        }
            
            
    mysql_close();
    ?>
    was ich jetzt weg haben will ist das hier

    "if($pos == "3"){"

    ich wieß ja nicht wieviel Texte noch folgen, zur Zeit sind es 5. wenns dann 7 oder 8 sind, geht das dann nicht mehr.

    Ich denke mal, dass das mit Arrays funktioniert, mit denen kenne ich mich so gut wie nicht aus. Ich wäre sehr dankbar für Hilfe - da es auch meine Diplomarbeit ist

    LG aus Österreich
    Clemens Heisinger

  • #2
    du schiebst damit einen eintrag um eine position rauf oder?

    von 2 auf 1, von 3 auf 2 usw. oder?

    PHP-Code:
    $sql='SELECT pos
    FROM diagnostik
    WHERE id='
    .$id;
    $pos=mysql_fetch_assoc(mysql_query($sql));
    if (
    $pos['pos']>0)
    {
      
    $sql='UPDATE diagnostik
        SET pos=pos-1
        WHERE id='
    .$id;
      
    mysql_query($sql);
      
    $sql='UPDATE diagnostik
        SET pos=pos+1
        WHERE pos='
    .($pos['pos']-1).' AND id!='.$id;
      
    mysql_query($sql);

    sollte gehen so, musst in deinen links halt die id übergeben
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      SUPI!!!

      1000 Dank - funktioniert so wie ich es mir vorgestellt habe!!

      Eine Frage nur:

      was genau macht diese Zeile?

      PHP-Code:
      $pos=mysql_fetch_assoc(mysql_query($sql)); 
      LG
      Clemens

      Kommentar


      • #4
        Original geschrieben von whistler81
        SUPI!!!

        1000 Dank - funktioniert so wie ich es mir vorgestellt habe!!
        immer wieder gern

        Eine Frage nur:

        was genau macht diese Zeile?

        PHP-Code:
        $pos=mysql_fetch_assoc(mysql_query($sql)); 
        das gleiche wie in deinem code
        PHP-Code:
        $result=mysql_query($query,$db);
        $output=mysql_fetch_array($result); 
        nur eben in einer zeile, weil ich grad faul war/bin
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Er meint warscheinlich warum mysql_fetch_assoc und nicht mysql_fetch_array

          Der Unterschied würde mich auch mal interesieren.

          Kommentar


          • #6
            aha

            und weil ich nicht so bin könnts euch ja mal meine Website ansehen

            http://www.nukwieneu.wiener-neustadt.at

            Thx
            Clemens

            Kommentar


            • #7
              Original geschrieben von Maggi
              Der Unterschied würde mich auch mal interesieren.
              und mich erst

              aber in langwieriger arbeit (dekompilieren, disassemblieren und rot13-verschlüsselung aufheben von php waren nötig)habe ich einen link gefunden, der zum quelltext von php führt
              dieser quelltext wurde von mir akribisch untersucht, die relevanten codestellen wurden eruiert, interpretiert und verstanden

              die ergebnisse meiner arbeit findest du hier (mysql_fetch_array), hier (mysql_fetch_assoc) und hier (mysql_fetch_row)

              P.S.
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar

              Lädt...
              X