php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.04.2009, 08:37  
Benutzer
 
Registriert seit: 04.11.2008
Beiträge: 41
Jacke befindet sich auf einem aufstrebenden Ast
Standard Insert ... On duplicate key update

Hallo, ich möchte bei mir Daten in eine MySQL DB schreiben. Ist ein Eintrag schon vorhanden, soll ein update erfolgen. Existiert der Eintrag noch nicht soll er angelegt werden.
Wie bekomme ich es realisiert?


PHP-Code:
    //Prüfung, ob der Datensatz schon besteht, in Abhängigkeit vom Datum.            
    
$pruefen mysql_query("SELECT * FROM seitenzahlen WHERE Datum='".$datum."'");
#######################___Daten einfügen oder updaten___###########################    
    // $count = count($arrStand)+1; (Wird in den eingebundenen Seiten definiert)    
        
for($i 1;$i $count$i++) {    
        
            if(
mysql_num_rows($pruefen)) {
            
                
$eintrag "UPDATE ".
                                
"seitenzahlen ".
                           
"SET ".
                                
"Seitenzahlen='".$arrStand[$i]."' ".
                           
"WHERE ".
                                
"Datum = '".$datum."' AND Name= '".$arrName[$i]."'";
                                
                
// Daten eintragen.                
                
mysql_query($eintrag) or die(mysql_error()); 

            
$datastatus "Die Daten wurden aktualisiert!";                
            } else {    
 
                 
$eintrag "INSERT INTO seitenzahlen (Datum, Seitenzahlen,Name) VALUES ('$datum', '$arrStand[$i]','$arrName[$i]')";    
                 
                
// Daten eintragen.    
                
mysql_query($eintrag) or die(mysql_error()); 
                
            
$datastatus "Neue Datensätze wurden der Datenbank hinzugefügt.";
            
$sendmail true;
            }
        } 
Wenn ein Eintrag mit dem heutigen Datum existiert in Abhängigkeit vom Namen, soll ein Update erfolgen, liegt zu diesem Namen noch nicht das heutige Datum vor, soll ein Eintrag erfolgen.

Mein Script, macht ein Update von allen oder fügt alle ein, ich lese aber die Seitenzahlen von Druckern aus, dabei kann es natürlich passieren, dass ein Drucker beim ersten Scriptdurchlauf noch nicht eingeschaltet war, dann bekomm ich für den gesamten Tag keine Informationen von dem Drucker.
Die Lösung soll folgender INSERT-Befehl sein:

INSERT ... ON DUPLICATE KEY UPDATE

Jedoch, bekomm ich es nicht hin. Kann mir einer sagen wie ich es schreiben muss?
Hoffe jemand kann mir helfen, vielen DANK
Jacke ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.04.2009, 10:23  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Du musst für Datum+Name einen unique key in der Datenbank anlegen.
Wenn das noch nicht passiert ist, kannst Du das mit
Code:
CREATE INDEX datename ON seitenzahlen (`Datum`,`Name`)
nachholen.
Und dann fasst Du INSERT und UPDATE zu
Code:
$eintrag = "
  INSERT INTO
    seitenzahlen
    (Datum, Name, Seitenzahlen)
  VALUES
    ('$datum', '$arrName[$i]', '$arrStand[$i]')
  ON DUPLICATE KEY UPDATE
    Seitenzahlen='$arrStand[$i]'
";
zusammen.
David ist offline   Mit Zitat antworten
Alt 08.04.2009, 14:11  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Themenmoderation:
[→] Verschoben von PHP-Einsteiger
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
nested sets update und insert auf eine tabelle in einer aktion litterauspirna Datenbanken 9 09.11.2008 13:57
Abfrage was er gemacht hat INSERT ... ON DUPLICATE KEY Oetzi Datenbanken 16 16.07.2008 18:36
INSERT.. ON DUPLICATE KEY UPDATE cycap Datenbanken 3 26.10.2007 13:08
Pathfinding Algorithmus optimieren? (Algorith. von Dijkstra) Martin13 PHP Tipps 2007 19 04.09.2007 19:20
Update und Insert in einem ? sponer Datenbanken 6 01.07.2007 16:02
Update -> AffectedRows -> Insert R4v3r Datenbanken 6 12.06.2007 11:13
INSERT.. on duplicate key UPDATE... - sinnvoll? mrSpok Datenbanken 3 28.11.2006 10:14
Differenz zwischen 2 Zahlen duderino PHP Tipps 2006 19 10.08.2006 22:12
Wenn datensatz existier update sonst insert axelnes Datenbanken 9 27.04.2006 23:49
PRoblem mit Cookie bei PHPbb-Board PHP Tipps 2007 8 12.12.2005 20:56
PHP-Fehlermeldung, weiss nicht mehr weiter PHP Tipps 2005-2 12 21.09.2005 12:56
mysql dump einspielen (ohne phpmyadmin) PHP Tipps 2005-2 6 18.06.2005 21:50
[Erledigt] fehler den ich noch nie gesehen habe Datenbanken 7 09.06.2005 14:29
Insert und Update Befehl funktioniert nicht Anuschka Datenbanken 2 03.09.2004 00:38
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
on duplicate key update, insert into on duplicate key update, insert on duplicate key update, http://www.php.de/datenbanken/53900-insert-duplicate-key-update.html, insert on duplicate key, mysql on duplicate key update, mysql on duplicate key, insert ... on duplicate key update, insert into duplicate, on duplicate key, insert on duplicate, on duplicate key update if, mysql on duplicate key update set, mysql_query \on duplicate update\ where, mysql on duplicate key update php, insert on update, insert into duplicate key, insert update php, insert into on duplicate, on duplicate

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:42 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum