formular
enidi
- php
Hallo alle zusammen ich möchte in meine mysql daten bank datensätze hinzufügen aber es klappt seid tagen sitze ich dran und es geht nicht bitte um hilfe oder ratschläge
<?php
$db_host = "localhost";
$db_user = "****";
$db_pass = "****";
$db_name = "enidi";
if (isset( $_POST['eintragen'] ))
{
$_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST;
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$adresse = $_POST['adresse'];
$tel = $_POST['tel'];
$fax = $_POST['fax'];
$email = $_POST['email']
$internetseite = $_POST['internetseite']
$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
if ($conID)
{
mysql_select_db( $db_name, $conID );
}
$sql = "INSERT INTO adresen
(vorname
, nachname
, adresse
, tel
, 'fax', 'email', 'internetseite')
VALUES(
'" .mysql_real_escape_string( $vorname ). "',
'" .mysql_real_escape_string( $nachname ). "',
'" .mysql_real_escape_string( $adresse ). "',
'" .mysql_real_escape_string( $tel ). "',
'" .mysql_real_escape_string( $fax ). "',
'" .mysql_real_escape_string( $email ). "',
'" .mysql_real_escape_string( $internetseite ). "',
)";
mysql_query( $sql );
if (mysql_affected_rows() == 1)
{
echo "<h3>Der Datensatz wurde hinzugefügt!</h3>";
}
else
{
echo "<h3>Der Datensatz konnte <strong>nicht</strong> hinzugefügt werden!</h3>";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formularinhalt in eine Datenbank schreiben</title>
<link href="design.css" type="text/css" rel="stylesheet" />
</head>
<style type="text/css">
</style>
<body>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<h3>Datenbank für ALL@NET</h3>
<BR>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" id="formular">
<center>Vorname</center> <center> <input type="text" name="vorname" id="vorname" /><br /></center>
<center>Nachname</center> <center><input type="text" name="nachname" id="nachname" /><br /></center>
<center>Adresse</center><center> <input type="text" name="adresse" id="adresse" /><br /></center>
<center>Tel</center> <center><input type="text" name="tel" id="tel" /><br /></center>
<center>Fax</center> <center><input type="text" name="fax" id="fax" /><br /></center>
<center>Email</center> <center><input type="text" name="email" id="email" /><br /></center>
<center>Internetseite</center> <center><input type="text" name="internetseite" id="internetseite" /><br /></center>
<center><input type="submit" name="eintragen" id="eintragen" value="Abschicken" /></center>
</body>
</html>
Mahlzeit enidi,
Hallo alle zusammen ich möchte in meine mysql daten bank datensätze hinzufügen aber es klappt
Na, wenn's klappt ist doch alles OK ...
seid tagen
Danke, ich bleibe lieber Mensch.
es geht nicht bitte um hilfe oder ratschläge
"Geht nicht" geht nicht. Du solltest wenigstens beschreiben können *was genau* "nicht geht". Oder sollen wir alle kurz vorbeikommen, klingeln und dann mit Dir auf Deinen Bildschirm schauen, damit wir ahnen können, was das Problem sein könnte?
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$adresse = $_POST['adresse'];
$tel = $_POST['tel'];
$fax = $_POST['fax'];
$email = $_POST['email']
$internetseite = $_POST['internetseite']
Dieses Umkopieren ist sinnlos. Unter anderem, weil Du dadurch die Herkunft der Variableninhalte verschleierst.
Außerdem fehlt hinter den letzten beiden Zeilen das abschließende Semikolon. PHP sollte Dich eigentlich darauf hingewiesen haben - z.B. durch Fehlermeldungen, die Du uns unterschlagen hast?
$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
Es geht doch nichts über sinnvolle Fehlerbehandlung ...
$sql = "INSERT INTO
adresen
Die Tabelle heißt wirklich "adresen"? Sicher?
if (mysql_affected_rows() == 1)
{
echo "<h3>Der Datensatz wurde hinzugefügt!</h3>";}
else
{
echo "<h3>Der Datensatz konnte <strong>nicht</strong> hinzugefügt werden!</h3>";}
Du gibst mit diesen Zeilen bereits eine Ausgabe an den Browser - Dokumenttyp-Deklaration usw. (also alles, was zu einem validen HTML-Dokument gehört) kommen allerdings erst später (s.u.) ... vielleicht solltest Du Dich zum Thema "EVA-Prinzip" informieren.
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
Mir ist auf einmal so kalt ... vielleicht möchtest Du Dich zusätzlich auch noch informieren, <http://de.selfhtml.org/css/eigenschaften/randabstand.htm@title=wie man mittels CSS Abstände erzeugt>.
<h3>Datenbank für ALL@NET</h3>
Die Hauptüberschrift eines Dokuments sollte sinnvollerweise ein <h1> sein.
<center>Vorname</center> <center> <input type="text" name="vorname" id="vorname" /><br /></center>
Auch für <http://de.selfhtml.org/css/eigenschaften/ausrichtung.htm@title=die Ausrichtung von Elementen> ist CSS zuständig. Im übrigen ist es ziemlich umständlich, jedes einzelne Element zu zentrieren - wieso tust Du nicht alle in einen <http://de.selfhtml.org/html/formulare/strukturieren.htm#gruppieren@title=semantisch passenden Container> und zentrierst diesen?
MfG,
EKKi
Hi!
Hallo alle zusammen ich möchte in meine mysql daten bank datensätze hinzufügen aber es klappt seid tagen sitze ich dran und es geht nicht bitte um hilfe oder ratschläge
"Klappt nicht" heißt in deinem Fall konkret was?
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$adresse = $_POST['adresse'];
$tel = $_POST['tel'];
$fax = $_POST['fax'];
$email = $_POST['email']
$internetseite = $_POST['internetseite']
Du verwendest diese Variablen anschließend ein einziges Mal. Warum dann der Aufwand des Umkopierens, wenn du dieses eine Mal auch gut die Werte aus $_POST direkt verwenden kannst?
$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
if ($conID)
die() ist keine gescheite Fehlerbehandlung. Was nützt es dem Anwender, wenn er im Fehlerfall diesen Text zu lesen bekommt? Wenn du die() verwendest, stirbt das Script, wenn mysql_connect() false zurückliefert. Wenn dein Script in die nächste Zeile gelangt, kann das nur passieren, wenn $conID nicht false ist. Das Prüfen darauf ist in dem Fall sinnlos.
{
mysql_select_db( $db_name, $conID );
}
Wenn die Connection zustande kam, wähle die zu verwendende Datenbank aus. Den Rest arbeitet das Script in jedem Fall ab, auch wenn $conID false wäre. Da weitere mysql_*()-Aufrufe folgen, die ohne Verbindung nicht arbeiten können ... Deine Logik-Fähigkeiten zu verbessern kann jedenfalls nicht schaden. Wie auch immer, das die() solltest du entsorgen und den Rest des DBMS-Handlings komplett vom Erfolg des Verbindungsaufbaus abhängig machen. Für den Fehlerfall solltest du dir überlegen, welche Alternativen dem Anwender dann angeboten werden können.
$sql = "INSERT INTO
adresen
(vorname
,nachname
,adresse
,tel
, 'fax', 'email', 'internetseite')
Die Query ist fehlerhaft.
mysql_query( $sql );
mysql_query() teilt dir das über den Rückgabewert mit, den du hier ignorierst. Den genauen Wortlaut der Meldung sagt dir dann mysql_error(). Den solltest du aber nur selbst anschauen, denn Anwender können und sollen mit dieser Information nichts anfagen.
if (mysql_affected_rows() == 1)
echo "<h3>Der Datensatz wurde hinzugefügt!</h3>";
else
echo "<h3>Der Datensatz konnte <strong>nicht</strong> hinzugefügt werden!</h3>";
Beides interessiert den Seitenbesucher nicht wirklich, hast du aber vermutlich nur zu Test eingebaut.
<BR>
<BR>
Für Abstände gibts doch CSS.
Lo!