Ankündigung

Einklappen
Keine Ankündigung bisher.

Sqlwert Um 1 erhöhen

Einklappen

Neue Werbung 2019

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

  • Sqlwert Um 1 erhöhen

    hallo, ich habe eine Tabelle mit 3 Zellen in der DB:

    id,refer,count

    ...für die Datenbankspeicherung der Refererlinks einer Seite

    mit folgenden Werten:
    PHP-Code:
    <?php
    CREATE TABLE 
    `refererlinks` (
      `
    refertext NOT NULL,
      `
    idsmallint(5NOT NULL auto_increment,
      `
    countsmallint(5NOT NULL default '0',

      
    PRIMARY KEY  (`id`),
      
    UNIQUE KEY `refer` (`refer`(500)),
      
    KEY `count` (`count`)
    ?>
    wie bekommen ich es nun hin das zu:
    PHP-Code:
    <?php
    $sql2 
    'INSERT INTO `refer` (`id`, `refer`, `count`) VALUES (\'\', \''.$refer.'\', \'0\')';
    $result mysql_query($sql2);?>
    gleichzeitig 'count' um eins erhöht wird, wenn der gleiche 'refer' schon vorhanden ist in der DB?


  • #2
    Statt des Eintragens oder zusätzlich?
    Also: Nur eintragen, wenn es ein neuer Datensatz/referer ist sonst um eins erhöhen?

    Kommentar


    • #3
      wie bekommen ich es nun gleichzeitig hin das 'count' um eins erhöht wird, wenn der gleiche 'refer' schon vorhanden ist in der DB?
      also mit einer query wenns geht, andernfalls bräuchte sich für für 2 querys auch niemand schämen .
      'count' wird um 1 erhöht wenn der Wert schon vorhanden ist
      das ist alles

      Kommentar


      • #4
        Du hast die Frage nicht verstanden oder ich die Antwort nicht. Deshalb frage Ich einfach nochmal. Nur einfacher.

        referer=irgendwas
        Es gibt bereits genau einen Datensatz mit referer=irgendwas (und count=1).
        Was soll jetzt passieren?
        Einen neuen Datensatz mit referer=irgendwas,count=2 eintragen, d.h. danach gibt es zwei Datensätze mit referer=irgendwas, einmal mit count=1 und einmal mit count=2?
        Oder den bestehenden aktualisieren, d.h. es bleibt genau ein einzelner Datensatz mit referer=irgendwwas, aber aus count=1 wird count=2?

        Kommentar


        • #5
          Einfach ein Update durchführen und mit mysql_affected_rows prüfen, ob ein Datensatz betroffen war. Wenn nicht, ein Insert abschicken.

          Gruß
          phpfan

          Kommentar


          • #6
            @Bruchpilot

            sorry ich dachte das wäre ersichtlich
            PHP-Code:
            <?php
            UNIQUE KEY 
            `refer` (`refer`(500)), 
            ?>
            der referer ist nie doppelt

            Kommentar


            • #7
              PHP-Code:

              <?php
              if(eregi("[a-z0-9]",$refer)) // wenn referer Gültig ist...
              {$sql2 'INSERT INTO `refer` (`id`, `refer`, `count`) VALUES (\'\', \''.$refer.'\', \'0\')';
              $result mysql_query($sql2); // ...dann eintragen (refer= Unique)
              }

              if( 
              mysql_affected_rows() = 0//Zeile 44
              {$sql 'UPDATE `count` SET `count` = count+1  WHERE `refer` = '.$refer.'';
              $result mysql_query($sql);
              ?>
              }
              Fatal error: Can't use function return value in write context in C:\xampp\htdocs\art.php on line 44

              Kommentar


              • #8
                der referer ist nie doppelt
                stimmt, sorry. Habe ich übersehen.

                if( mysql_affected_rows() = 0) //Zeile 44
                = -> Zuweisung
                == -> Vergleich <- den willst Du

                Bei der Vorgehensweise kannst Du auch mysql_errno abprüfen anstatt mysql_affected_rows. duplicate entry hat einen bestimmten Fehlercode (den ich aber nicht auswendig kenne).

                Kommentar


                • #9
                  Ich danke!

                  Kommentar

                  Lädt...
                  X