phpbar.de logo

Mailinglisten-Archive

Problem bei Update

Problem bei Update

Oliver Six mysql_(at)_lists.phpcenter.de
Wed, 5 Sep 2001 18:03:28 +0200


Jochen Kaechelin <jk_(at)_wa-p.de> wrote on 05.09.01 17:11:37:

>
>> >Warum funktioniert folgendes nicht:
>> >
>> >update eventpreise set ep preis='50.92' where ep preis='80.92';
>> >
>> >epreis 0 float(10,2)
>> >
>> 
>> Hi Jochen,
>> 
>> wie Du selber schreibst, ist epreis ein float; damit duerfen die 
>> zuzuweisenden- und Vergleichs-Werte nicht in Hochkommata 
>> eingeschlossen 
>> werden, auch wenn manche Datenbank das auch so verdaut... 
> 
>Es funktioniert auch so nicht:
>
>	update eventpreise set ep preis=50.92 where ep preis=80.92;
>
>Nicht per PHP und auch nicht im MySQL-Client (windows). Lediglich
>wenn ich in phpMyAdmin einen einzelnen Datensatz bearbeite!
>
>CREATE TABLE eventpreise (
>   eventpreis_id int(10) unsigned NOT NULL auto_increment,
>   ep_eventid int(10) unsigned DEFAULT '0' NOT NULL,
>   ep_psid int(10) unsigned DEFAULT '0' NOT NULL,
>   ep_preis float(10,2) DEFAULT '0.00' NOT NULL,
>   ep_deleted tinyint(3) unsigned DEFAULT '0' NOT NULL,
>   PRIMARY KEY (eventpreis_id),
>   KEY ep_eventid (ep_eventid, ep_psid)
>);

Hi Jochen,

nur damit ich 'mal klarsehe: Funktioniert nicht, bedeutet entweder, es 
kommt eine konkrete Fehlermeldung oder es bedeutet, das Ergebnis ist 
nicht das erwartete. Da die Query syntaktisch richtig ist (mein mysql 
verdaut sie), nehme ich an, dass nichts passiert und es sich wieder 
einmal um einen Rundungsfehler handelt. Entweder stellst Du Deine float-
Spalten auf decimal oder numeric um, oder Du musst Deine where-Clauses 
mit einem Bereich einschraenken: 

.. where ep_preis>80.915 and ep_preis<80.925;

Natuerlich kannst Du das auch als

.. where ep_preis between 80.915 and 80.925;

formulieren. Eine etwas elegantere Variante waere

.. where abs(ep_preis-80.92)<0.5;

Ich hoffe, das hilft,

Ciao Oliver

PS: Nachfragen bitte auch wieder an die Liste posten.
--
Good programming is 40% experience, 30% skill, 20% RTFM, 10% caffeine, 
and 5% attention to detail. 

Oliver Six, CAHOS GmbH, Cimbernstr. 51, Germany 81377 Muenchen, Phone 
+49 89 71 01 93 40,  Fax +49 89 71 01 93 41 

---
!!NEU!!
Fragen und Antworten zu MySQL und dieser Liste unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive