Eintrag verhindern falls vorhanden

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

  • Eintrag verhindern falls vorhanden

    Hallo,

    Ich möchte gerne hier den Eintrag verhindern wenn schon eines existiert. Was sollte ich dazwischen genau einsetzen?

    Original
    PHP-Code:
    if(isset($_GET['up']))
    {
      if(
    strlen($_GET['up'])==71)
      {
        
    db_conn();
        
    $raw explode(":",$_GET['up']);
        
    $sql "UPDATE ".$database_table." SET status='".$raw[1]."',upl_time='".time()."' WHERE hash='".$raw[0]."' LIMIT 1";
        if(
    mysql_query($sql))
        {
        print 
    "ACK";
        } 
        else
        print 
    "NACK";

      }
      exit;


    mfg
    Zuletzt geändert von karabey81; 18.06.2011, 17:25.

  • #2
    Gibt 2 Möglichkeiten:

    1) Vorher ne explizite SELECT Abfrage machen (dazwischen müsste die DB dann gelockt werden)

    2) Entsprechenden UNIQUE Key setzen. Dann wirft die DB nen Fehler (#1052?) den du sogar abfangen kannst.

    Kommentar


    • #3
      Zitat von karabey81 Beitrag anzeigen
      Ich möchte gerne hier den Eintrag verhindern wenn schon eines existiert.
      Das ergibt in Bezug auf UPDATE nicht besonders viel Sinn.
      Meintest du vielleicht ein INSERT stattdessen ...?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Zumindest wenn die einzigartige Eigenschaft verändert werden kann (z.B. bei Dateinamen) wäre diese Überprüfung auch bei UPDATE angebracht.

        Kommentar


        • #5
          Da ich jetzt eine Datei mit dem Inhalt der Felder erstelle habe ich mir so etwas ausgedacht. Nur die wird auch immer wieder überschrieben.

          Ich glaube ich mach immer noch etwas falsch


          PHP-Code:
          if(isset($_GET['up']))
          {
            if(
          strlen($_GET['up'])==71)
            {
              
          db_conn();
              
          $raw explode(":",$_GET['up']);
              if(!isset(
          $row["status"]))
                  {
                      
          $sql "UPDATE ".$database_table." SET status='".$raw[1]."',upl_time='".time()."' WHERE hash='".$raw[0]."' LIMIT 1";
                          if(
          mysql_query($sql))
                          {
                          print 
          "ACK";
                          
          $result mysql_query("SELECT * FROM ".$database_table." WHERE status !='Pending' ORDER BY id DESC LIMIT 0,1");
                          if(!
          $result) echo "err".mysql_error();
                          
          $file="$row[imei].cod";
                              if(!
          file_exists($file))
                              {
                                  
          $row mysql_fetch_array($result);
                                  
          $file="$row[imei].cod";
                                  
          $fp fopen("$file""w+");
                                  
          $text "[IMEI]\n$row[imei]]";
                                  
          $text stripslashes($text);
                                  
          fputs($fp,$text);
                                  
          fclose($fp);
                                  
          mysql_close($sql);
                              }
                          }
                  }
                  else
                  {
                  print 
          "NACK";
                  }
                  
          }
          exit;

          Zuletzt geändert von karabey81; 19.06.2011, 15:12.

          Kommentar


          • #6
            Zitat von karabey81 Beitrag anzeigen
            Da ich jetzt eine Datei mit dem Inhalt der Felder erstelle habe ich mir so etwas ausgedacht.
            Wozu eigentlich - du hast die Daten doch schon in der Datenbank gespeichert ...?

            Nur die wird auch immer wieder überschrieben.

            Ich glaube ich mach immer noch etwas falsch
            Stelle das error_reporting vernünftig ein (auf E_ALL, und display_errors auf 1) - dann sagt dir PHP, was du falsch machst.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Die Datei muss später mal als Email Attachment versendet werden. Deshalb als Datei.

              Ich habe schon die error reporting eingestellt nur habe keine Fehler meldungen. Ich meine mit falsch das ich die IF schleife nicht logisch definiere um ein nächstes Eintrag zu verhindern.

              Kommentar


              • #8
                Welchen Wert hat denn $file an der Stelle, wo du die Existenz der Datei prüfen willst ...?

                (Bitte durch eine Kontrollausgabe verifizieren!)
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X