CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
09.07.2009, 11:50:53
|
Anfänger
|
|
Registriert seit: Jul 2009
Alter: 38
Beiträge: 5
|
|
erkennen ob form gesendet wurde
Hey leute,
habe da ein kleines Problem, sicher könnt ihr den Fehler finden.
Zunächst einmal das script:
PHP-Code:
if(isset($_POST['submit']) AND "update" == $_POST['upname']) {
// Nach dem Abschicken kommt immer nur ein Formular hier an.
echo "change";
mysql_query("UPDATE '".$upname."' FROM hersteller WHERE hersteller = '".$_POST['upname']."'") OR die(mysql_error());
mysql_query($Query, $database);
echo "<form action=\"index.php?page=hersteller&kat=herbea\" method=\"post\">";
while($row = mysql_fetch_assoc($sql_query)) {
// Jede einzelne Zeile ist also ein eigenes Formular
echo "<form action=\"index.php?page=hersteller&kat=herbea\" method=\"post\">";
echo "$row->hersteller";
echo " <input type=\"text\" name=\"upname\" value=\"row->hersteller\">";
echo " <input type=\"submit\" name=\"edit\" value=\"update\">";
echo "</form>\n";
} } else {
$abfrage = "SELECT hersteller FROM hersteller";
$ergebnis = mysql_query($abfrage);
// Hier ist der SQL-Query um die Datensätze der Autos auszulesen
echo "<form action=\"index.php?page=hersteller&kat=herbea\" method=\"post\">";
while($row = mysql_fetch_object($ergebnis)) {
// Jede einzelne Zeile ist also ein eigenes Formular
echo "<form action=\"index.php?page=hersteller&kat=herbea\" method=\"post\">";
echo "$row->hersteller";
echo " <input type=\"text\" name=\"upname\" value=\"$row->hersteller\">";
echo " <input type=\"submit\" name=\"edit\" value=\"update\">";
echo "</form>\n";
}
zur Info:
Ja die DB ist verbunden, ja die zugriffe funktionieren.
Also folgendes.
unter else der bereich funktioniert, nun möchte ich, dass wenn ich auf einen der submit buttons klicke, die If funktion abgerufen wird, und der entsprechende eintrag in der DB aktualisiert wird.
Was habe ich in diesem script falsch gemacht, so das er die issit bedingung nicht als erfüllt ansieht?
MFG
|
09.07.2009, 12:09:13
|
|
Member
|
|
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
|
|
AW: erkennen ob form gesendet wurde
Vll. deswegen? (hab weiter nicht geschaut)
Code:
echo " <input type=\"text\" name=\"upname\" value=\"$row->hersteller\">";
bzw. rate ich dir gleich zu dieser schreibweise:
PHP-Code:
echo '<input type="text" name="upname" value="' .$row->hersteller. '">';
|
09.07.2009, 12:11:36
|
Anfänger
|
|
Registriert seit: Jul 2009
Alter: 38
Beiträge: 5
|
|
AW: erkennen ob form gesendet wurde
habe ich geändert, aber selber effect wie vorher.
er erkennt beim absenden im if bereich nicht, das daten übermittelt wurden
|
09.07.2009, 12:19:14
|
|
Member
|
|
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
|
|
AW: erkennen ob form gesendet wurde
Wo definierst du denn ein formular element mit den namen "submit" ? In deinem Script-Ausschnitt jedenfalls nicht.
Wundert mich also weniger das isset immer FALSE zurück gibt.
|
09.07.2009, 12:20:58
|
Anfänger
|
|
Registriert seit: Jul 2009
Alter: 38
Beiträge: 5
|
|
AW: erkennen ob form gesendet wurde
ja da hast du recht, nur habe ich irgendwo gelesen, das er das submit ebenfalls übergeben wird.
Wie sollte ich es deiner Meinung nach machen?
^^ soll eine normale frage sein, auch wenn es anders klingt.
|
09.07.2009, 12:29:45
|
|
Member
|
|
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
|
|
AW: erkennen ob form gesendet wurde
Hallo Godstyle, leider fehlen dir noch die Grundlagen und daher würde ich dich im ersten Schritt nochmal darum bitten dir diese durch diverse Tutorials anzueignen.
Ja submit wird auch verschickt, und zwar wie alle anderen Elemente unter dem zugewiesen namen.
Wie man aus deinen Script entnehmen kann heißt dein submit "edit" , vll. solltest du nach isset($_POST['edit']) fragen wenn du wissen möchtest ob ein Formular verschickt wurde.
Es muss ja auch nicht der submitbutton sein, es kann ein beliebiges Element als abfrage genommen werden da immer alle verschickt werden (nicht ausgewählte checkboxen ausgenommen)
|
09.07.2009, 12:34:56
|
Anfänger
|
|
Registriert seit: Jul 2009
Alter: 38
Beiträge: 5
|
|
AW: erkennen ob form gesendet wurde
Ich stimme dir zu, dass ich php noch nicht perfekt behersche, ich bin absolut noch im lernstadium.
Das mit edit hatte ich bei mir bereits geändert, was jedoch auch nicht den gewünschten erfolg brachte, da es als false deklariert wird.
Ich denke, da ich nicht nur kopiere was andere mir sagen, sondern auch verstehen möchte, warum es so ist, wie sie es machen, könnte ein Tipp abgesehen von weiteren tutorials, die ich eh mache angebracht sein.
|
09.07.2009, 12:44:03
|
|
Member
|
|
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
|
|
AW: erkennen ob form gesendet wurde
vielleicht solltest du dir den inhalt deiner versendeten daten mal anschauen z.b. mit:
PHP-Code:
echo '<pre>'. print_r($_POST, TRUE). '</pre>';
Ich weiss zwar nicht was in $row->hersteller steht, aber ich bezweifel stark das dort "update" steht. Das müsste aber der fall sein damit $_POST['upname'] den wert "update" bekommt und deine if anweisung auf der einen seite des AND TRUE wäre.
ich habe absolut nichts dagegen das du alles verstehen möchtest, ich habe nur darauf hingeweisen das dir grundlagen fehlen um die lösungsvorschläge korrekt zu verstehen und anzuwenden.
Du hast gefragt warum deine IF anweisung nicht funktioniert, du hast nicht gefragt wie man per POST verschickt formulare auswertet und genau diesen wissen fehlt dir.
Geändert von Indyk (09.07.2009 um 12:45:02 Uhr)
|
09.07.2009, 12:52:23
|
Anfänger
|
|
Registriert seit: Jul 2009
Alter: 38
Beiträge: 5
|
|
AW: erkennen ob form gesendet wurde
auf den gedanken war ich auch bereits gekommen, das ich das mit dem update falsch auslesen, hatte das script eben daraufhin geändert:
PHP-Code:
if(isset($_POST['edit']) AND $_POST['upname']) {
// Nach dem Abschicken kommt immer nur ein Formular hier an.$row->hersteller
echo "change";
mysql_query("UPDATE '".$_POST['upname']."' FROM hersteller WHERE hersteller = '".$row->hersteller."'") OR die(mysql_error());
mysql_query($Query, $database);
echo "<form action=\"index.php?page=hersteller&kat=herbea\" method=\"post\">";
while($row = mysql_fetch_assoc($sql_query)) {
// Jede einzelne Zeile ist also ein eigenes Formular
echo "<form action=\"index.php?page=hersteller&kat=herbea\" method=\"post\">";
echo "$row->hersteller";
echo '<input type="text" name="upname" value="' .$row->hersteller. '">';
echo " <input type=\"submit\" name=\"edit\" value=\"update\">";
echo "</form>\n";
} } else {
$abfrage = "SELECT hersteller FROM hersteller";
$ergebnis = mysql_query($abfrage);
// Hier ist der SQL-Query um die Datensätze der Autos auszulesen
echo "<form action=\"index.php?page=hersteller&kat=herbea\" method=\"post\">";
while($row = mysql_fetch_object($ergebnis)) {
// Jede einzelne Zeile ist also ein eigenes Formular
echo "<form action=\"index.php?page=hersteller&kat=herbea\" method=\"post\">";
echo "$row->hersteller";
echo '<input type="text" name="upname" value="' .$row->hersteller. '">';
echo " <input type=\"submit\" name=\"edit\" value=\"update\">";
echo "</form>\n";
}
er erkennt nun beide als gesendet an.
ich nutze zum einfachen verstehen http://www.schattenbaum.net/php/ hoffe das gilt nicht als spam wenn ja bitte vergib mir ich nehme es dann direkt raus.
beim ausführen erhalte ich folgenden fehler:
changeYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Audi' FROM hersteller WHERE hersteller = ''' at line 1
ich weiß auch warum und denke das ich dafür die lösung bald gefunden habe.
dank dir auf jedenfall für die hilfe, ich schliese den thread wenn ich es habe, anderenfalls frage ich noch einmal um rat, wenn das ok ist.
|
12.07.2009, 23:02:53
|
Anfänger
|
|
Registriert seit: Jul 2009
Alter: 36
Beiträge: 17
|
|
AW: erkennen ob form gesendet wurde
wenn du tipps haben magst...
es ist bei kleinen applikationen und für dich evtl. nicht relevant aber
PHP-Code:
mysql_query("UPDATE '".$_POST['upname']."' FROM hersteller WHERE hersteller = '".$row->hersteller."'") OR die(mysql_error());
wird von php so schneller geparsed:
PHP-Code:
mysql_query("UPDATE '{$_POST['upname']}' FROM hersteller WHERE hersteller = '{$row->hersteller}'") OR die(mysql_error());
da das konkatenieren resourcen verbraucht
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:00:50 Uhr.
|