Zum Inhalt springen

Einfügen von Datensätze in eine Datenbank


Empfohlene Beiträge

<?php

/*

* Einfuegen von Datensaetze in eine Datenbank

*

*/

// Zugangsdaten zur Datenbank

$conn = @mysql_connect("localhost","benjamin","********");

// Wechsel der Datenbank

mysql_select_db(test);

$sql = "insert into addresse(fname, sname, email)";

$sql .= "Values ('Gaus', 'Florian', 'florian@dfbl.org')";

$result = mysql_query($sql, $conn);

if($result)

{

$nummer = mysql_insert_id();

echo "<p> Es wurde Datensatz Nr. $nummer erzeugt!";

}

else

{

echo "<p>" .mysql_error($conn);

}

// MySQL-Verbindung wird beendet!

mysql_close($conn);

?>

die Datenbankstruktur sieht so aus:

Spalte A Spalte B Spalte C

fname sname email

1. Frage:

ich arbeite in dem Programm mit der ID muss ich auch dafür eine Spalte deklarieren oder, wie geht das mit dem auto_increment?

weil wenn ich jetzt das Programm ausführe, dann kommt als Ausgabe Nr. 0! Das kann ja irgendwie nicht stimmen, oder?

2. Frage:

$sql = "insert into addresse(fname, sname, email)";

$sql .= "Values ('Gaus', 'Florian', 'florian@dfbl.org')";

was hat der Punkt für eine Bedeutung? das die nächste Zeile dazu gehört? was anderes könnte ich mir jetzt da nicht vorstellen!

ich hoffe, einer von euch kann mir helfen!

danke für die Hilfe!

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Antworten 57
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

danke für die Antworten!

jetzt habe ich schon wieder eine Frage.

ich möchte jetzt Daten eingeben und diese sollen dann in der Datenbank gespeichert werden. wie muss ich das Realisieren?

mein Vorschlag, was ich bis jetzt versucht habe, aber es möchte mir nichts ausgeben:


<html>
<head>
<title>Eintrag der Daten in die Datenbank</titl>
</head>
<body>
<?php
$conn = mysql_connect("localhost","benjamin","******");
mysql_select_db(test);
?>

[b]<input type="Text" name="<?php $fname ?>" value="Nachname" size="10" maxlength="20">
<input type="Text" name="<?php $sname ?>" value="Vorname" size="10" maxlength="20">
<input type="Text" name="<?php $email ?>" value="email" size="10" maxlength="20">[/b]

<?php
$sql = "insert into adresse(fname, sname, email) ";
$sql .= "Values ('$fname', '$sname', '$email')";
$result = mysql_query($sql, $conn);
if($result)
{
$nummer = mysql_insert_id();
echo "<p> Es wurde Datensatz Nr. $nummer erzeugt!";
}
else
{
echo "<p>" .mysql_error($conn);
}

mysql_close($conn);
?>
</body>
</html>
[/PHP]

was ist an dem Programm noch falsch? besonders die mit Fett hervorgehobenen Zeilen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du gibst deinen Feldern den Inhalt der Variablen, anstatt den Variablennamen...

<input type="Text" name="<?php $fname ?>" value="Nachname" size="10" maxlength="20">

Da würde dann z.B. ....name="Meier"..... drinstehen, bzw in dem Fall gar nichts, da die Variable keinen Wert enthält. Richtig muß das so heißen:

<input type="Text" name="fname" value="Nachname" size="10" maxlength="20">

Außerdem wird das ganze so nicht funktionieren. Du mußt ein komplettes HTML-Formular erstellen, inkl. Submit Button. Im Form-Tag rufst du durch den action= Eintrag eine php-Seite auf, die dann die übergebenen Variablen in die DB schreibt. Das kann auch die selbe Seite sein, allerdings mußt du dann sicherstellen, das der Eintrag in die DB nur passiert, wenn das Formular über den Submit-Button abgesendet wurde. Ansonsten bekommst du bei jedem Aufruf der Seite einen falschen Datensatz.

Da der ganze Thread immer mehr Richtung PHP-Programmierung läuft, schieb ich den Thread mal in die Webserverprogrammierung....

Link zu diesem Kommentar
Auf anderen Seiten teilen

das habe ich jetzt auch schon rausgefunden!

das Formular funktioniert und bin fast zu frieden!

jetzt habe ich den Inhalt gesehen, aber da steht jetzt nichts in der Datenbank drin, aber einen Eintrag wurde gemacht!

an was kann das liegen?

meine Programme:

formular.php


<html>
<head>
<title>Eintrag der Daten in die Datenbank</title>
</head>
<body>
<form action="eintragen.php" method="get">
<p align="center">
<input type="Text" name="fname" value="Nachname" size="10" maxlength="20"><br>
<input type="Text" name="sname" value="Vorname" size="10" maxlength="20"><br>
<input type="Text" name="email" value="email" size="10" maxlength="20"><br>
<br>
<input type="Submit" name="button_versenden" value="Versenden">
<input type="reset"><br>
</p>
</form>
</body>
</html>
[/PHP]

eintragen.php

[PHP]
<?php
/*
* Eintragen des Datensatzes in die Datenbank
*
*/

// Zugangsdaten zur Datenbank
$conn = mysql_connect("localhost","benjamin","******");

// Wechsel der Datenbank
mysql_select_db(test);

$sql = "insert into adresse(fname, sname, email) ";
$sql .= "Values ('$fname', '$sname', '$email')";
$result = mysql_query($sql, $conn);
if($result)
{
$nummer = mysql_insert_id();
echo "<p> Es wurde Datensatz Nr. $nummer erzeugt!";
}
else
{
echo "<p>" .mysql_error($conn);
}

// MySQL-Verbindung wird beendet!
mysql_close($conn);
?>

ich hoffe, ihr könnt mir den Fehler sagen, warum die Daten jetzt nicht eingetragen werden. Aber es wird eine Zeile angelegt. Die ID ist ausgefüllt und die anderen 3 Spalten leider nicht!

Link zu diesem Kommentar
Auf anderen Seiten teilen

hier die Stelle wo der Fehler ist!


$sql .= "Values ($HTTP_GET_VARS["fname"], $HTTP_GET_VARS["sname"], $HTTP_GET_VARS["email"])";
[/PHP]

nach eurer Meinung müsste das dann so aussehen?

[PHP]
$sql .= "Values ($HTTP_GET_VARS['fname'], $HTTP_GET_VARS['sname'], $HTTP_GET_VARS['email'])";

stimmt das so?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sieht auf jedenfall besser aus, denn wenn Du für beides die gleichen Anführungszeichen nimmst, denkt er das der String unterbrochen ist und versucht fname als Befehl zu interpretieren...

Problem könnte dann noch sein, das er dann bei Deiner Variante die Variablen Inhalte ohne Anführungszeichen in den String schreibt, es würde bei:

$sql .= "Values ($HTTP_GET_VARS['fname'], $HTTP_GET_VARS['sname'], $HTTP_GET_VARS['email'])";

dann z.B.

"Values (Rappel, Zappel, RappelZappel@bla.blub)"

in dem String drinstehen.

Da SQL aber bei Zeichenketten auf Anführungszeichen besteht, müsstest Du die auch noch einbauen..

Mein Vorschlag wäre:

$sql .= 'Values ("'.$HTTP_GET_VARS["fname"].'", "'.$HTTP_GET_VARS["sname"].'", "'.$HTTP_GET_VARS["email"].'")';

gruß

Christian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...