php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.06.2006, 20:52  
Neuer Benutzer
 
Registriert seit: 06.06.2006
Beiträge: 6
vod``
Standard formular unterscheidet falsch bei update und neueintrag

tach schön,
also gleich mal vorne weg. ich bin ein totaler frischling in sachen php, also könnt ihr euch sicher denken, wie mein zusammengebasteltes zeug aussieht

so, nun zur vorgeschichte - ich bin dabei für meinen jahrgang (hab fast abi hinter mir) eine seite zu schaffen, wo man seine daten eintragen kann, damit man sich später (hoffentlich) mal erreichen kann..

wie auch immer, das formular soll unterscheiden, ob es sich um einen bereits vorhandenen namen und vornamen handelt oder es ein komplett neuer eintrag ist.
jeweils soll dann entweder ein update durchgeführt werden oder ein neueintrag (mit den jeweiligen details).

nun tritt bei mir jedoch das problem auf, dass er nur die vorhandenen daten updatet, jedoch keine neueinträge vornimmt...
ich hab keine ahnung, warum und auch langsam keine lust mehr, denn ich komm einfach nicht drauf - porbier nun schon einige zeit daran rum -.-
vllt könnt ihr mir ja helfen - wäre klasse

und zur näheren verständlichkeit:
PHP-Code:
     $abfrage  "SELECT `Name`,`Vorname` FROM `Schule` WHERE `Name` LIKE '$Name' AND `Vorname` LIKE '$Vorname'";
     
$result mysql_query($abfrage) OR DIE ("MySQL-Fehler: " mysql_error());          // soll Name und Vorname aus der Datenbank suchen, die mit den Formular Namen und Vornamen übereinstimmen
     
     
$xyz = ($Vorname == $Name);        // vergleicht Vor- und Nachname
     
$qrw = ("" == $_POST['Name']);     // überprüft ob das Feld Name leer ist
     
if($xyz OR $qrw)   {
     echo 
"
"
;
     }
     else {
       if(
$result)    {                 // soll erkennen ob es ein Update geben soll - andernfalls Neueintrag in die DB

       
$aendern="UPDATE
         Schule
       SET
         Name = '$Name',
         Vorname = '$Vorname',
         Strasse = '$Strasse',
         Wohnort = '$Wohnort',
         PLZ = '$PLZ',
         Tele = '$Tele',
         Email = '$Email'
       WHERE
         Name = '$Name' AND
         Vorname = '$Vorname';"
;
       
$update mysql_query($aendern);
       echo 
"<td colspan=2>&Auml;nderung vorgenommen.</td></tr><tr>";
       }
       
       else  {
       
$eintrag "INSERT INTO Schule (`Name`, `Vorname`, `Strasse`, `Wohnort`, `PLZ`, `Tele`, `Email`) VALUES('$Name','$Vorname','$Strasse','$Wohnort','$PLZ','$Tele','$Email')";
       
$neu mysql_query($eintrag) OR DIE ("MySQL-Fehler: " mysql_error());
       echo 
"<td colspan=2>Neue Daten wurden aufgenommen.</td></tr><tr>";
       }} 
ps. das ist nur der ausschnitt, welcher meiner meinung nach der fehlerhafte ist, obwohl keine fehler angezeigt werden.
der andere kram des scriptes müsste stimmen...*hoff
vod`` ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.06.2006, 22:21  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Hi, willkommen im Forum.

Du solltest nochmal nachgucken, wie man Daten aus der DB holt.
Insbesondere solltest Du mal bei mysql_query_* nachgucken. Und auch die Beispiele dazu mal ansehen.

Was sind $Name und $Vorname? Sind das die Werte aus dem Formular? Wenn ja, such hier im Forum mal nach register_globals und stelle das Script dann durchgängig auf $_POST bzw. $_GET um.

Lass Dir ggf auch mal die verschiedenen Variablen ausgeben. Das könnte noch einige Hinweise bringen.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 07.06.2006, 07:31  
Benutzer
 
Registriert seit: 31.03.2006
Beiträge: 49
uro3
Standard

if($result) Ist zur Pr�fung ob ein Datensatz gefunden wurde nicht geeignet. $result ist nur dann nicht gesetzt, wenn ein Fehler in der Abfrage auftritt und keine Daten gefunden ist kein Fehler. Es muss also z.B. mit mysql_num_rows gepr�ft werden ob etwas gefunden wurde.
uro3 ist offline  
Alt 07.06.2006, 16:28  
Neuer Benutzer
 
Registriert seit: 06.06.2006
Beiträge: 6
vod``
Standard

erstmal, danke für die begrüßung
und ich werd mich dann wohl mal weiter damit beschäftigen..

zu 'Der_Gerhard',
jop $Name und $Vorname sind werte aus dem formular.

und zu uro,
jop, hab versucht das auch mit mysql_num_rows zu machen - habs aber nich hinbekommen :/
vod`` ist offline  
Alt 07.06.2006, 16:31  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Na, und was ist Dir dann bei der Suche nach register_globals aufgefallen?
Ist das bei Dir on oder off?

Hmmm.... ohne mysql_num_rows() hast Du's auch net hinbekommen. SCNR.

Zeig mal ne Variante damit und dann kann Dir weiter helfen.

Und wenn DU mal bei mysql_fetch*() geguckt hast, wie hat sich dadurch Dein Code verändert?
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 07.06.2006, 16:51  
Neuer Benutzer
 
Registriert seit: 06.06.2006
Beiträge: 6
vod``
Standard

also ich hab ebend erstma nach mysql_query gesucht...
hat sich aber nich sonderlich viel ergeben...

und zwecks mysql_num_rows(), das war falsch von mir vorhin...ich hab das nich mit num sondern mit mysql_affected_rows versucht...
- das wurd aber nischt..

mit fetch hat ich da auch mal was getestet - problem is allerdings nur, dass ich nie die dateien mehrfach speicher sondern nur überspeicher ... folge: ich kann gerade keine anderen versionen aufzeigen..

und mal so als frage - ihr seht das ja besser als ich - is denn da nen grundlegender fehler - also kann man nich fix sagen, so und so muss das sein ? - ich hab keine ahnung davon...also fast keine

( beispiel. wenn ich das letzte "else" und die beiden "{" "}" entfern, dann schreibt er was in die DB )
vod`` ist offline  
Alt 07.06.2006, 16:56  
Neuer Benutzer
 
Registriert seit: 06.06.2006
Beiträge: 6
vod``
Standard

hui,
ich bin ja begeistert - ich habs mal mit mysql_num_rows() gemacht und nu läufts - danke

aber frage: warum muss ich das extra so ausgeben - ich mein ich hab mir das ja auch schon mal gedacht, aber es is doch klar, dass wenn nen ergebnis da is, er das auch machen soll oder nich ?
- anscheinend nich ^^ also y ?
vod`` ist offline  
Alt 07.06.2006, 16:59  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Woher weißt Du denn, ob ein Ergebnis da ist.
In $result steht das sicher nicht.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 07.06.2006, 17:19  
Neuer Benutzer
 
Registriert seit: 06.06.2006
Beiträge: 6
vod``
Standard

hmm...
also laut DB funktioniert das...
update, so wie auch neueintrag...
ohne fehler...
halt so wie es soll.

und ich mach das einfach so:
if(mysql_num_rows($result)==1)
vod`` ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP: Formular Generator Zergling-new Tutorials 16 06.07.2010 03:14
Wert aus Textfeld in neues Formular übernehmen (kein Submit) PsychoEagle HTML, Usability und Barrierefreiheit 9 02.01.2007 14:51
[Erledigt] Formular in Formular HTML, Usability und Barrierefreiheit 4 19.10.2005 12:18
"Typ Set" Daten aus Formular werden falsch abgespe Datenbanken 3 25.07.2005 09:36
Formular UPDATE PHP Tipps 2005 5 18.02.2005 13:44
Update falsch ... PHP Tipps 2005 2 06.01.2005 20:19
Im Formular user abfragen? Datenbanken 3 06.01.2005 10:51
Update Funktion mit Formular Experte gesucht... Datenbanken 2 30.12.2004 12:04
Formular nach UPDATE anzeigen PHP Tipps 2004-2 5 22.12.2004 02:06
UPDATE!! Was mache ich falsch? HTML, Usability und Barrierefreiheit 6 07.08.2004 19:32
SQL Update Formular Datenbanken 1 12.07.2004 08:45


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.