|
 |
|
| Autor |
Nachricht |
xxcool25xx Erfahrener [User]

Anmeldung: 16.02.07 Beiträge: 50 Wohnort: ganz im Sü ...
|
Verfasst am: 29.08.2008, 12:42 Titel: Problem mit Daten in die Datenbank hinzufügen... |
|
|
Hallo an alle, habe da folgendes Problem,
ich habe mir einen Script gebastelt um die Daten in die Datenbank zu laden, fürs erste funktioniert der auch einwandfrei, die Daten werden hinzugefügt. Jetzt möchte ich vermeiden, dass Eingabefelder beim Senden leer sind, wie mache ich das am besten, dann möchte ich, dass wenn die Daten erfolgreich hizugefügt werden, dass dann eine Meldung kommt, wenn alles ok ist, dann "Alle Daten wurden erfolgreich übertragen" und wenn was falsch ist dann "Es ist ein fehler aufgetreten", kann mir da vielleicht einer weiterhelfen.
Hier der Script: | Code: |
<?php
/*Variablen zum Einfügen der Daten in die Datenbank*/
$head = $_POST["head"];
$url = $_POST["url"];
$descript = $_POST["descript"];
$username = $_POST["username"];
$password = $_POST["password"];
//Verbindung zu der Datenbank
mysql_connect ("localhost","xxxxxxx","xxxxxx") or die ("Keine Verbindung möglich!");
mysql_select_db ("my_links") or die ("Die Datenbank existiert nicht!");
/*Script zum Kommunizieren mit der Datenbank*/
$eintrag = "INSERT INTO my_links (head, url, descript, username, password) VALUES ('$head','$url', '$descript', '$username','$password')";
//Variable zum Eintrag der Daten in die Datenbank
$eintragen = mysql_query($eintrag) or die (mysql_error());
$error = 0; /* ich setzte die Variable $error auf 0 - bei größeren Scripten später könnte es ja sein, dass die Variable noch einen Wert trägt */
if($_POST['head'] == "") $error = 1; /* falls in "head" nichts eingegeben wurde wird error = 1 gesetzt. */
if($_POST['url'] == "") $error = 1;
if($_POST['username'] == "") $error = 1;
if($_POST['password'] == "") $error = 1;
if($error == 0)
{
echo "Ihre Daten wurden erfolgreich in die Datenbank eingetragen";
}
else
{ /* else... */
echo "Es ist ein Fehler aufgetreten, bitte alle formulare ausfühlen!";
}
?>
<html>
<head>
<style type="text/css">
.content
{
vertical-align: top;
text-align: left;
padding-left:10px;
font-family:arial;
width: 200px;
}
.fields
{
font-family:arial;
width:300px;
}
.button
{
font-family:arial;
width:150px;
text-align:center;
background-color:blue;
font-weight:600;
color:white;
margin-top:30px;
}
</style>
</head>
<body>
<table>
<tr>
<form action="<?php echo $_POST["PHP_SELF"]; ?>" method="post">
<td class="content">Bezeichnung</td>
<td><input value="" class="fields" name="head" type="text"></td>
</tr>
<tr>
<td class="content">Website URL</td>
<td><input value="" class="fields" name="url"></td>
</tr>
<tr>
<td class="content">Beschreibung</td>
<td><textarea cols="50" rows="10" name="descript"></textarea></td>
</tr>
<tr>
<td class="content">Username</td>
<td><input value="" class="fields" name="username" type="text"></td>
</tr>
<tr>
<td class="content">Passwort</td>
<td><input value="" class="fields" name="password" type="text"></td>
</tr>
<tr>
<td><input type="submit" value="Daten senden" class="button" name="SUBMIT"></td>
<td><input type="reset" value="Daten löschen" class="button"></td>
</tr>
</form>
</table>
</body>
</html>
|
Danke schon mal im voraus.
Gruß
Konstantin
|
|
| Nach oben |
|
 |
maudim02 Helfer [User]


Anmeldung: 30.09.06 Beiträge: 158
|
Verfasst am: 29.08.2008, 13:19 Titel: |
|
|
das einfügen in die datenbank solltest du schon NACH der errorabfrage machen...
bringt ja nix wenn du die daten so wie sie sind zuerst in die DB schreibst und danach auf Fehler überprüfst...
und bei der Fehlerüberprüfung vielleicht nicht schreiben | Code: | | if($_POST['head'])... | sondern gleich die variablen verwenden die du am anfang hattest....
Also im klartext:
| Code: |
<?php
/*Variablen zum Einfügen der Daten in die Datenbank*/
$head = $_POST["head"];
$url = $_POST["url"];
$descript = $_POST["descript"];
$username = $_POST["username"];
$password = $_POST["password"];
//Verbindung zu der Datenbank
mysql_connect ("localhost","xxxxxxx","xxxxxx") or die ("Keine Verbindung möglich!");
mysql_select_db ("my_links") or die ("Die Datenbank existiert nicht!");
/*Script zum Kommunizieren mit der Datenbank*/
$eintrag = "INSERT INTO my_links (head, url, descript, username, password) VALUES ('$head','$url', '$descript', '$username','$password')";
$error = 0; /* ich setzte die Variable $error auf 0 - bei größeren Scripten später könnte es ja sein, dass die Variable noch einen Wert trägt */
if(strlen($head) <1) $error = 1; /* falls in "head" nichts eingegeben wurde wird error = 1 gesetzt. */
if(strlen($url) < 1) $error = 1;
if(strlen($username) < 1 ) $error = 1;
if(strlen($password)<1) $error = 1;
if($error == 0)
{
//Variable zum Eintrag der Daten in die Datenbank
$eintragen = mysql_query($eintrag) or die (mysql_error());
echo "Ihre Daten wurden erfolgreich in die Datenbank eingetragen";
}
else
{ /* else... */
echo "Es ist ein Fehler aufgetreten, bitte alle formulare ausfühlen!";
}
?> |
|
|
| Nach oben |
|
 |
xxcool25xx Erfahrener [User]

Anmeldung: 16.02.07 Beiträge: 50 Wohnort: ganz im Sü ...
|
Verfasst am: 29.08.2008, 16:01 Titel: |
|
|
Ok Danke schon mal, werde ich heute audprobieren...
|
|
| Nach oben |
|
 |
xxcool25xx Erfahrener [User]

Anmeldung: 16.02.07 Beiträge: 50 Wohnort: ganz im Sü ...
|
Verfasst am: 29.08.2008, 17:09 Titel: |
|
|
habe das jetzt ausprobiert, das funktioniert soweit auch, das was mich jetzt noch stört, ist das, wenn ich die Datei ausführe steht oben über meinem Formular schon gleich die "else" Fehlermeldung, und wenn die Daten übertragen worden sind, dann steht über dem Formular die "if" Meldung, wie kann ich das vermeiden, ich möchte eigentlich nur ein Formular starten und dann meine Daten eintragen und dann wenn die eingabe erfolgreich ist ein extra Fenter, wo dann die "if" Meldung kommt. oder eben wenn daten falsch waren, die "else" Meldung.
[/img]
|
|
| Nach oben |
|
 |
placido Helfer [User]

Anmeldung: 16.10.07 Beiträge: 194
|
Verfasst am: 29.08.2008, 17:23 Titel: |
|
|
noch eine schleife die überprüft ob alle felder leer sind. falls ja nichts anzeigen _________________ Relativitätstheorie:
Wenn ich Dir einen Finger ins Auge stecke, haben wir beide einen Finger im Auge, aber ich bin relativ besser dran
Browserspiele
|
|
| Nach oben |
|
 |
xxcool25xx Erfahrener [User]

Anmeldung: 16.02.07 Beiträge: 50 Wohnort: ganz im Sü ...
|
Verfasst am: 29.08.2008, 18:00 Titel: |
|
|
nee das hat jetzt nicht funktioniert, wie soll ich diese Schleife am Besten einbauen???
|
|
| Nach oben |
|
 |
placido Helfer [User]

Anmeldung: 16.10.07 Beiträge: 194
|
Verfasst am: 29.08.2008, 18:03 Titel: |
|
|
if alle felder leer
{ formular }
else
{überprüfung formular } _________________ Relativitätstheorie:
Wenn ich Dir einen Finger ins Auge stecke, haben wir beide einen Finger im Auge, aber ich bin relativ besser dran
Browserspiele
|
|
| Nach oben |
|
 |
maudim02 Helfer [User]


Anmeldung: 30.09.06 Beiträge: 158
|
Verfasst am: 29.08.2008, 21:35 Titel: |
|
|
ich würds so machen:
| Code: |
if ($_POST['SUBMIT'])
{
fehlerüberprüfung + daten in DB schreiben...
}
else
{
formular anzeigen..
}
|
Und noch was: Die If-Anweisung ist KEINE Schleife 
|
|
| Nach oben |
|
 |
xxcool25xx Erfahrener [User]

Anmeldung: 16.02.07 Beiträge: 50 Wohnort: ganz im Sü ...
|
Verfasst am: 29.08.2008, 22:24 Titel: |
|
|
ich weis nicht es will einfach nicht klappen.
mein Skript sieht jetzt so aus und es kallpt immer noch nicht.
ich möchte das vor der eingabe nur die Formularfelder da stehen und nach der eingabe eine andere seite aufgeht in dieser steht, Ihre daten wurden eingetragen und dann kann ich diese wieder auf die Startseite umleiten z. BS.
| Code: | <?php
/*Variablen zum Einfügen der Daten in die Datenbank*/
$head = $_POST["head"];
$url = $_POST["url"];
$descript = $_POST["descript"];
$username = $_POST["username"];
$password = $_POST["password"];
/*Verbindung zu der Datenbank*/
mysql_connect ("localhost","xxx","xxxxx") or die ("Keine Verbindung möglich!");
mysql_select_db ("xxxxxx") or die ("Die Datenbank existiert nicht!");
/*Script zum Kommunizieren mit der Datenbank*/
$eintrag = "INSERT INTO my_links (head, url, descript, username, password) VALUES ('$head','$url', '$descript', '$username','$password')";
?>
<html>
<head>
<link href="content.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<form action='<?php echo $_POST["PHP_SELF"]; ?>' method='post'>
<?php
//Überprüfung der Formulare auf Inhalt
$formular = "no";
if(strlen($head) >1) $error = 1;
if(strlen($url) >1) $error = 1;
if(strlen($username) >1) $error = 1;
if(strlen($password) >1) $error = 1;
if($formular == "no")
{
echo "
<table>
<tr>
<td class='content'>Bezeichnung</td>
<td><input value='' class='fields' name='head' type='text'></td>
</tr>
<tr>
<td class='content'>Website URL</td>
<td><input value='' class='fields' name='url'></td>
</tr>
<tr>
<td class='content''>Beschreibung</td>
<td><textarea cols='50' rows='10' name='descript' class='fields'></textarea></td>
</tr>
<tr>
<td class='content'>Username</td>
<td><input value='aaaa' class='fields' name='username' type='text'></td>
</tr>
<tr>
<td class='content'>Passwort</td>
<td><input value='' class='fields' name='password' type='text'></td>
</tr>
<tr>
<td><input type='submit' value='Daten senden' class='button' name='SUBMIT'></td>
<td><input type='reset' value='Daten löschen' class='button'></td>
</tr>
</table>";
}
else
{
echo "Ein Fehler ist aufgetreten!!!";
}
?>
<?php
//Fehlermeldung bei nicht komplett ausgefühlten Formularen
$error = "fields";
if(empty($head)) $error = 1;
if(empty($url)) $error = 1;
if(empty($username)) $error = 1;
if(empty($password)) $error = 1;
if($error == "fields")
{
//Variable zum Eintrag der Daten in die Datenbank
$eintragen = mysql_query($eintrag) or die (mysql_error());
echo "Ihre Daten wurden erfolgreich in die Datenbank eingetragen";
}
else
{
echo "Es ist ein Fehler aufgetreten, bitte alle formulare ausfühlen!";
}
?>
</form>
</body>
</html> |
bin echt schon am verzweifeln...
|
|
| Nach oben |
|
 |
maudim02 Helfer [User]


Anmeldung: 30.09.06 Beiträge: 158
|
Verfasst am: 30.08.2008, 09:32 Titel: |
|
|
| Code: | <?php
/*Variablen zum Einfügen der Daten in die Datenbank*/
$head = $_POST["head"];
$url = $_POST["url"];
$descript = $_POST["descript"];
$username = $_POST["username"];
$password = $_POST["password"];
/*Verbindung zu der Datenbank*/
mysql_connect ("localhost","xxx","xxxxx") or die ("Keine Verbindung möglich!");
mysql_select_db ("xxxxxx") or die ("Die Datenbank existiert nicht!");
/*Script zum Kommunizieren mit der Datenbank*/
$eintrag = "INSERT INTO my_links (head, url, descript, username, password) VALUES ('$head','$url', '$descript', '$username','$password')";
?>
<html>
<head>
<link href="content.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<form action='<?php echo $_POST['PHP_SELF']; ?>' method='post'>
<?php
if(!($_POST['ok']))
{
echo "
<table>
<tr>
<td class='content'>Bezeichnung</td>
<td><input value='' class='fields' name='head' type='text'></td>
</tr>
<tr>
<td class='content'>Website URL</td>
<td><input value='' class='fields' name='url'></td>
</tr>
<tr>
<td class='content''>Beschreibung</td>
<td><textarea cols='50' rows='10' name='descript' class='fields'></textarea></td>
</tr>
<tr>
<td class='content'>Username</td>
<td><input value='aaaa' class='fields' name='username' type='text'></td>
</tr>
<tr>
<td class='content'>Passwort</td>
<td><input value='' class='fields' name='password' type='text'></td>
</tr>
<tr>
<td><input type='submit' value='Daten senden' class='button' name='ok'></td>
<td><input type='reset' value='Daten löschen' class='button'></td>
</tr>
</table>";
}
else if($_POST['ok'])
{
if(strlen($head) >1) $error = 1;
if(strlen($url) >1) $error = 1;
if(strlen($username) >1) $error = 1;
if(strlen($password) >1) $error = 1;
if($error == 0)
{
//Variable zum Eintrag der Daten in die Datenbank
$eintragen = mysql_query($eintrag) or die (mysql_error());
echo "Ihre Daten wurden erfolgreich in die Datenbank eingetragen";
}
else
{
echo "Es ist ein Fehler aufgetreten, bitte alle formulare ausfühlen!";
}
}
?>
</form>
</body>
</html> |
sollte funktionieren...
|
|
| Nach oben |
|
 |
xxcool25xx Erfahrener [User]

Anmeldung: 16.02.07 Beiträge: 50 Wohnort: ganz im Sü ...
|
Verfasst am: 30.08.2008, 10:59 Titel: |
|
|
Hallo,
jetzt bringt der jedes mal die "else Meldung" egal was ich mache...
|
|
| Nach oben |
|
 |
maudim02 Helfer [User]


Anmeldung: 30.09.06 Beiträge: 158
|
Verfasst am: 30.08.2008, 13:29 Titel: |
|
|
| Code: |
<?php
/*Variablen zum Einfügen der Daten in die Datenbank*/
$head = $_POST["head"];
$url = $_POST["url"];
$descript = $_POST["descript"];
$username = $_POST["username"];
$password = $_POST["password"];
/*Verbindung zu der Datenbank*/
mysql_connect ("localhost","xxx","xxxxx") or die ("Keine Verbindung möglich!");
mysql_select_db ("xxxxxx") or die ("Die Datenbank existiert nicht!");
/*Script zum Kommunizieren mit der Datenbank*/
$eintrag = "INSERT INTO my_links (head, url, descript, username, password) VALUES ('$head','$url', '$descript', '$username','$password')";
?>
<html>
<head>
<link href="content.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<form action='<?php echo $_POST['PHP_SELF']; ?>' method='post'>
<?php
if(!($_POST['ok']))
{
echo "
<table>
<tr>
<td class='content'>Bezeichnung</td>
<td><input value='' class='fields' name='head' type='text'></td>
</tr>
<tr>
<td class='content'>Website URL</td>
<td><input value='' class='fields' name='url'></td>
</tr>
<tr>
<td class='content''>Beschreibung</td>
<td><textarea cols='50' rows='10' name='descript' class='fields'></textarea></td>
</tr>
<tr>
<td class='content'>Username</td>
<td><input value='aaaa' class='fields' name='username' type='text'></td>
</tr>
<tr>
<td class='content'>Passwort</td>
<td><input value='' class='fields' name='password' type='text'></td>
</tr>
<tr>
<td><input type='submit' value='Daten senden' class='button' name='ok'></td>
<td><input type='reset' value='Daten löschen' class='button'></td>
</tr>
</table>
</form>";
}
else if($_POST['ok'])
{
if(strlen($head) >1) $error = 1;
if(strlen($url) >1) $error = 1;
if(strlen($username) >1) $error = 1;
if(strlen($password) >1) $error = 1;
if($error == 0)
{
//Variable zum Eintrag der Daten in die Datenbank
$eintragen = mysql_query($eintrag) or die (mysql_error());
echo "Ihre Daten wurden erfolgreich in die Datenbank eingetragen";
}
else
{
echo "Es ist ein Fehler aufgetreten, bitte alle formulare ausfühlen!";
}
}
?>
</body>
</html>
|
so, jetzt aber Da </form> war zu weit hinten... sollte normalerweise funktionieren... habs aber nicht probiert...
|
|
| Nach oben |
|
 |
xxcool25xx Erfahrener [User]

Anmeldung: 16.02.07 Beiträge: 50 Wohnort: ganz im Sü ...
|
Verfasst am: 01.09.2008, 06:08 Titel: |
|
|
danke schon mal für die Antwort, ich habe ess jetzt auch gefunden, es lag nicht an </form>
es lag an dem da
| Code: | if(strlen($head) >1) $error = 1;
if(strlen($url) >1) $error = 1;
if(strlen($username) >1) $error = 1;
if(strlen($password) >1) $error = 1; |
ich habe mich da vertippt, es sollte so heißen
| Code: | if(strlen($head) <1) $error = 1;
if(strlen($url) <1) $error = 1;
if(strlen($username) <1) $error = 1;
if(strlen($password) <1) $error = 1; |
Aber danke für deine Hilfe, jetzt funktioniert das auch,
Was mich noch interessierren würde, ich habe in der DB die ID die er selbst hochzählt, wenn ich aber ein Tatensatz mit der Nr. 4 lösche, schreib er dann beim nächsten nicht 4 sondern gleich 5 der überspringt die gelöschte ID, ist das normal???
|
|
| Nach oben |
|
 |
umt Beliebter [User]

Anmeldung: 29.11.07 Beiträge: 310
|
Verfasst am: 01.09.2008, 06:51 Titel: |
|
|
Ja, ist normal. _________________
www.jexlab.net - Webentwicklung zu fairen Konditionen
www.netzonaut.de - Blog zum Thema Webentwicklung, Internet, Linux und OpenSource-Software
|
|
| Nach oben |
|
 |
maudim02 Helfer [User]


Anmeldung: 30.09.06 Beiträge: 158
|
Verfasst am: 01.09.2008, 08:20 Titel: |
|
|
naja die id ist bei dir der primary key, also ein eindeutiges erkennungsmerkmal...
Damit es unter keinen Umständen vorkommt dass zwei Datensätze die gleiche ID haben, wird dann bei der letzten gespeicherten ID +1 gerechnet und somit wird gewährleistet dass sicher nur ein Datensatz pro ID ist!
€dit: Achja die guten tippfehler Funktioniert dass eigentlich auch wenn das "</form>" tag an der alten stelle steht, also ganz unten?
€dit2: *AufDenKopfKlopf* Habs grad gecheckt das des so oder so geht *g* Also egal ob das </form> jetzt vor dem php-code steht oder nachher... Oh mann, ohne kaffee in der früh geht nix 
|
|
| Nach oben |
|
 |
|
|
 |
|
Alle Zeiten sind GMT + 1 Stunde Gehe zu Seite 1, 2 Weiter
|
| Seite 1 von 2 |
|  |