Doppelter eintrag

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

  • Doppelter eintrag

    Hallo zusammen

    Mein Problem ist ich möchte daten die hintereinander in einem Textfeld durch leerzeichen getrennt eingegeben wurden überprüfen, was soweit kein ding ist nur wenn erkannt wurde das ein eintrag schon vorhanden ist (die zeichenkette wird übrigens zerlegt) wird durch ein return praktisch abgebrochen und die werte werden nicht an die tabelle übergeben

    hier noch ein beispiel:

    Textfeld: 123.123.123 124.124.124

    so wenn jetzt, sagen wir mal der zweite wert schon in der tabelle drin steht wird genau da abgebrochen und der erste wert wird auch nicht übernommen.
    Ich hatte mir das dann so vorgestellt den wert der doppelt ist zurück zusetzen nur weiss ich gerade nicht wie.

    hier mal ein ausschnitt
    PHP-Code:
    $count strtok ($_POST['zahl']," ");
    $suchmuster = array ("/(\d+)-(\d+)-(\d+)/""/(\d+).(\d+).(\d+)/""/(\d+),(\d+),(\d+)/");
    $ersetzen = array ("\\1:\\2:\\3""\\1:\\2:\\3""\\1:\\2:\\3");
    while (
    $count) {
    $zahl preg_replace($suchmuster$ersetzen$count);

    $sql="select number from table";
    $result=mysql_query($sql);
    while (
    $wert mysql_fetch_array($result))
    {
    if(
    $wert['number']=="$zahl"){echo "Schon vorhanden. $zahl"; return;}
    }

    $sql "INSERT INTO table SET spalte='$zahl'";
    mysql_query($sql) OR die(mysql_error());

    $count strtok (" ");

    Zuletzt geändert von Meisterpz; 08.06.2005, 04:44.

  • #2
    Du meinst sowas wie break?
    PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

    Kommentar


    • #3
      break habe ich auch probiert aber da wird der wert der dann zwar als doppelt angezeigt wurd trotzdem mit übernommen

      Kommentar


      • #4
        Was ist denn "trotzdem mit übernommen", wohin wird er übernommen. Ich muss zugeben dass ich nicht ganz verstehe was du willst.


        Einerseits sprichst du davon das du die Schleife abbrechen willst:

        wird durch ein return praktisch abgebrochen und die werte werden nicht an die tabelle übergeben

        Davon das du schon vor der Schleife prüfen willst ob der Wert schon existiert (wenn du in jedem Schleifendurchlauf die Daten "übernimmst"):

        so wenn jetzt, sagen wir mal der zweite wert schon in der tabelle drin steht wird genau da abgebrochen und der erste wert wird auch nicht übernommen.

        Und das du den Wert "zurück setzen" willst, was auch immer "zurück setzen" ist. Löschen? Überspringen?

        Ich hatte mir das dann so vorgestellt den wert der doppelt ist zurück zusetzen nur weiss ich gerade nicht wie.


        Eventuell könntest du mich mal darüber Aufklären was du willst
        PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

        Kommentar


        • #5
          also das ganze wird halt in eine datenbank geschrieben zeilenweise und erst würd der komplette inhalt der im textfeld eingegeben wurde durchlaufen und bei dieser action würd auch gleich geprüft ob einer der werte schon in der datenbank vorhanden ist, wenn es andem ist wird an dieser stelle abgebrochen und die werte die noch nicht durchgelaufen sind werden nicht mehr beachtet und gehen verloren genauso wie die die vor dem doppelten eintrag durchlaufen worden sind, weil ich wie du ja oben sehen kannst durch ein return anhalten lasse, was ich jetzt aber ändern will, wie du schon gefragt hast wäre ein Überspringen wohl das richtige des doppelten eintrags, denn die daten sollen ja nunmal in die datenbank rein
          Zuletzt geändert von Meisterpz; 04.06.2005, 22:03.

          Kommentar


          • #6
            Also continue ?
            PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

            Kommentar


            • #7
              ne leider auch nicht, ich habe es auch schon mit str_replace versuch nur löscht er dann den wert und der eintrag ist dann leer, gibt es nicht sowas wie ( goto zurück ).

              Zuletzt geändert von Meisterpz; 04.06.2005, 22:51.

              Kommentar


              • #8
                also ich denke mal so wie der code ist müsste oder sollte es einen weg geben der es ermöglicht zwischen der WHILE schleife immer dann wenn die IF anweisung bemerkt hat das es sich um einen Doppelten eintrag handelt sowas wie eine rückruf funktion einzubauen, um dann den nähsten wert aus dem Textfeld zubearbeiten.

                PHP-Code:
                while ($wert mysql_fetch_array($result))
                {
                if(
                $wert['number']=="$zahl"){echo "Schon vorhanden. $zahl"; return;}

                Kommentar

                Lädt...
                X