Eintrag verhindern falls vorhanden

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by karabey81; 18-06-2011, 16: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.

    Comment


    • #3
      Originally posted by karabey81 View Post
      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.

      Comment


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

        Comment


        • #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;

          Last edited by karabey81; 19-06-2011, 14:12.

          Comment


          • #6
            Originally posted by karabey81 View Post
            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.

            Comment


            • #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.

              Comment


              • #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.

                Comment

                Working...
                X