SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.07.2009, 11:50:53
godstyle godstyle ist offline
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
Mit Zitat antworten
  #2  
Alt 09.07.2009, 12:09:13
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
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'">'
Mit Zitat antworten
  #3  
Alt 09.07.2009, 12:11:36
godstyle godstyle ist offline
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
Mit Zitat antworten
  #4  
Alt 09.07.2009, 12:19:14
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
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.
Mit Zitat antworten
  #5  
Alt 09.07.2009, 12:20:58
godstyle godstyle ist offline
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.
Mit Zitat antworten
  #6  
Alt 09.07.2009, 12:29:45
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
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)
Mit Zitat antworten
  #7  
Alt 09.07.2009, 12:34:56
godstyle godstyle ist offline
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.
Mit Zitat antworten
  #8  
Alt 09.07.2009, 12:44:03
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 37
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
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($_POSTTRUE). '</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)
Mit Zitat antworten
  #9  
Alt 09.07.2009, 12:52:23
godstyle godstyle ist offline
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.
Mit Zitat antworten
  #10  
Alt 12.07.2009, 23:02:53
s1r10n s1r10n ist offline
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
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bild oder Form ständig bewegen lassen ? Delphi_5 HTML, CSS und JavaScript Help! 2 09.06.2008 11:58:22
Form "option" mit PHP verwenden !?! Klappt irgendwie nicht !?! Natheedo PHP Grundlagen 2 17.08.2006 22:16:01
mail form mit diversifizierten Empfänger monzoon PHP Grundlagen 4 27.04.2004 22:14:36
Form ausfüllen und tags auslesen! PHP Noob PHP für Fortgeschrittene und Experten 1 22.09.2003 01:06:27
php form an mysql reto PHP für Fortgeschrittene und Experten 3 14.04.2003 07:33:17


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:00:50 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt