feldwert setzen fmandphp

Alles zum Thema FileMaker und PHP.
Siehe auch http://www.fm-and-php.info
Forumsregeln
Sie befinden sich im Archivforum! Sie können hier alte Beiträge lesen und vorhandene Diksussionen ergänzen.
Neue Diskussionen können Sie in diesem Archiv nicht erstellen!

feldwert setzen fmandphp

Beitragvon Olaf » Fr 30. Jan 2009, 17:33

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.
Nachrichtensymbol: Bild

Hallo liebe FMler,

entweder bin ich blind oder einfach nur zu dumm

ich möchte mit fmandphp das Feld ART_IST in meiner FM Tabelle ARTIKEL ändern, wenn das Feld ART_ID == 009

Beide Werte sind in PHP Variable

Habe schon nach allem möglichen gesucht, aber irgendwie werder ich mehr
durcheinander als das eine Lösung näher kommt.

Seid bitte so freundlich, obwohl Ihr es wahrscheinlich schon oft durchgekaut habt, und helft mir auf die Sprünge

Vielen herzlichen Dank

Olaf



<font size=1>[ Diese Nachricht wurde editiert von : Olaf am 02.02.2009 13:46 ]</font>

[ Diese Nachricht wurde editiert von : Olaf am 02.02.2009 16:00 ]
Olaf
 
Beiträge: 27
Registriert: Mi 22. Mär 2006, 01:00
Wohnort: Hockenheim

Antwort

Beitragvon Olaf » So 1. Feb 2009, 19:05

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.

Hi,

hat keiner einen Tipp für mich ?
Olaf
 
Beiträge: 27
Registriert: Mi 22. Mär 2006, 01:00
Wohnort: Hockenheim

Antwort

Beitragvon Olaf » Mo 2. Feb 2009, 14:40

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.

Hallo liebe FM'ler
ich bräuchte wirklich Hilfe !!!

inzwischen bin ich soweit

include("fmandphp.php");


$FM = new FM_and_PHP();
$FM->setFileMakerHost("xxx.xxx.xxx.xx","80","7");
$FM->setDatabaseName("datenbankname");
$FM->setDatabaseLayout("layout");
$FM->setDatabaseUserPassword("user","passwort");

$FM->addSearchField("ART_JDStückNR", "H115521");
$FM->setCommand("find");
$FM->doGetQuery();

if($FM->getErrorNumber() == 0){
while ($FM->getNextRecord())
{
$verpackung['recID'] = $FM->getRecordId();
$verpackung['ART_JDStückNR'] = $FM->getField("ART_JDStückNR");
$verpackung['ART_Verp01'] = $FM->getField("ART_Verp01");
$verpackung['ART_VPGruppe_Verp01'] = $FM->getField("ART_VPGruppe_Verp01");
$verpackung['ART_AnzVerp01'] = $FM->getField("ART_AnzVerp01");
$verpackung['VERP_Masseinheit01'] = $FM->getField("verpa1::VERP_Masseinheit");
$verpackung['VERP_IST01'] = $FM->getField("verpa1::VERP_IST");
}
}else{
echo "<p style='color:red;'>".$FM->getErrorDescription()."</p>";
}
$FM->addParameter("ART_Verp01", "olli");
$FM->setCommand("edit");
$FM->setRecordId( $verpackung['recID']);
$FM->doGetQuery();


der Datensatz wird mir ordendlich ausgegeben
auch die Variable $verpackung['redID'] ist OK
aber er verändert mir einfach nicht den Wert in der FM Datenbank
was mache ich falsch, oder woran kann es liegen ???
Olaf
 
Beiträge: 27
Registriert: Mi 22. Mär 2006, 01:00
Wohnort: Hockenheim

Antwort

Beitragvon Olaf » Di 3. Feb 2009, 14:24

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.

Hallo für alle die, die auch Schwierigkeiten damit haben hier eine Lösung
vielleicht gibt es noch elegantere aber diese funktioniert

// zuerst den zu ändernden Datensatz suchen

$FM = new FM_and_PHP();
$FM->setFileMakerHost("xxx.xxx.xxx.xxx","80","7");
$FM->setDatabaseName("datenbankname");
$FM->setDatabaseLayout("layout");
$FM->setDatabaseUserPassword("user","passwort");

$FM->addSearchField("suchfeld", "suchwert");
$FM->setCommand("find");
$FM->doGetQuery(); // bei neueren Versionen vielleicht doQuery()

if($FM->getErrorNumber() == 0){
while ($FM->getNextRecord()) // in meinem Fall kanns nur einen geben !!
{
$recID = $FM->getRecordId(); // hier record ID speichern
}
}else{
echo "<p style='color:red;'>".$FM->getErrorDescription()."</p>";
}

// dann eine neue FM_and_PHP
$FM1 = new FM_and_PHP();
$FM1->setFileMakerHost("xxx.xxx.xxx.xxx","80","7");
$FM1->setDatabaseName("datenbankname");
$FM1->setDatabaseLayout("layout");
$FM1->setDatabaseUserPassword("user","passwort");
$FM1->setCommand("edit");
$FM1->addParameter("zuänderndes Feld", "wert");
$FM1->setRecordId($recID);
$FM1->dogetQuery();

if ( $FM1->getErrorNumber() != 0 ) {
echo "Folgender Fehler trat auf: ";
echo $FM1->getErrorDescription();
die();
} else {
echo "Datensatz wurde erfolgreich angelegt.";
}

ich freue mich dem einen oder anderen mit diesem Script geholfen zu haben

Liebe Grüße an alle FM'ler
Olaf
 
Beiträge: 27
Registriert: Mi 22. Mär 2006, 01:00
Wohnort: Hockenheim

Antwort

Beitragvon schube » Mi 11. Feb 2009, 01:27

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.
Nachrichtensymbol: Bild

Hi!

Ja, das paßt so.

Es geht auch nicht wirklich einfacher - man muss den Datensatz suchen und dann ändern (außer man hat auf einer Seite früher den DS schon mal gefunden).

Ansonsten ist es ja genau so in FileMaker Pro selbst - denn zu ändernden DS suchen und dann editieren. Einfacher gehts nicht :-)

Grüsse,
Bernhard Schulz
Dipl-Ing. (FH) Bernhard Schulz,
Geschäftsführer von http://www.schubec.com
Leiter des FileMakerProfis-Team
FileMaker Schulungen unter http://www.fm-training.info
Benutzeravatar
schube
Administrator
 
Beiträge: 2339
Registriert: Mi 7. Jul 2010, 15:59
Wohnort: Salzburg, Österreich

Antwort

Beitragvon schube » Mo 23. Mär 2009, 00:39

Hinweis: Eintrag wurde aus altem Forum importiert. Ggf. kann es dadurch zu Darstellungsproblemen kommen.
Nachrichtensymbol: Bild

Hallo!

Habe "gerade" folgendes Email erhalten. Eigentlich stehe ich ja nicht so auf Emailanfragen - dafür ist das Forum ja da, aber ich gebe zu, ich habe viel zu wenig Zeit alle Einträge zu lesen...

Also:
Zitat:

Meine Frage ist nun die folgende (ich habe im Forum keine Antwort
gefunden...):

Wie kann ich die ID eines soeben erstellten Records herausfinden (analog
mysql_insert_id())?

------ Code:
$FM->setCommand('new');
$FM->doQuery();
if ($FM->getErrorNumber() == 0) {
$insert_id = $FM->getRecordId(); // DAS GEHT LEIDER NICHT :(
}

Vielen Dank schon im Voraus für Ihre Antwort!



Ich habe jetzt gerade keinen Code da und keine Lust mir ein Beispiel zu bauen, aber vermutlich habe ich ein getNextRecord vergessen. Also
Code:
  

$FM->setCommand('new');
$FM->doQuery();
if ($FM->getErrorNumber() == 0) {
$FM->getNextRecord();
$insert_id = $FM->getRecordId();
}




Bitte mal probieren und Feedback geben - danke!
Dipl-Ing. (FH) Bernhard Schulz,
Geschäftsführer von http://www.schubec.com
Leiter des FileMakerProfis-Team
FileMaker Schulungen unter http://www.fm-training.info
Benutzeravatar
schube
Administrator
 
Beiträge: 2339
Registriert: Mi 7. Jul 2010, 15:59
Wohnort: Salzburg, Österreich


Zurück zu FM-and-PHP