Welcome, Guest

SQL Befehl bewirkt nichts
(1 viewing) (1) Guest
  • Page:
  • 1

TOPIC: SQL Befehl bewirkt nichts

SQL Befehl bewirkt nichts 2 years ago #11105

Hallo!
Ich habe ein Formular, das Daten aus einer Datenbank aus liest, und die geänderten Daten zurück schreiben soll.
Der SQL Befehl scheint soweit zu stimmen, denn er bringt in MySQL keinen Fehler, und auch beim Senden des Formulars kommt kein Fehler. Allerdings ändert sich nichts in der Datenbank. Vielleicht liegt es an der $st_id Variablen, die Primärschlüssel des richtigen Datensatz ist. Das Auslesen funktioniert. Hier der Code dazu:
Before Form
//+trace dis
//load the standard form creation utilities
$this->execPieceByName('ff_InitLib');

//load old record if any
global $record, $my, $st_id;
$st_id = ff_getParam('ff_param_itemid',-1); //übergibt die Variable um den richtigen Datensatz zu finden
$rows = ff_select("SELECT * from jos15_cc_stanz WHERE id=$st_id");
if (count(rows)) {
  $record = $rows[0];
  ff_setValue('text_titel',$record->titel);
  ff_setChecked('ausschreibungsart_praktikum',$record->art_praktikum);
  ff_setChecked('ausschreibungsart_werkstudent',$record->art_werkstudent);
  ff_setChecked('ausschreibungsart_kurzzeitjob',$record->art_kurzzeit);
  ff_setChecked('ausschreibungsart_ausland',$record->art_ausland);
  ff_setChecked('ausschreibungsart_bachelor',$record->art_bachelor);
  ff_setChecked('ausschreibungsart_master',$record->art_master);
  ff_setChecked('ausschreibungsart_diplomarbeit',$record->art_diplom);
  ff_setChecked('ausschreibungsart_fest',$record->art_fest);
  ff_setValue('text_start',$record->start);
  ff_setValue('text_dauer',$record->dauer);
  ff_setValue('text_ort',$record->ort);
  ff_setSelected('auswahl_land',$record->land);
  ff_setSelected('auswahl_aufg_bereich',$record->aufgabenbereich);
  ff_setSelected('auswahl_branche',$record->branche);
  ff_setValue('text_anforderungen',$record->anforderungen);
  ff_setValue('text_ausschreibungstext',$record->ausschreibungstext);
  ff_setValue('text_ansprechpartner',$record->kontaktdaten);
  ff_setValue('text_zusaetzl_infos',$record->zusatzinfos);
  ff_setValue('text_bew_art',$record->bewerbungsart);
} else 
{
  $record = NULL;
}

//+trace dis

//load the standard form creation utilities
$this->execPieceByName('ff_InitLib');

}


Das speichern der geänderten Daten mit UPDATE bringt zwar keinen Fehler, ändert aber auch nichts in der Datenbank.
Begin Submit
//+trace dis
global $my, $st_id;
//$st_id = ff_getParam('ff_param_itemid',-1);
//load the standard creation utilities
$this->execPieceByName('ff_InitLib');
//retrieve the submitted values
$userid = $my->id;
$letzte_aenderung = date("Y-m-d");
$titel = ff_getSubmit('text_titel','Kein Titel');
$start = ff_getSubmit('text_start','');
$dauer = ff_getSubmit('text_dauer','');
$ort = ff_getSubmit('text_ort','');
$land = ff_getSubmit('auswahl_land','');
$aufgabenbereich = ff_getSubmit('auswahl_aufg_bereich','');
$branche = ff_getSubmit('auswahl_branche','');
$anforderungen = ff_getSubmit('text_anforderungen','');
$ausschreibungstext = ff_getSubmit('text_ausschreibungstext','');
$kontaktdaten = ff_getSubmit('text_ansprechpartner','');
$bewerbungsart = ff_getSubmit('text_bew_art','');
$zusatzinfos = ff_getSubmit('text_zusaetzl_infos','');

// Pfad korrigiert
 // $pos=strpos(ff_getSubmit('pdf_upload',''),"C:Inetpubwwwrootwicc2009joomla15joomla2componentscom_facileformsuploads");
$tmp=substr(ff_getSubmit('pdf_upload',''),63);
$upload = "/components/com_facileforms/uploads/".$tmp;
$art_praktikum = ff_getSubmit('ausschreibungsart_praktikum',0);
$art_werkstudent = ff_getSubmit('ausschreibungsart_werkstudent',0);
$art_kurzzeit = ff_getSubmit('ausschreibungsart_kurzzeitjob',0);
$art_ausland = ff_getSubmit('ausschreibungsart_ausland',0);
$art_bachelor = ff_getSubmit('ausschreibungsart_bachelor',0);
$art_master = ff_getSubmit('ausschreibungsart_master',0);
$art_diplom = ff_getSubmit('ausschreibungsart_diplomarbeit',0);
$art_fest = ff_getSubmit('ausschreibungsart_fest',0);

//update new record
ff_query("UPDATE jos15_cc_stanz SET letzte_aenderung='$letzte_aenderung',titel='$titel',dauer='$dauer',ort='$ort',land='$land',aufgabenbereich='$aufgabenbereich',branche='$branche',anforderungen='$anforderungen',ausschreibungstext='$ausschreibungstext',kontaktdaten='$kontaktdaten',bewerbungsart='$bewerbungsart',zusatzinfos='$zusatzinfos',upload='$upload',art_praktikum=$art_praktikum,art_werkstudent=$art_werkstudent,art_kurzzeit=$art_kurzzeit,art_ausland=$art_ausland,art_bachelor=$art_bachelor,art_master=$art_master,art_diplom=$art_diplom,art_fest=$art_fest WHERE ID='$st_id'");


Es wäre super, falls jemand den Fehler sieht.

Gruß Urmel
  • Urmel108
  • OFFLINE
  • Fresh Boarder
  • Posts: 3
  • Karma: 0

Re:SQL Befehl bewirkt nichts 2 years ago #11118

ich habe festgestellt, dass wenn man bei Begin Submit im SQL Befehl die ID manuell einträgt, wird der Eintrag geändert. Folglich liegt es daran, dass Breezing Forms die Variable $st_id nicht kennt.
Muss ich der einen neuen Wert zuweisen? Die Variable wurde bei Before Form global mit einem Wert belegt.
$st_id = ff_getParam('ff_param_itemid',-1);

Muss ich die Variable in Begin Submit wieder mit der ID füttern? Und wenn ja wie bekomme ich die ID von Before Form nach Begin Submit? Vielleicht liegt es auch am syntax wie ich die Variable in den SQL Code geschrieben habe.

Hat mir einer ne Idee?

Gruß

Urmel
  • Urmel108
  • OFFLINE
  • Fresh Boarder
  • Posts: 3
  • Karma: 0

Re:SQL Befehl bewirkt nichts 2 years ago #11157

Hi,

ich würde es mal statt mit ff_getParam mal so probieren:

JRequest::getInt('Itemid',-1);


Sofern es sich jetzt um die Joomla! Itemid handelt, die die Menüsteuerung regelt.
===============================================
Satisfied?
Consider a membership!
===============================================
Like us on Facebook
===============================================
Follow us on Twitter
===============================================

Re:SQL Befehl bewirkt nichts 1 year, 11 months ago #12405

Danke für den Tipp, aber dies löst mein Problem nicht.

Ich habe im Before Form folgendes eingetragen:

$st_id = ff_getParam('ff_param_itemid',-1);

dadurch habe ich die jeweilige ID des eintrags der gerade bearbeitet wird und kann damit eine query machen
zB $rows = ff_select("SELECT * from jos15_cc_stanz WHERE id=$st_id");

das liest mir meine Daten aus der Datenbank aus und ich speichere diese als Value in die einzelnen Felder.

Der User kann nun die gefüllten Felder editieren.

Beim senden sollten nun die Werte aus den Feldern wieder in die Datenbank an die gleiche Stelle (ID) wo sie her kamen.

ff_query("UPDATE jos15_cc_stanz SET letzte_aenderung='$letzte_aenderung',titel='$titel',dauer='$dauer',ort='$ort',land='$land',aufgabenbereich='$aufgabenbereich',branche='$branche',anforderungen='$anforderungen',ausschreibungstext='$ausschreibungstext',kontaktdaten='$kontaktdaten',bewerbungsart='$bewerbungsart',zusatzinfos='$zusatzinfos',upload='$upload',art_praktikum=$art_praktikum,art_werkstudent=$art_werkstudent,art_kurzzeit=$art_kurzzeit,art_ausland=$art_ausland,art_bachelor=$art_bachelor,art_master=$art_master,art_diplom=$art_diplom,art_fest=$art_fest
WHERE ID=$st_id");

da aber in $st_id nichts drin steht bekomme ich einen SQL Fehler (where ID= )

Daher meine Frage, wie ich die richtige variable vom Before Form, wo es funktioniert - in das Submit Form feld übergeben kann.
Habe es auch schon mit Hidden Fields versucht, bin aber gescheitert.

Gruß Urmel
  • Urmel108
  • OFFLINE
  • Fresh Boarder
  • Posts: 3
  • Karma: 0
  • Page:
  • 1
Moderators: TheMuffinMan, ForumSupport
Time to create page: 0.34 seconds

About

Crosstec GmbH & Co. KG

Bergisch-Gladbacher-Str. 829

51069 Cologne, Germany