php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.08.2004, 20:20  
Gast
 
Beiträge: n/a
Standard Meine DB enthält immer 2 Zeilen statt nur einer?? 1 is leer.

Hallo,

ich habe ein Formular für mich erstellt, um meine Arbeitstage
zu speichern (id 'steht nur in DB', Ort, Datum, Von, Bis, Stunden):

Jetzt aber, wenn ich mein Formular absende, steht in der
DB:

1. Wie vorgesehen, die Daten, in den ersten 6 Zellen *super*
2. Nochmal das Ganze, bloß alle Zellen leer. *wieso *

Was ist der Auslöser
1. Das Formular oder
2. Die DB (was ich mir nicht vorstellen kann, weil die DB ja nix macht,
ohne das eine Funktion (php-code) es auslöst).


Hier mein Code:

PHP-Code:
<HTML>
<HEAD>
<TITLE>Lohn und Gehalt</TITLE>
</HEAD>

<BODY BGCOLOR="#E3E3E3" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?">
<font size="5" face="Arial Black">Lohn und Gehalt</font>





<STYLE> 
<!-- 
input{ 
background-color:#E3E9FC; 
font-size:9; 
color:#000000; 

--> 
</style> 



<form method="post" action="Gehalt.php">



<TABLE ALIGN="left" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%">
<TR ALIGN="left" VALIGN="middle">
<TD bgcolor="black">  </TD>
</TR>
</TABLE>







<TABLE ALIGN="center" BORDER=1 bordercolor="black" bgcolor="#CCCCCC" CELLSPACING=10 CELLPADDING=0>
<TR ALIGN="center" VALIGN="middle">
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]Ort[/b]</font></TD>
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]Datum[/b]</font></TD>
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]von[/b]</font></TD>
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]bis[/b]</font></TD>
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]Stunden[/b]</font></TD>
</TR>
</TABLE>



<TABLE ALIGN="center" BORDER=1 bordercolor="black" CELLSPACING=10 CELLPADDING=0>
<TR ALIGN="center" VALIGN="middle">
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]
<Input type="text" name="ort" size="21" maxlength="20">
[/b]</font></TD>
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]
<Input type="text" name="datum" size="21" maxlength="10">
[/b]</font></TD>
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]
<Input type="text" name="von" size="21" maxlength="5">
[/b]</font></TD>
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]
<Input type="text" name="bis" size="21" maxlength="5">
[/b]</font></TD>
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]
<Input type="text" name="stunden" size="21" maxlength="5">
[/b]</font></TD>
</TR>
</TABLE>






<Input type="submit" name="senden" value="Senden">
<Input type="reset" name="löschen" value="Löschen">
</form>





<TABLE ALIGN="left" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%">
<TR ALIGN="left" VALIGN="middle">
<TD bgcolor="black"></TD>
</TR>
</TABLE>





<?
  mysql_connect
("localhost","blabla","");
        
mysql_select_db("blabla");?>
        
        
        
        
<?
$ort 
$_POST['ort'];
$datum $_POST['datum'];
$von $_POST['von'];
$bis $_POST['bis'];
$stunden $_POST['stunden'];
?>



<?
  $eintrag 
"INSERT INTO Lohn (Ort, Datum, Von, Bis, Stunden)
  VALUES ('$ort', '$datum', '$von', '$bis', '$stunden')"
;
  
?>

<?
  $eintragen 
mysql_query($eintrag);
  
?>


  
</BODY>
</HTML>
Die "Action" führ aufs selbige Formular wieder zurück.
Danke für Hilfe im Vorraus.
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.08.2004, 21:11  
Gast
 
Beiträge: n/a
Standard

weil du keine abfrage formuliert hast, wann dein insert ausgeführt werden soll
und wann nicht. er wird ausgeführt wenn du die seite lädst, und nochmal
wenn du das formular ausgefüllt hast.

ergo macht das ganze 2 einträge. setz ne if-abfrage, ob dein formular ge-
schickt wurde und führ nur dann ein insert aus.
 
Alt 29.08.2004, 21:23  
Gast
 
Beiträge: n/a
Standard

Is eigenartig, weil ich ein solches Formular schon mal gemacht habe.
Is ein Vokabel-Eintrageformular.

Da gibt man eine Deutsche Vokabel und eine Englische
in je ein text - Feld ein, und geht dann auf "SENDEN",
und die Vokabel landet in der DB.
Auch hier landet man durch den action - Befehl wieder
auf der selbigen Seite, und kann somit noch mehr Vokabeln eintragen
lassen.

Sieht da so aus:


PHP-Code:
<form method="post" action="Englisch_DB.php">


[b]<u>Deutsch</u>[/b]</P>
<Input type="text" name="englisch" SIZE="30">


[b]<u>Englisch</u>[/b]</P>
<Input type="text" name="deutsch" SIZE="30">



<Input type="submit" name="senden" value="Senden">
<Input type="reset" name="löschen" value="Löschen">
</P>
</form>





<?
  mysql_connect
("blabla",
  
"blabla","blabla") or die
  (
"Keine Verbindung moeglich");
  
mysql_select_db("blabla") or die
  (
"Die Datenbank existiert nicht");
  
?>
  
 <?
  $deutsch 
$HTTP_POST_VARS["deutsch"];
  
$englisch $HTTP_POST_VARS["englisch"];
 
?>

 <?
  $eintrag 
"INSERT INTO Vokabeln (englisch, deutsch)
  VALUES ('$deutsch', '$englisch')"
;
  
?>

<?
  $eintragen 
mysql_query($eintrag);
  
?>
Wieso funktioniert dann der Code nicht richtig,

PHP-Code:
<HTML> 
<HEAD> 
<TITLE>Lohn und Gehalt</TITLE> 
</HEAD> 

<BODY BGCOLOR="#E3E3E3" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?"> 
<font size="5" face="Arial Black">Lohn und Gehalt</font> 

 

 

<STYLE> 
<!-- 
input{ 
background-color:#E3E9FC; 
font-size:9; 
color:#000000; 

--> 
</style> 

 

<form method="post" action="Gehalt.php"> 

 

<TABLE ALIGN="left" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"> 
<TR ALIGN="left" VALIGN="middle"> 
<TD bgcolor="black">  </TD> 
</TR> 
</TABLE> 



 

 

<TABLE ALIGN="center" BORDER=1 bordercolor="black" bgcolor="#CCCCCC" CELLSPACING=10 CELLPADDING=0> 
<TR ALIGN="center" VALIGN="middle"> 
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]Ort[/b]</font></TD> 
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]Datum[/b]</font></TD> 
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]von[/b]</font></TD> 
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]bis[/b]</font></TD> 
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b]Stunden[/b]</font></TD> 
</TR> 
</TABLE> 

 

<TABLE ALIGN="center" BORDER=1 bordercolor="black" CELLSPACING=10 CELLPADDING=0> 
<TR ALIGN="center" VALIGN="middle"> 
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b] 
<Input type="text" name="ort" size="21" maxlength="20"> 
[/b]</font></TD> 
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b] 
<Input type="text" name="datum" size="21" maxlength="10"> 
[/b]</font></TD> 
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b] 
<Input type="text" name="von" size="21" maxlength="5"> 
[/b]</font></TD> 
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b] 
<Input type="text" name="bis" size="21" maxlength="5"> 
[/b]</font></TD> 
<TD bgcolor="#EBE8E8" width="150"><font face="arial">[b] 
<Input type="text" name="stunden" size="21" maxlength="5"> 
[/b]</font></TD> 
</TR> 
</TABLE> 


 

 

<Input type="submit" name="senden" value="Senden"> 
<Input type="reset" name="löschen" value="Löschen"> 
</form> 


 
 

<TABLE ALIGN="left" BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="100%"> 
<TR ALIGN="left" VALIGN="middle"> 
<TD bgcolor="black"></TD> 
</TR> 
</TABLE> 


 
 

<? 
  mysql_connect
("localhost","blabla",""); 
        
mysql_select_db("blabla");?> 
         
         
         
         
<? 
$ort 
$_POST['ort']; 
$datum $_POST['datum']; 
$von $_POST['von']; 
$bis $_POST['bis']; 
$stunden $_POST['stunden']; 
?> 

 

<? 
  $eintrag 
"INSERT INTO Lohn (Ort, Datum, Von, Bis, Stunden) 
  VALUES ('$ort', '$datum', '$von', '$bis', '$stunden')"

  
?> 

<? 
  $eintragen 
mysql_query($eintrag); 
  
?> 

 
   
</BODY> 
</HTML>
 
Alt 29.08.2004, 23:12  
Gast
 
Beiträge: n/a
Standard

Kann mir da niemand helfen


Ich habs jetzt schon Gott weiß wie oft kontrolliert,
aber konnt keinen Fehler finden.

 
Alt 29.08.2004, 23:25  
Gast
 
Beiträge: n/a
Standard

entweder ich bin zu müde oder dein vokabel-code geht auch nicht...
ich muss stef zustimmen. ohne ne abfrage, ob den das formular abgesendet wurde, wird das nix.
bist du sicher, dass das wirklich der code ist, den du für den vokabel-trainer verwendest?
 
Alt 29.08.2004, 23:31  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von chris1982nrw
Kann mir da niemand helfen
stef hat dir die antwort gegeben. was ist daran unverständlich? wo genau liegt dein problem?

ich würde dir raten jetzt erst mal alleine auf die lösung zu kommen.

wenn du schon mal so ein formular erstellt hast, dann funktioniert das genauso wenig. denn was stef sagt ist einfach richtig.
du musst abfragen, ob der button getätigt wurde. ist diese der fall und nur dann lässt du die INSERT-anweisung ausführen.

stichwort: if-abfrage.
imported_Ben ist offline  
Alt 30.08.2004, 00:18  
Gast
 
Beiträge: n/a
Standard

Komischer Weise tuts dass aber.

Schließlich arbeite ich oft mit dem Formular,
welches, wenn ich es starte (also die Adresse eingebe)
eine Leere Zeile zur DB schickt.
Aber das Ganze nur 1 mal, und dann kann ich ständig weitere
Vokabeln eintragen, ohne dass immer wieder eine leere Zeile dazwischen ist.

Deswegen, weil es ja keine Probleme mit dem alten Code gab,
hab ich Ihn ja wieder verwendet, nur für ne andere Sache.

Wenn halt dann nur die If-Funktion was bringt, kann mir da
mal jemand helfen
 
Alt 30.08.2004, 09:18  
Gast
 
Beiträge: n/a
Standard

www.php.net/if hilft dir da gerne.

du musst halt einfach abfragen, ob die variablen die aus deinem formular
gesendet werden, belegt sind. und wenn dem so ist, dann darfste das insert
ausführen und sonst halt nicht. dann sonst kriegste nen eintrag bei dem
möglicherweise nicht alle felder belegt sind.
 
Alt 30.08.2004, 14:42  
Gast
 
Beiträge: n/a
Standard

Da ich ja nicht unbedingt so in PHP ein Ass bin, hab ich mir mal
von Schattenbaum diesen if-Teil geholt.
Kann ich den Verwenden
Is mir aber schon klar, dass ich Ihn nicht so mit den Inhalten
verwenden kann.


PHP-Code:
<?
  
if($user == "Claudia")
    {
    echo 
"Bist du Cloud?";
    }
  else
    {
    echo 
"Also Cloud bist du sicher nicht!";
    }
  
?>
Ich hab zwar NULL Ahnung, wie ich den Code jetzt in meinem
Einbetten muss, aber egal.

Jetzt währs halt gut, wenn mir jemand sagen könnte,
ob ich diesen Code für meine Zwecke nutzen kann.

DANKE
 
Alt 30.08.2004, 14:57  
Gast
 
Beiträge: n/a
Standard

also nen php-buch hast du wohl nicht, oder?
oder dir zb nen tutorial durchgelesen?

wäre hilfreich!

aber gut:
füge in dein formular ein hidden feld ein, gib ihm den name gesendet, den wert 1 und mache um deinen code, mit dem du in die db schreibst, oder noch besser um den ganzen code, folgende if abfrage:
PHP-Code:
if($_POST['gesendet']==1) {
    
// dein code

dann sollte es gehen.
 
 


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
Tabellen kopieren ohne bestimmte Zeilen HaraDej Datenbanken 2 01.08.2007 15:49
Sql Updates mehrer Zeilen Fr33z3m4n PHP Tipps 2006 7 10.02.2006 09:07
Zeilen heruasfinden?! PHP Tipps 2007 4 02.12.2005 16:53
[Erledigt] Wie kann ich überprüfen ob eine variabel leer ist? PHP Tipps 2005-2 14 22.10.2005 20:56
[Erledigt] MySQL Zeilen lassen sich nicht kategorisieren Datenbanken 3 24.05.2005 01:15
Datenausgabe in 2 Spalten und mehrere Zeilen mediaindesign Datenbanken 8 27.03.2005 09:13
[Erledigt] Rückgabewert einer Funktion bleibt manchmal leer PHP Tipps 2005 8 02.02.2005 18:15
[Erledigt] Doppelte zeilen löschen Datenbanken 8 06.12.2004 17:17
Jede 2. Zeile im SourceCode leer. Ich werd noch wahnsinnig. PHP Tipps 2004 3 27.10.2004 15:10
mehrere Zeilen updaten Unbekanntes_Pferd Datenbanken 2 15.10.2004 11:06
Daten aus Formular in Datenbank - Zeilen bleiben leer PHP Tipps 2004 2 06.09.2004 16:06
[Erledigt] 0 Zeilen werden zurückgegeben Datenbanken 5 21.08.2004 01:13
Zeilen auslesn und speichern PHP Tipps 2004 9 14.07.2004 15:41
[Erledigt] Verzeichnis leer??? PHP Tipps 2004 9 09.07.2004 13:47
mehrere zeilen aus *.txt verschieden-farbig auslesen PHP Tipps 2004 3 30.06.2004 21:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:43 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.