Inkrementieren?
am 17.08.2005 11:10:12 von ANDERS FLODERUS
Hallo,
kann ich mit einer MySql query ein bestimmtes Feld einfach inkrementieren,
aber nur wenn ein anderes Feld einen bestimmten Wert hat?
Danke!
--
chEErs roN
I'm root. I'm allowed to do this! ;)
keep on rockin'
Re: Inkrementieren?
am 17.08.2005 11:21:24 von Martin Kurz
roN schrieb:
> Hallo,
>
> kann ich mit einer MySql query ein bestimmtes Feld einfach inkrementieren,
> aber nur wenn ein anderes Feld einen bestimmten Wert hat?
>
> Danke!
Etwa so in der Art: "UPDATE tabelle SET feld1=feld1+1 WHERE feld2=irgendwas"?
(siehe http://dev.mysql.com/doc/mysql/de/update.html)
Grüße,
Martin
Re: Inkrementieren?
am 17.08.2005 11:49:18 von ANDERS FLODERUS
Martin Kurz wrote:
> roN schrieb:
>> Hallo,
>>
>> kann ich mit einer MySql query ein bestimmtes Feld einfach
>> inkrementieren, aber nur wenn ein anderes Feld einen bestimmten Wert
>> hat?
>>
>> Danke!
>
> Etwa so in der Art: "UPDATE tabelle SET feld1=feld1+1 WHERE
> feld2=irgendwas"?
>
$date = date('y-m-j');
$connection=mysql_connect(db_server,db_user,db_passwort);
mysql_select_db(db_name);
$query="UPDATE Stat SET Ham=Ham+1 WHERE date=$date";
mysql_query($query) or die(mysql_error());
mysql_close($connection);
Das funktioniert aber nicht wirklich :( aber wesshalb nicht? :(
--
chEErs roN
I'm root. I'm allowed to do this! ;)
keep on rockin'
Re: Inkrementieren?
am 17.08.2005 11:53:48 von ANDERS FLODERUS
roN wrote:
> Martin Kurz wrote:
>> roN schrieb:
>>> Hallo,
>>>
>>> kann ich mit einer MySql query ein bestimmtes Feld einfach
>>> inkrementieren, aber nur wenn ein anderes Feld einen bestimmten Wert
>>> hat?
>>>
>>> Danke!
>>
>> Etwa so in der Art: "UPDATE tabelle SET feld1=feld1+1 WHERE
>> feld2=irgendwas"?
>>
>
> $date = date('y-m-j');
> $connection=mysql_connect(db_server,db_user,db_passwort);
> mysql_select_db(db_name);
> $query="UPDATE Stat SET Ham=Ham+1 WHERE date=$date";
> mysql_query($query) or die(mysql_error());
> mysql_close($connection);
>
> Das funktioniert aber nicht wirklich :( aber wesshalb nicht? :(
übrigens: Keine Fehlermeldung...
--
chEErs roN
I'm root. I'm allowed to do this! ;)
keep on rockin'
Re: Inkrementieren?
am 17.08.2005 12:03:18 von Stefan Rybacki
roN wrote:
> roN wrote:
>
>>Martin Kurz wrote:
>>
>>>roN schrieb:
>>>
>>>>Hallo,
>>>>
>>>>kann ich mit einer MySql query ein bestimmtes Feld einfach
>>>>inkrementieren, aber nur wenn ein anderes Feld einen bestimmten Wert
>>>>hat?
>>>>
>>>>Danke!
>>>
>>>Etwa so in der Art: "UPDATE tabelle SET feld1=feld1+1 WHERE
>>>feld2=irgendwas"?
>>>
>>
>> $date = date('y-m-j');
>> $connection=mysql_connect(db_server,db_user,db_passwort);
>> mysql_select_db(db_name);
>> $query="UPDATE Stat SET Ham=Ham+1 WHERE date=$date";
>> mysql_query($query) or die(mysql_error());
>> mysql_close($connection);
>>
>>Das funktioniert aber nicht wirklich :( aber wesshalb nicht? :(
>
>
> übrigens: Keine Fehlermeldung...
>
> --
> chEErs roN
> I'm root. I'm allowed to do this! ;)
> keep on rockin'
>
>
Wenn du nun noch erzählst was dein date feld in der DB für nen Typ hat?
Bis denn dann
Stefan
PS: es gibt auch mysql_affected_rows(); damit kannst du rausfinden, wieviel Zeilen bei
deinem Update verändert wurden. Wurde keine verändert funktioniert deine Where Klausel
wohl nicht wie erwartet
Re: Inkrementieren?
am 17.08.2005 12:46:58 von ANDERS FLODERUS
Stefan Rybacki wrote:
> roN wrote:
>> roN wrote:
>>
>>> Martin Kurz wrote:
>>>
>>>> roN schrieb:
>>>>
>>>>> Hallo,
>>>>>
>>>>> kann ich mit einer MySql query ein bestimmtes Feld einfach
>>>>> inkrementieren, aber nur wenn ein anderes Feld einen bestimmten
>>>>> Wert hat?
>>>>>
>>>>> Danke!
>>>>
>>>> Etwa so in der Art: "UPDATE tabelle SET feld1=feld1+1 WHERE
>>>> feld2=irgendwas"?
>>>>
>>>
>>> $date = date('y-m-j');
>>> $connection=mysql_connect(db_server,db_user,db_passwort);
>>> mysql_select_db(db_name);
>>> $query="UPDATE Stat SET Ham=Ham+1 WHERE date=$date";
>>> mysql_query($query) or die(mysql_error());
>>> mysql_close($connection);
>>>
>>> Das funktioniert aber nicht wirklich :( aber wesshalb nicht? :(
>>
>>
>> übrigens: Keine Fehlermeldung...
>>
>> --
>> chEErs roN
>> I'm root. I'm allowed to do this! ;)
>> keep on rockin'
>>
>>
> Wenn du nun noch erzählst was dein date feld in der DB für nen Typ
> hat?
'CREATE TABLE IF NOT EXISTS `Stat` ('
. ' `Processed` INT NOT NULL, '
. ' `Spam` INT NOT NULL, '
. ' `Ham` INT NOT NULL, '
. ' `cleared` INT NOT NULL, '
. ' `date` DATE NOT NULL'
. ' )';
> PS: es gibt auch mysql_affected_rows(); damit kannst du rausfinden,
> wieviel Zeilen bei deinem Update verändert wurden. Wurde keine
> verändert funktioniert deine Where Klausel wohl nicht wie erwartet
da kommt 0 zurück. :(
--
chEErs roN
I'm root. I'm allowed to do this! ;)
keep on rockin'
Re: Inkrementieren?
am 17.08.2005 13:06:17 von Marian Heddesheimer
On Wed, 17 Aug 2005 11:49:18 +0200, roN wrote:
>Martin Kurz wrote:
>> roN schrieb:
>>> Hallo,
>>>
>>> kann ich mit einer MySql query ein bestimmtes Feld einfach
>>> inkrementieren, aber nur wenn ein anderes Feld einen bestimmten Wert
> $date = date('y-m-j');
nur so als Idee:
$date = date('Y-m-j');
ändert das etwas?
--
Kostenlose Tipps und Tricks zu PHP und MySQL
http://www.heddesheimer.de/coaching/
Re: Inkrementieren?
am 17.08.2005 13:08:18 von ANDERS FLODERUS
Marian Heddesheimer wrote:
> On Wed, 17 Aug 2005 11:49:18 +0200, roN wrote:
>
>> Martin Kurz wrote:
>>> roN schrieb:
>>>> Hallo,
>>>>
>>>> kann ich mit einer MySql query ein bestimmtes Feld einfach
>>>> inkrementieren, aber nur wenn ein anderes Feld einen bestimmten
>>>> Wert
>> $date = date('y-m-j');
>
> nur so als Idee:
>
> $date = date('Y-m-j');
>
> ändert das etwas?
Nein, nicht wirklich, hätte mich auch verwundert...
--
chEErs roN
I'm root. I'm allowed to do this! ;)
keep on rockin'
Re: Inkrementieren?
am 17.08.2005 13:35:38 von Carsten Wiedmann
"roN" schrieb:
> >>>>> kann ich mit einer MySql query ein bestimmtes Feld einfach
> >>>>> inkrementieren, aber nur wenn ein anderes Feld einen bestimmten
> >>>>> Wert hat?
> >>>
> >>> $date = date('y-m-j');
> >>> $connection=mysql_connect(db_server,db_user,db_passwort);
> >>> mysql_select_db(db_name);
> >>> $query="UPDATE Stat SET Ham=Ham+1 WHERE date=$date";
> >>> mysql_query($query) or die(mysql_error());
> >>> mysql_close($connection);
> >>>
> >>> Das funktioniert aber nicht wirklich :( aber wesshalb nicht? :(
>
> 'CREATE TABLE IF NOT EXISTS `Stat` ('
> . ' `Processed` INT NOT NULL, '
> . ' `Spam` INT NOT NULL, '
> . ' `Ham` INT NOT NULL, '
> . ' `cleared` INT NOT NULL, '
> . ' `date` DATE NOT NULL'
> . ' )';
Ist DATE nicht ein String?
| > $query="UPDATE `Stat` SET `Ham`=`Ham`+1 WHERE `date`='$date'";
Gruß
Carsten
Re: Inkrementieren?
am 17.08.2005 13:48:56 von ANDERS FLODERUS
Carsten Wiedmann wrote:
> "roN" schrieb:
>
>>>>>>> kann ich mit einer MySql query ein bestimmtes Feld einfach
>>>>>>> inkrementieren, aber nur wenn ein anderes Feld einen bestimmten
>>>>>>> Wert hat?
>>>>>
>>>>> $date = date('y-m-j');
>>>>> $connection=mysql_connect(db_server,db_user,db_passwort);
>>>>> mysql_select_db(db_name);
>>>>> $query="UPDATE Stat SET Ham=Ham+1 WHERE date=$date";
>>>>> mysql_query($query) or die(mysql_error());
>>>>> mysql_close($connection);
>>>>>
>>>>> Das funktioniert aber nicht wirklich :( aber wesshalb nicht? :(
>>
>> 'CREATE TABLE IF NOT EXISTS `Stat` ('
>> . ' `Processed` INT NOT NULL, '
>> . ' `Spam` INT NOT NULL, '
>> . ' `Ham` INT NOT NULL, '
>> . ' `cleared` INT NOT NULL, '
>> . ' `date` DATE NOT NULL'
>> . ' )';
>
> Ist DATE nicht ein String?
date ist einfach vom typ DATE, wie das mysql genau speichert, kann ich dir
nicht sagen...
>>> $query="UPDATE `Stat` SET `Ham`=`Ham`+1 WHERE `date`='$date'";
>
> Gruß
> Carsten
--
chEErs roN
I'm root. I'm allowed to do this! ;)
keep on rockin'
Re: Inkrementieren?
am 17.08.2005 14:08:34 von Stefan Rybacki
roN wrote:
> Marian Heddesheimer wrote:
>
>>On Wed, 17 Aug 2005 11:49:18 +0200, roN wrote:
>>
>>
>>>Martin Kurz wrote:
>>>
>>>>roN schrieb:
>>>>
>>>>>Hallo,
>>>>>
>>>>>kann ich mit einer MySql query ein bestimmtes Feld einfach
>>>>>inkrementieren, aber nur wenn ein anderes Feld einen bestimmten
>>>>>Wert
>>>
>>> $date = date('y-m-j');
>>
>>nur so als Idee:
>>
>>$date = date('Y-m-j');
>>
>>ändert das etwas?
>
>
> Nein, nicht wirklich, hätte mich auch verwundert...
>
$date=date('Y-m-d');
und im Query $date mit '$date' schreiben.
> --
> chEErs roN
> I'm root. I'm allowed to do this! ;)
> keep on rockin'
>
>
Re: Inkrementieren?
am 17.08.2005 14:27:29 von ANDERS FLODERUS
Stefan Rybacki wrote:
> roN wrote:
>> Marian Heddesheimer wrote:
>>
>>> On Wed, 17 Aug 2005 11:49:18 +0200, roN wrote:
>>>
>>>
>>>> Martin Kurz wrote:
>>>>
>>>>> roN schrieb:
>>>>>
>>>>>> Hallo,
>>>>>>
>>>>>> kann ich mit einer MySql query ein bestimmtes Feld einfach
>>>>>> inkrementieren, aber nur wenn ein anderes Feld einen bestimmten
>>>>>> Wert
>>>>
>>>> $date = date('y-m-j');
>>>
>>> nur so als Idee:
>>>
>>> $date = date('Y-m-j');
>>>
>>> ändert das etwas?
>>
>>
>> Nein, nicht wirklich, hätte mich auch verwundert...
>>
>
> $date=date('Y-m-d');
>
> und im Query $date mit '$date' schreiben.
Genau das wars, Danke! :)
--
chEErs roN
I'm root. I'm allowed to do this! ;)
keep on rockin'
Re: Inkrementieren?
am 17.08.2005 23:32:48 von Kai Ruhnau
roN wrote:
> Stefan Rybacki wrote:
>
>>roN wrote:
>>
>>>Marian Heddesheimer wrote:
>>>
>>>
>>>>On Wed, 17 Aug 2005 11:49:18 +0200, roN wrote:
>>>>
>>>>
>>>>
>>>>>Martin Kurz wrote:
>>>>>
>>>>>
>>>>>>roN schrieb:
>>>>>>
>>>>>>
>>>>>>>Hallo,
>>>>>>>
>>>>>>>kann ich mit einer MySql query ein bestimmtes Feld einfach
>>>>>>>inkrementieren, aber nur wenn ein anderes Feld einen bestimmten
>>>>>>>Wert
>>>>>
>>>>> $date = date('y-m-j');
>>>>
>>>>nur so als Idee:
>>>>
>>>>$date = date('Y-m-j');
>>>>
>>>>ändert das etwas?
>>>
>>>
>>>Nein, nicht wirklich, hätte mich auch verwundert...
>>>
>>
>>$date=date('Y-m-d');
>>
>>und im Query $date mit '$date' schreiben.
>
>
> Genau das wars, Danke! :)
Und noch als Erklärung für das Ratespiel:
date('Y-m-d') liefert etwas in der Art 2005-08-17.
Wenn man das so ohne Quotes in eine Query einbettet, dann steht da für
MySQL eine Subtraktion mit dem Ergebnis 1980. Dieser Wert kommt
höchstwahrscheinlich nicht in deiner Datums-Spalte vor.
Grüße
Kai
--
This signature is left as an exercise for the reader.
Unsatz des Jahres:
$POLITIKER ruft $PARTEI zur Geschlossenheit.
Re: Inkrementieren?
am 21.08.2005 14:58:49 von Wolfgang Kueter
roN wrote:
> date ist einfach vom typ DATE, wie das mysql genau speichert, kann ich dir
^^^^ ^^^^
> nicht sagen...
1. MySQL verwendet seit ewigen Zeiten als internes Datumsformat: YYYY-MM-DD
2. Attribute einer Relation mit reservierten Begriffen des RDBMS zu benamsen
war und ist übrigens keine sonderlich gute Idee.
Wolfgang
Re: Inkrementieren?
am 21.08.2005 22:09:06 von Axel Schwenke
Wolfgang Kueter wrote:
> roN wrote:
>
>> date ist einfach vom typ DATE, wie das mysql genau speichert, kann ich dir
> ^^^^ ^^^^
>> nicht sagen...
>
> 1. MySQL verwendet seit ewigen Zeiten als internes Datumsformat: YYYY-MM-DD
Nein.
"YYYY-MM-DD" ist die String-REPRÄSENTATION des DATE Typs. Die zweite
mögliche Repräsentation wäre die Integer-Zahl YYYYMMDD. Welche der
beiden Repräsentationen MySQL in einem Ausdruck verwendet, hängt vom
Kontext ab. Default ist die String-Form. Numerischen Kontext erzwingt
man z.B. so: SELECT CURDATE() + 0
"Genau gespeichert" werden DATE Werte in der C-struct "st_mysql_time",
die in mysql_time.h definiert wird. Selbstverständlich war das aber gar
nicht die Frage.
XL
Re: Inkrementieren?
am 22.08.2005 01:30:47 von Wolfgang Kueter
Axel Schwenke wrote:
> "Genau gespeichert" werden DATE Werte in der C-struct "st_mysql_time",
> die in mysql_time.h definiert wird.
Ich werd' den Teufel tun, *Dir* zu widersprechen.
;-)
Wolfgang