| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

11-01-2011, 22:09
|
|
killahiraner
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 17
|
|
Mit php Formular datensätze in Mysql datenbank einfügen
Hallo leute erstmal sntschuldige ich mich wegen diversen rechtschreibfehlern.
ich habe ein problem.
UNZWAR.
ich habe mir mal ei paar tutorials durchgelesen und einen code zusammengefügt der mir keine fehlermeldung anzeigt aber auch keine neuen datensätze in die datenbank einfügt aber der code der mir Datensätze anzeigen soll funktioniert fehlerfrei also kann es nicht an den datenbankrechten liegen.
Ich arbeite mit Xampp, Adobe dreamweaver CS5, und firefox
hier unten jetzt meine 2 codes
PHP-Code:
<html> <head> <?php if ($gesendet) { $db = mysql_connect('localhost', 'root', '');
$sqlab = "insert personen"; $sqlab .= "(name, vorname, personalnummer,"; $sqlab .= " gehalt, geburtstag) values "; $sqlab .= "('$na', '$vn', $pn, $ge, '$gt')";
mysql_db_query("firma", $sqlab);
$num = mysql_affected_rows(); if ($num>0) echo "Es wurde 1 Datensatz hinzugefügt<p>"; else { echo "Es ist ein Fehler aufgetreten, "; echo "es wurde kein Datensatz hinzugefügt<p>"; } mysql_close($db); } ?> </head>
<body> Geben Sie einen vollständigen Datensatz ein und senden Sie das Formular ab: <form action = "Formular.php" method = "post"> <input name="na"> Name<p> <input name="vn"> Vorname<p> <input name="pn"> Personalnummer (eine ganze Zahl)<p> <input name="ge"> Gehalt (Nachkommastellen mit Punkt)<p> <input name="gt"> Geburtsdatum (in der Form JJJJ-MM-TT)<p> <input type="submit" name="gesendet"> <input type="reset"> </form>
Alle Datensätze <a href="Abfrage.php">anzeigen</a> </body> </html>
und hier der abfrage code
PHP-Code:
<html> <body> <?php $db = mysql_connect("localhost", "root","" ); $res = mysql_db_query("firma", "select * from personen"); $num = mysql_num_rows($res);
// Tabellenbeginn echo "<table border>";
// Überschrift echo "<tr> <td>Lfd.Nr.</td> <td>Name</td>"; echo "<td>Vorname</td> <td>Personalnummer</td>"; echo "<td>Gehalt</td> <td>Geburtstag</td> </tr>";
for ($i=0; $i<$num; $i++) { $nn = mysql_result($res, $i, "name"); $vn = mysql_result($res, $i, "vorname"); $pn = mysql_result($res, $i, "personalnummer"); $ge = mysql_result($res, $i, "gehalt"); $gt = mysql_result($res, $i, "geburtstag"); $lf = $i + 1;
// Tabellenzeile mit -zellen echo "<tr> <td>$lf</td> <td>$nn</td> <td>$vn</td>"; echo "<td>$pn</td> <td>$ge</td> <td>$gt</td> </tr>"; }
// Tabellenende echo "</table>";
mysql_close($db); ?> </body> </html>
der letzde code funktioniert einwandfrei nur der code wo ich datensätze einfügen kann nicht
könnt ihr mir vielleicht den code korregieren und mir danach sagen wo der fehler war?
ich bin euch zutiefst dankbar
MFG
Vardi
|

12-01-2011, 08:09
|
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 461
|
|
Hi.
Dir scheinen einige Basics zu fehlen. Du kannst z.B. Werte aus einem Formular nicht mit $na einfach abfragen, sondern musst dafür $_POST["na"] nutzen. Schau Dir mal ein "Affenformular" an.
Zudem ist mysql_db_query auch nicht
mehr aktuelle, nutze lieber mysql_query (siehe php.net).
mfg streuner
__________________
Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.
"Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"
|

12-01-2011, 09:44
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Und verwende mysql_real_escape_string() um die Werte im Query zu maskieren. SQL-Injections sind eine der am häufigsten ausgenutzten und gefährlichsten Sicherheitslücken.
|

12-01-2011, 12:25
|
|
killahiraner
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 17
|
|
Hey erstmal danke an euch beiden.
ein großes problem besteht nun das ich ja den code von einem tutorial gelernt habe und wenn ihr beide mir die richtigen sachen nennt weiß ich nicht wo hin damit und wie ich es machen soll ich war jetzt auf php.net doch ich bin jetzt ein wenig durcheinander gibt es kein tutorial das es mir logisch und auf deutsch erklärt wie ich formulare mit php und mysql verbinde usw?
danke nochmals für eure hilfe
|

12-01-2011, 13:02
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Ein älterer Herr aus dem Forum hier, hat da was ganz nettes auf seiner Homepage:
PHP - Einleitung
__________________
Drelingdo
Krabonse
Simmannamando
|

12-01-2011, 13:17
|
|
killahiraner
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 17
|
|
hey danke also bis hierhin bin ich dank deines linkes gekommen jetzt hoffe ich das es richtig ist und hoffe auf noch einen link um es zu verfollständigen
PHP-Code:
<?php
$db = mysql_connect('localhost','benutzer','passwort'); mysql_select_db('meine Datenbank',$db) or die (mysql_error("Datenbank nicht Gefunden")); $result = mysql_query('SELECT * FROM Meine Tabelle');
?>
so ich weiß ich nerfe aber irgendwie muss mann ja anfangen
jetzt brauchte ich ja eigendlich noch ein formular
PHP-Code:
<body> Geben Sie einen vollständigen Datensatz ein und senden Sie das Formular ab: <form action = "Formular.php" method = "post"> <input name="na"> Name<p> <input name="vn"> Vorname<p> <input name="pn"> Personalnummer (eine ganze Zahl)<p> <input name="ge"> Gehalt (Nachkommastellen mit Punkt)<p> <input name="gt"> Geburtsdatum (in der Form JJJJ-MM-TT)<p> <input type="submit" name="gesendet"> <input type="reset"> </form>
so wie mache ich das jetzt das php überprüft ob alle felder eingetragen sind und die eingetragenen felder in die tabelle einfügt ??
danke schonmal
|

12-01-2011, 13:27
|
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 461
|
|
Du kannst doch z.B. mit if $_POST["meinInputFeld"] <> "" prüfen (oder mit isset()), ob ein Wert drinsteht. Wie du einträgst, ist dasselbe Prinzip, wie beim auslesen. Insert Statement aus den POSt Variablen bauen und mit mysql_query ausführen. Wie oben bereits erwähnt, SQL Injection beachten!
mfg streuner
__________________
Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.
"Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"
|

12-01-2011, 13:30
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Also ich hab dir den Link nicht gepostet, damit du dir da schnell mal was in 15 Minuten gedankenlos rauskopierst. Kropff hat sich bei den Tutorials ziemlich viel Mühe gegeben und du solltest dir mindestens ebensoviel Mühe geben, das alles zu lesen und auch zu verstehen - das geht bei deinem momentanen Stand keinesfalls in 15 Minuten!
Dir fehlt es, wie schon vorher gesagt wurde, noch an absoluten Basics. Die verlinkte Seite enthält vieles, wenn nicht alles, was du brauchst. Häng dich rein.
__________________
Drelingdo
Krabonse
Simmannamando
Geändert von Quetschi (12-01-2011 um 13:33 Uhr)
|

12-01-2011, 13:38
|
|
killahiraner
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 17
|
|
jaaaaa ich häng mich doch schon rein nur mein problem ist das ich durcheinander komme ich habe jetzt insgesammt 3 tutorial vor mir liegen jeder sagt mir ne andere methode aber keiner sagt mir o richtig wie ich etwas machen soll
gewisse sachen weiß ich ja schon zwar nicht viel aber einiges was in den tutorials steht den anfang und wie gesagt der rest wird 3 mal anders beschireben ich hoffe ihr alle könnt mich verstehen wenn nicht hier mal was
also wenn ich mich mit einer datenbank verbinden will steht auf PHP-Kurs.com - PHP lernen und MySQL Tutorial mit vielen Beispielen
ich muss eine datei anlegen
PHP-Code:
<?php // die Konstanten auslagern in eigene Datei // die dann per require_once ('konfiguration.php'); // geladen wird.
// Damit alle Fehler angezeigt werden error_reporting(E_ALL);
// Zum Aufbau der Verbindung zur Datenbank // die Daten erhalten Sie von Ihrem Provider define ( 'MYSQL_HOST', 'localhost' );
// bei XAMPP ist der MYSQL_Benutzer: root define ( 'MYSQL_BENUTZER', '' ); define ( 'MYSQL_KENNWORT', '' ); // für unser Bsp. nennen wir die DB adressverwaltung define ( 'MYSQL_DATENBANK', 'adressverwaltung' );
damit der code jetzt unten sich mit der datei verbinden kann [PHP]<?php require_once ('konfiguration.php'); $db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT); ?>
?>
[/PHP]
um mir zugriff auf die datenbank zu erlauben
PHP-Code:
<?php error_reporting(E_ALL);
// Zum Aufbau der Verbindung zur Datenbank define ( 'MYSQL_HOST', 'localhost' ); define ( 'MYSQL_BENUTZER', '' ); define ( 'MYSQL_KENNWORT', '' ); define ( 'MYSQL_DATENBANK', 'adressverwaltung' );
$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
if ( $db_link ) { echo 'Verbindung erfolgreich: '; echo $db_link; } else { // hier sollte dann später dem Programmierer eine // E-Mail mit dem Problem zukommen gelassen werden die('keine Verbindung möglich: ' . mysql_error()); } mysql_close($db_link ); ?>
und dann muss ich ja noch das eintragungformular machen??!?!?!??!
das ist alles zum verrückt werden und soooooooooo umständlich beschrieben
und bei euren tutorials wird vieles ausgelassen was in den anderen tutorialst steht aber da werden wiederum andere sachen ausgelassen ich verde langsam verrückt hier   ich hoffe ich nerve euch nicht danke schonmal
freue mich auf eure antwort
|

12-01-2011, 13:44
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Dann leg halt mal die Tutorials weg, kauf dir ein (aktuelles) Buch und arbeite es ein paar Wochen durch.
|

12-01-2011, 13:48
|
|
killahiraner
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 17
|
|
und was währe deiner meinung nach ein aktuelles buch, was alle themen erklärt also von php in html und umgekehrt bis sql verbindung usw?
wonach ich nach dem lernen sagen kann ich kann ohne hilfe does schreiben ?
ich habe angst da sich mir ein buch kaufe das dieses buch mich noch mehr durcheinander bringt und da eh nicht alles drinsteht .
danke für deine hilfe
|

12-01-2011, 16:52
|
|
killahiraner
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 17
|
|
soooo da bin ich wieder
bin mir dem tutorial schon sehr weit gekommen
nun stellen sich ein paar fragen auf
unzwar:
ich habe jetzt nicht den unterschied zwichen
PHP-Code:
//db_data.inc.php <?php // lokale Zugangsdaten zu MySQL $user = 'root'; $host = 'localhost'; $password = 'blabla'; $database = 'meine_test_db'; ?>
//index.php <?php include ('db_data.inc.php'); ?>
und
PHP-Code:
?php $db = mysql_connect('localhost','benutzer','passwort'); ?>
verstanden
sind die beiden nicht die gleichen?
und wenn nicht welche muss angewandt werden und wofür ist das andere da ich danke für eure hilfe
|

12-01-2011, 17:41
|
|
killahiraner
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 17
|
|
so ich habe jetzt was fertig gemacht aber es will nicht so ganz
PHP-Code:
<?php if ($gesendet) $db = mysql_connect('localhost','root',''); mysql_select_db('firma',$db); $result = mysql_query("firma", $sqlab); $_POST["vorname"]; $_POST["nachname"]; $_POST["personalnummer"]; $_POST["gehalt"]; $_POST["geburtstag"];
$num = mysql_affected_rows(); if ($num>0) echo "Es wurde 1 Datensatz hinzugefügt<p>"; else { echo "Es ist ein Fehler aufgetreten, "; } mysql_close($db);
?> <body> Geben Sie einen vollständigen Datensatz ein und senden Sie das Formular ab: <form action = "Formular.php" method = "post"> <input name="name"> Name<p> <input name="vorname"> Vorname<p> <input name="personalnummer"> Personalnummer (eine ganze Zahl)<p> <input name="gehalt"> Gehalt (Nachkommastellen mit Punkt)<p> <input name="geburtstag"> Geburtsdatum (in der Form JJJJ-MM-TT)<p> <input type="submit" name="gesendet"> <input type="reset"> </form>
und hier die fehlermeldung
Zitat:
Warning: mysql_select_db() expects parameter 2 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 4
Warning: mysql_query() expects parameter 2 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 5
Warning: mysql_affected_rows() [function.mysql-affected-rows]: Access denied for user 'ODBC'@'localhost' (using password: NO) inD:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 12
Warning: mysql_affected_rows() [function.mysql-affected-rows]: A link to the server could not be established inD:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 12
Es ist ein Fehler aufgetreten,
Warning: mysql_close() expects parameter 1 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 19
|
ich weiß ich neve habe aber fortschritte gemacht
ich danke für eure hilfe
|

12-01-2011, 17:43
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
$db ist keine Resource, weil mysql_connect() fehlschlägt, weil es sich mit den übergebenen Parametern nicht mit einem Datenbankserver verbinden kann.
Das solltest du aber wirklich selbst herausfinden können.
|

12-01-2011, 18:03
|
|
killahiraner
Registrierter Benutzer
|
|
Registriert seit: Jan 2011
Beiträge: 17
|
|
jetzt komm ich durcheinander
aber wenn ich das so mache
PHP-Code:
<html> <head> <?php if ($gesendet) $link = mysql_connect('localhost','root',''); if (!$link) { echo('Verbindung'.mysql_error());
mysql_select_db('firma', $link); $result = mysql_query("firma", $sqlab); $_POST["vorname"]; $_POST["nachname"]; $_POST["personalnummer"]; $_POST["gehalt"]; $_POST["geburtstag"];
$num = mysql_affected_rows(); if ($num>0) echo "Es wurde 1 Datensatz hinzugefügt"; else { echo "Es ist ein Fehler aufgetreten,"; } mysql_close($db); } ?> </head>
<body> Geben Sie einen vollständigen Datensatz ein und senden Sie das Formular ab: <form action = "Formular.php" method = "post"> <input name="name"> Name<p> <input name="vorname"> Vorname<p> <input name="personalnummer"> Personalnummer (eine ganze Zahl)<p> <input name="gehalt"> Gehalt (Nachkommastellen mit Punkt)<p> <input name="geburtstag"> Geburtsdatum (in der Form JJJJ-MM-TT)<p> <input type="submit" name="gesendet"> <input type="reset"> </form> </body> </html>
kommt dieser fehler
Zitat:
Verbindung
Warning: mysql_select_db() expects parameter 2 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 9
Warning: mysql_query() expects parameter 2 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 10
Warning: mysql_affected_rows() [function.mysql-affected-rows]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 17
Warning: mysql_affected_rows() [function.mysql-affected-rows]: A link to the server could not be established inD:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 17
Es ist ein Fehler aufgetreten,
Warning: mysql_close() expects parameter 1 to be resource, null given in D:\Programme\Xampp\xampp\htdocs\Testing server\Formular.php on line 24
|
leuteeeee hilft mir mal ich dreh langsam am rad
danke im vorraus
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|