SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 21.12.2003, 16:28:11
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
Überprüfen ob Daten schon in der Tabelle vorhanden?

Hallo,
ich habe heute versucht mich ein wenig mit mySQL auseinander zu setzen und bin nicht weit gekommen! Versuche momentan ein Script zu schreiben, was die Anzahl der Besucher jährlich, monatlich und täglich aufzeichnet und in einer DB speichert! Dies sollte mit einer IP-Sperre von 1 Stunde erfolgen! Da ich schon daran hängen bleibe wie man prüft ob die Daten schon vorhanden sind, wende ich mich nun an euch..

Also es gibt 1 Tabelle "staistiken" in denen folgende Felder vorhanden sind ID, Jahr, Monat, Tag, Anzahl !

Das Script soll nun prüfen ob das aktuelle Datum schon vorhanden (bekomme ich nicht hin) ist und Anzahl + 1 rechnen und wieder reinschreiben. Wenn nicht, soll es einen neuen Datensatz anlegen, wobei Anzahl auf 1 gesetzt wird (einfach)!

Wer weiss weiter?

Ich habe schon einen kleinen Code zusammen, aber irgendwie funzt der net!


PHP-Code:
include("dbconnect.php4");


$jahrnow date("Y");
$monatnow date("m");
$tagnow date("d");

$abfrage = ("SELECT anzahl FROM statistiken WHERE jahr = $jahrnow AND monat = $monatnow AND tag = $tagnow");
$ergebnis mysql_query($abfrage);
print 
$ergebnis;
if(
$ergebnis){
    
$array mysql_fetch_row($ergebnis);
    
$array[0]++;
    
$eintrag "UPDATE `statistiken` SET `anzahl` = $array[0] WHERE jahr = $jahrnow AND monat = $monatnow AND tag = $tagnow";
    
$eintragen mysql_query($eintrag);
    print 
"Erfolg";
} else
{    
    
$eintrag "INSERT INTO statistiken (jahr, monat, tag, anzahl) VALUES ($jahrnow,$monatnow,$tagnow,1)";
    
$eintragen mysql_query($eintrag);

Gruß, Schröder
Mit Zitat antworten
  #2  
Alt 21.12.2003, 17:14:44
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
$array[0] --> {$array[0]}
oder
$array[0] --> ".$array[0]." (also ausklammern)

Tipp: $ergebnis = mysql_query($abfrage) or die(mysql_error());
Mit Zitat antworten
  #3  
Alt 21.12.2003, 19:49:39
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
Ähm worauf sprichst du an?

Auf das $array wo ++ steht oder in dem mySQl-Query?


Schröder


edit: Warum sagt mir das Script die ganze Zeit "Erfolg", obwohl die Datenbank leer ist! Normal müsste doch nur Erfolg dort stehen, wenn genau der Datensatz vorhanden ist oder?!?! Was mache ich falsch???

Geändert von nivram (21.12.2003 um 19:53:30 Uhr)
Mit Zitat antworten
  #4  
Alt 21.12.2003, 19:52:36
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Das mit dem ++ hab ich ganz übersehen. Ich meine das im Query.
Mit Zitat antworten
  #5  
Alt 21.12.2003, 20:14:34
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
Warum sagt mir das Script die ganze Zeit "Erfolg", obwohl die Datenbank leer ist! Normal müsste doch nur Erfolg dort stehen, wenn genau der Datensatz vorhanden ist oder?!?! Was mache ich falsch???


Schröder
Mit Zitat antworten
  #6  
Alt 21.12.2003, 20:20:18
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Ach Shit, der Thread des Überlesens....

Du hast das geshrieben: if($ergebnis){
Diese Abfrage ist immer dann erfüllt, wenn die mySQL-Abfrage erfolgreich war. Das heißt aber noch lange nicht, dass auch Datensätze gefunden wurden!
Den else-Zweig würde er nur dann betreten, wenn die Abfrage Fehler enthalten würde.

Wenn Du es so schreibst, sollte es klappen:
if (mysql_affected_rows()>0) {
mysql_affected_rows() gibt Dir die Zahl der betroffenen Datensätze der letzten Abfrage zurück.
Mit Zitat antworten
  #7  
Alt 21.12.2003, 20:34:25
Fuchs Fuchs ist offline
Junior Member
 
Registriert seit: Jul 2003
Beiträge: 182
Zitat:
Original geschrieben von _c_4_

Wenn Du es so schreibst, sollte es klappen:
if (mysql_affected_rows()>0) {
mysql_affected_rows() gibt Dir die Zahl der betroffenen Datensätze der letzten Abfrage zurück.
Nein nur bei Insert, Update, Delete und Replace. Und da waeren wir auch schon beim Thema:

http://www.mysql.com/doc/en/REPLACE.html

Andre
Mit Zitat antworten
  #8  
Alt 21.12.2003, 20:37:33
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
--> http://www.selfphp.com/forum/showthr...4571#post27435 !!

Aber REPLACE ist eine gute Idee, ja.
Mit Zitat antworten
  #9  
Alt 21.12.2003, 20:44:08
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
Mittlerweile hab ichs anders gelöst! Nun wird weiter fröhlich herumprobiert! Vielen Dank trotzdem an alle.. Bei weiteren Fragen werd ich mich wieder an euch wenden!


Gruß, Schröder
Mit Zitat antworten
  #10  
Alt 21.12.2003, 22:13:26
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Re: Überprüfen ob Daten schon in der Tabelle vorhanden?

Zitat:
Original geschrieben von nivram
Das Script soll nun prüfen ob das aktuelle Datum schon vorhanden ist und Anzahl + 1 rechnen und wieder reinschreiben. Wenn nicht, soll es einen neuen Datensatz anlegen, wobei Anzahl auf 1 gesetzt wird (einfach)!
PHP-Code:
include("dbconnect.php4");

$jahrnow date("Y");
$monatnow date("m");
$tagnow date("d");

$sql "UPDATE `statistiken` SET `anzahl` = `anzahl` + 1  WHERE jahr = $jahrnow AND monat = $monatnow AND tag = $tagnow";

$res mysql_query($sql);
if (
mysql_affected_rows($res) == 0)
{
  
$sql "INSERT INTO statistiken (jahr, monat, tag, anzahl) VALUES ($jahrnow,$monatnow,$tagnow,1)";
  if (!
mysql_query($sql)) print 'huch?';

EDIT:
Da MySQL bei dieser Variante Fehlermeldungen produziert, mußt Du (nach Entwicklung und Test des Scriptes) diese Fehlerausgaben mit einem @ vor den MySQL Befehlen unterdrücken.

Es wäre noch einfacher, wenn Du Dich für das Spaltenformat DATE entschließen könntest.

Geändert von meikel (†) (21.12.2003 um 22:41:06 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:39:24 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt