Wie es scheint, hast du $db nicht initialisiert und speicherst
vermutlich immer ein altes $db['Abo']['id']. Ansonsten sollte das mit
create() so funktionieren, wie du es gebaut hast.
Du kannst auch direkt $this->Abo->id setzen und die ID aus dem $db
Array lassen. create() setzt $this->Abo->id dann immer wieder auf
null.
Gr��e,
Timo
2008/5/13 chrispie <[EMAIL PROTECTED]>:
>
> Hallo Leute, ja - das ist mein erster post hier und ja ich stelle
> direkt eine frage :)
> seit kurzem besch�ftige ich mich mit cake php und ich w�rd gern wissen
> wie ihr folgendes problem gel�st h�ttet:
>
> DB: id | name | description
>
> nun m�chte ich aus einer cvs datei spalten in die datenbank schreiben.
> falls ein eintrag mit dem namen bereits exestiert soll ein update
> gemacht werden, ansonsten ein insert. easy as that.
>
> function import(){
> $row = 1;
> $handle = fopen ("/dadai.cvs","r");
>
> while ($data = fgetcsv ($handle, 1000, ";")) { // Daten
> werden aus
> der Datei
> // in ein
> Array $data
> gelesen
> $num = count ($data); // Felder im
> Array
> $data
> $cvs[]=$data[3];
> //
> werden gez�hlt
> $row++;
> // nur f�r aboservice die ids
> $db['Abo']['name']=$data[3];
> $db['Abo']['description']=$data[10];
>
>
> //$conditions = "Abo.name = '".$data[3]."'";
> // $this->recursive = -1;
>
> // hier gehts los !! ----------------------
> $result = $this->Abo->findByName($data[3]);
> if (isset($result['Abo']['id']))
> {
> echo $result['Abo']['id']."- ";
> //print_r($result);
> $db['Abo']['id']=$result['Abo']['id'];
>
> if(strlen($db['Abo']['description'])<strlen($result['Abo']
> ['description'])){
> $db['Abo']['description']='*';
> }
> $this->Abo->save($db);
> //echo "alt";
> } else {
> //echo "neu";
> $this->Abo->create();
> $this->Abo->save($db);
> }
> }
>
>
>
> }
>
> nur leider will die sache nicht ganz funktionieren. der mysql-debug
> spuckt mir dann aus, dass st�ndig ein eintrag geupdated wird. und zwar
> immer der gleiche.
>
> vielleicht ist ja auch die logik meines codes nicht ganz in ordnung.
> bin �ber jede r�ckmeldung froh !
>
> >
>
--
Timo Derstappen
http://teemow.com
mailto:[EMAIL PROTECTED]
--~--~---------~--~----~------------~-------~--~----~
Bitte bei Fragen immer auch die aktuell verwendete cakePHP Version angeben und
wenn möglich auch das verwendete Betriebssystem und die PHP Version. Danke.
Sie erhalten diese Nachricht, weil Sie Mitglied sind von Google Groups-Gruppe
"CakePHP-de für deutsche CakePHP Entwickler".
Für das Erstellen von Beiträgen in dieser Gruppe senden Sie eine E-Mail
an [email protected]
Um sich von dieser Gruppe abzumelden, senden Sie eine E-Mail an [EMAIL
PROTECTED]
Weitere Optionen finden Sie in dieser Gruppe unter
http://groups.google.com/group/cakephp-de?hl=de
-~----------~----~----~----~------~----~------~--~---