Einträge "vertauschen"

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

  • Einträge "vertauschen"

    Hi Leute,

    Ich habe eine Benutzertabelle und eine Kundetabelle. Die Kunden sind Benutzern zugeordnet, die wiederum eine bestimmte ID haben. Ich habe rund 15 Benutzer, die insgesamt etwa 100 Kunden haben.

    Nun gibt es aber folgendes Problem. Die Benutzer wurden in der falschen Reihenfolge angelegt (die IDs sollen mit einem anderen System übereinstimmen) und damit sind auch in der Kundentabelle die falschen IDs eingetragen.

    Nun meine Frage: Wie kann ich es anstellen, dass sich alles nach dem Prinzip z.B. von

    Benutzer 1 = 1
    Benutzer 2 = 2
    Benutzer 3 = 3

    auf

    Benutzer 1 = 2
    Benutzer 2 = 3
    Benutzer 3 = 1

    ändert? Also bei den Einträgen, wo als Benutzer früher 1 drinnen stand, soll nun 2 stehen.

    Ich dachte da an eine While-Schleife, die mir alle Kunden nach der Reihe ausliest. Danach folgenden Teil:

    PHP-Code:
    $search = array("/7/""/8/""/9/""/3/""/2/""/4/""/19/");
    $replace = array("2""3""4""5""7""8""9");

    // SCHLEIFE ANFANG {

    $new_id preg_replace($search$replace$current_id);

    // SCHLEIFE ENDE } 
    Nun gibt's da aber noch ein zweites Problem: Es gibt auch schon Benutzer, die eine zweistellige ID haben. Wenn nun z.B. einer Nummer 12 hat, würde der 2er durch einen 7er ersetzt werden und daher würde auch dieser von 12 auf 17 geändert werden, obwohl ich das gar nicht will!

    Hat da jemand eine Lösung?

    Danke schon mal!

    Greetz Lukas

  • #2
    /^12$/

    ^ und $ sagen, dass vor und nach 12 nichts mehr stehen darf
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Aja, genau... die regulären Ausdrücke

      Leider funkt das nicht so, ich ich möchte:

      PHP-Code:
      $search = array();
          
      $search[1] = "/^7$/";
          
      $search[2] = "/^8$/";
          
      $search[3] = "/^9$/";
          
      $search[4] = "/^3$/";
          
      $search[5] = "/^2$/";
          
      $search[6] = "/^4$/";
          
      $search[7] = "/^19$/";



      $replace = array();
          
      $replace[1] = "2";
          
      $replace[2] = "3";
          
      $replace[3] = "4";
          
      $replace[4] = "5";
          
      $replace[5] = "7";
          
      $replace[6] = "8";
          
      $replace[7] = "9";

      // Schleife usw... 
      Es werden nicht die richtigen Werte durch die richten ersetzt. Es wird zum Beispiel 9 durch 8 und nicht 9 durch 4 ersetzt. Der Index der beiden Arrays läuft doch synchron oder? Also wenn das 4. Element des 1. Arrays dran ist, wird dieser doch durch das 4. Element des 2. Arrays ersetzt oder?

      Interessant ist, dass wenn ich das 2. so schreibe, es dann funkt:

      PHP-Code:
          $replace[1] = "/^2$/"// Hab das nur mal so ausprobiert... 
      Muss ich das 2. auch noch formatieren?

      Danke, Lukas

      Kommentar


      • #4
        interessant ist auch, dass sogar das hier reicht, damit alles funktioniert:

        PHP-Code:
        $replace[1] = " 2"// also ein simples Leerzeichen vor dem 2er 
        Ohne irgendwelche Zusatzzeichen geht das einfach nicht...

        Danke!

        Greetz Lukas

        Kommentar

        Lädt...
        X