Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Datenbankanbindung mit php und mysql geht nicht

Frage Entwicklung Datenbanken

Mitglied: Munsi1

Munsi1 (Level 1) - Jetzt verbinden

31.03.2008, aktualisiert 07.04.2008, 5081 Aufrufe, 18 Kommentare

Hallo,

ich hab ein kleines Porblem mit php und mysql. Vorweg ich bin blutiger Anfänger was die beiden Sachen betrifft. Folgendes Problem habe ich. Ich möchte die eingegeben Daten auf einer php Seite in eine Datenbank senden. Leider bekomme ich die Meldung Seite kann nicht angezeigt werden. Ich finde aber den Fehler nicht. Vielleicht kann einer von euch den Fehler finden?
01.
<form method="post" action="p-3-1.php"
02.
<?php 
03.
$hostname = "Server"
04.
$username = "username"
05.
$password = "passwort"
06.
 
07.
 function check_mysql() { 
08.
  if (mysql_errno() > 0) { 
09.
    die("<br> MySQL-Fehler " . mysql_errno() . ": "
10.
    mysql_error()); 
11.
12.
13.
$db = mysql_connect($hostname, $username, $password); 
14.
//$db=mysql_connect("localhost", "root", ""); 
15.
 if (!$db) { 
16.
  die("Öffnen der Verbindung zum MySQL-Server "
17.
         "gescheitert"); 
18.
19.
// mysql_select_db("test"); 
20.
 mysql_select_db("assistant_roles"); 
21.
 check_mysql(); 
22.
 if(!isset($id)) { 
23.
  $id=0; 
24.
25.
  if (!isset($_POST['add'])) { 
26.
  $query = "INSERT INTO anwender (name, novellname)"
27.
           " VALUES ($_POST['name'], $_POST['novellname'])"
28.
  $result = mysql_query($query); 
29.
  check_mysql(); 
30.
  $id = mysql_insert_id(); 
31.
  $message = "Datensatz (id=$id) hinzugefuegt"
32.
 
33.
34.
?> 
35.
 
36.
<br>Name, Vorname: 
37.
<br><input type="text" name="name" 
38.
<?php echo "value=\"$name\""?>> 
39.
<br>Novellname: 
40.
<br><input type="text" name="novellname" 
41.
<?php echo "value=\"$novellname\""?>> 
42.
<br> 
43.
<br> 
44.
<br><input type="submit" name="add" value="Daten abschicken"
45.
<input type="hidden" name="id" 
46.
<?php echo "valve=\"$id\""?>> 
47.
<?php 
48.
if (isset($message)){ 
49.
echo "<br><br>$message"
50.
51.
?>
Vielen Dank für eure Hilfe
Sebastian
Mitglied: Dani
31.03.2008 um 19:06 Uhr
Hi Sebastian,
also das Script ist ja mit sehr vielen Kommentaren versehen. Das du als "Anfänger" doch durchblickst, kann ich mir nicht vorstellen.
Vorallem, was genau so das Script machen?! Deine Beschreibung ist mehr als dürftig! Meine Glaskugel sitzt noch in Lodon auf dem Airport "Heathrow " fest (Terminal 5) - also keine Chance.


Grüße
Dani
Bitte warten ..
Mitglied: Munsi1
31.03.2008 um 19:36 Uhr
Hi Dani,

okay dann versuche ich mal zu erklären was genau ich machen möchte. Also ich habe zwei Testfelder Name und Novellname. In die werden Daten eingegeben und über den Button add an die Datenbank gesendet. So soll es sein. Problem ist das er nichts in die Datenbank einträgt ich aber auch keine Fehlermeldung bekomme. Ja das Script ist nicht so schön aber ich hoffe doch das ich es mit Hilfe des Forums hinbekomme dann wird es besser werden bei nächsten mal.

Gruß
Sebastian
Bitte warten ..
Mitglied: Dani
31.03.2008 um 20:41 Uhr
Hi!
Dann probiere es mal so:
01.
<?php 
02.
 
03.
// Triff zu, wenn das Formular gesendet worden ist 
04.
if(isset($_GET['add'])) 
05.
06.
	$hostname = "Server"
07.
	$username = "username"
08.
	$password = "passwort"
09.
	$database = "assistant_roles"
10.
 
11.
	$db = mysql_connect($hostname, $username, $password); 
12.
	if (!$db) die("Öffnen der Verbindung zum MySQL-Server " ."gescheitert"); 
13.
 
14.
	mysql_select_db($database); 
15.
 
16.
	$query = "INSERT INTO anwender (id, name, novellname) VALUES (NULL, '".$_POST['name']."', '".$_POST['novellname']."');"
17.
	$result = mysql_query($query); 
18.
 
19.
	echo "Datensatz Nr. ".mysql_insert_id();." hinzugefuegt"
20.
21.
else 
22.
	{?> 
23.
	<form method="post" name="xxx"
24.
	<br>Name, Vorname: 
25.
	<br><input type="text" name="name"
26.
	<br>Novellname: 
27.
	<br><input type="text" name="novellname"
28.
	<br> 
29.
	<br> 
30.
	<br><input type="submit" name="add" value="Daten abschicken"
31.
32.
?>
Ungetestete Skizze und ähnelt sehr deinem Code.


Grüße
Dani
Bitte warten ..
Mitglied: Munsi1
31.03.2008 um 22:19 Uhr
Hallo Dani,

danke für den Code, leider ist folgende Zeile fehlerhaft
01.
VALUES (NULL, '".$_POST['name']."', '".$_POST['novellname']."');";
Das ein " fehlt habe ich gesehen aber auch damit bekomme ich die Fehlmeldung Parse error:syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Hab jetzt alle möglichkeiten versucht die mir und google eingefallen sind ohne Erfolg. Vielleicht hast du noch eine Idee?

Danke und Gruß
Sebastian
Bitte warten ..
Mitglied: Dani
31.03.2008 um 22:43 Uhr
Schön, dass du dich damit auseinandersetzt. Aber wenn du nicht weißt, wo suchen kannst du lange Google befragen.

01.
$query = "INSERT INTO anwender (id, name, novellname) VALUES (NULL, '".$_POST['name']."', '".$_POST['novellname']."');"; 
02.
$result = mysql_query($query);
/Dani
Bitte warten ..
Mitglied: Munsi1
01.04.2008 um 09:34 Uhr
Hallo Dani,

danke für die Hilfe, kann es leider im Moment nicht testen da Stress auf Arbeit. Werde es heute Abend ausprobieren und eine Rückinfo geben.

Danke und Grüße
Sebastian
Bitte warten ..
Mitglied: Munsi1
03.04.2008 um 12:46 Uhr
Hallo Dani,

leider geht es immer noch nicht. Ich erhalte die Meldung das er mit den Variablen nichts anfangen kann. Undefined variable: novelname in C:\\ und so weiter lautet die Meldung.
Hast du noch eine Idee woran es liegen kann?

Danke und Gruß
Sebastian
Bitte warten ..
Mitglied: Hawk18x
04.04.2008 um 10:28 Uhr
folgendes zum testen, ob deine Daten überhaupt ankommen:

print_r($_POST);

Mit dem Befehl kannst du dir alle Daten ausgeben lassen, die mit dem Formular gesendet wurden.

Nun kannst du hingehen und die Vars im SQL-Query mit den Daten des $_POST-Arrays anpassen.
Nebenbei kannst du die Reihe:

$result = mysql_query($query);

erstmal mit // auskommentieren und den $query mit einem echo ausgeben lassen. Damit kannst du nachschauen, ob auch alles soweit korrekt aussieht und ausgefüllt wird.

Wenn du dir mit dem $query nicht sicher bist, dann geh ins phpmyadmin und mach in den Table einen manuellen INSERT. phpmyadmin generiert so einen Query und gibt da auch aus. Den kannst du dann einfach kopieren und die Variablen, die eingefügt werden einfach anpassen. Damit sollte es dann auch gewesen sein.
Bitte warten ..
Mitglied: Munsi1
04.04.2008 um 15:06 Uhr
Hallo,

danke für deine Hilfe, mittlerweile habe ich alles noch mal neu geschrieben.
Hier noch mal der Code
01.
 
02.
<form method="post" action="p-3-1.php"
03.
 
04.
<br>Name, Vorname: 
05.
<br><input type="text" name="name"
06.
 
07.
<br>Novellname: 
08.
<br><input type="text" name="novellname"
09.
 
10.
 
11.
<br> 
12.
<br> 
13.
 
14.
 
15.
<br><input type="submit" name="add" value="Daten abschicken"
16.
<input type="hidden" name="id"
17.
 
18.
</from> 
19.
<?php 
20.
//Verbindung zur Datenenbank 
21.
 $verbindung = mysql_connect("servername", "Nutzer", "passwort") or die ("keine Verbindung möglich"); 
22.
 mysql_select_db("assistant_roles") or die ("Die Datenbank existiert nicht"); 
23.
 ?> 
24.
 
25.
<?php 
26.
//Daten senden 
27.
if(!isset($_POST['add'])) 
28.
$eintrag = "INSERT INTO anwender (ID, name, novellname) VALUES (NULL, '".$_POST['name']."', '".$_POST['novellname']."');"
29.
 
30.
?> 
31.
<?php 
32.
print_r($_POST); 
33.
?>
Ich bin jetzt schon soweit das ich keinen Fehlercode im log mehr erhalte allerdings bekomme ich keine Daten in die Datenbank.
So wie du es beschrieben hast habe ich es mal getestet die Daten gibt er mir mir print_r($_POST); auch zurück also das stimmt schon mal. Leider werde ich aus dem Rest nicht ganz schlau. Kannst du mir das noch mal näher erklären?
Vielen Dank
Sebastian
Bitte warten ..
Mitglied: Hawk18x
04.04.2008 um 15:16 Uhr
Also erstmal fehlt dir der mysql_query-Aufruf.

Hier mal die Version, wo ich meine, dass sie funzen sollte:

01.
<form method="post" action="p-3-1.php"
02.
 
03.
<br>Name, Vorname: 
04.
<br><input type="text" name="name"
05.
 
06.
<br>Novellname: 
07.
<br><input type="text" name="novellname"
08.
 
09.
 
10.
<br> 
11.
<br> 
12.
 
13.
 
14.
<br><input type="submit" value="Daten abschicken"
15.
<input type="hidden" name="id"
16.
 
17.
</from> 
18.
<?php 
19.
//Verbindung zur Datenenbank 
20.
 $verbindung = mysql_connect("", "", "") or die ("keine Verbindung möglich"); 
21.
 mysql_select_db("") or die ("Die Datenbank existiert nicht"); 
22.
 ?> 
23.
 
24.
<?php 
25.
//Daten senden 
26.
if(isset($_POST)) { 
27.
$eintrag = "INSERT INTO anwender (name, novellname) VALUES ('".$_POST['name']."', '".$_POST['novellname']."')"
28.
$result=mysql_query($eintrag); 
29.
if($result) { echo "Eintrag in Tabelle erfolgreich!"; } 
30.
 
31.
print_r($_POST); 
32.
33.
 
34.
mysql_close();
Wenn ich das auch so sehe, wird ID wohl ein auto_increment-Wert sein, der sich bei jedem Eintrag um eins erhöht. Diese Werte braucht man in den Insert's nicht einsetzen, daher habe ich ID rausgenommen.
Den name="add" aus dem input submit habe ich ebenfalls entfernt, da dieser sonst im $_POST-Array auftaucht. Der hat aber da nichts zu suchen.

In dem $_POST-Array sind alle Variablen enthalten, die beim Formular angegeben sind. Ob das Input-Tags mit text, hidden,password sind oder was auch immer.

Normal sollte das Script so jetzt arbeiten.
Bitte warten ..
Mitglied: Munsi1
04.04.2008 um 15:44 Uhr
du warst leider schneller als ich kannst du bitte die mysql_connect Zeile ändern. Ich habe aus versehen die Daten darin nicht bearbeitet
Danke
Bitte warten ..
Mitglied: Hawk18x
04.04.2008 um 15:47 Uhr
und was ist nun? Gehts, oder gehts nicht?
Bitte warten ..
Mitglied: Munsi1
04.04.2008 um 15:54 Uhr
bekomme einen Fehler in der Log PHP Parse error: syntax error, unexpected '{ es liegt an der Zeile
01.
if(!isset($_POST) {   
muss die { sein?
Bitte warten ..
Mitglied: Hawk18x
04.04.2008 um 16:18 Uhr
Ein alles was in einem "if" ausgeführt wird, oder zb while, for, foreach, do...while muss mit { und } umschlossen sein, sonst weiss php ja nicht, was es machen soll, wenn die angegebenen Punkte erfüllt sind.
Bitte warten ..
Mitglied: Munsi1
07.04.2008 um 10:00 Uhr
Hallo,

leider habe ich schon alles so gemacht wie du es mir vorgegeben hast, trotzdem stört er sich daran hier der Code
01.
if(!isset($_POST) { 
02.
$eintrag = "INSERT INTO anwender (name, novellname) VALUES ('".$_POST['name']."', '".$_POST['novellname']."')"; 
03.
$result = mysql_query($eintrag); 
04.
if($result) {echo "Eintrag erfolgreich"; 
05.
print_r($_POST); }
siehst du irgendwo noch den Fehler?
Bitte warten ..
Mitglied: Hawk18x
07.04.2008 um 10:05 Uhr
Gibt er denn eintrag erfolgreich aus oder gibt er fehlermeldung?

So sehe ich jetzt ehrlich keinen Fehler. Man könnte noch aus anwender `anwender` machen. Das ist das SQL-Syntax. Ansonsten brauche ich da Fehlermeldungen.
Bitte warten ..
Mitglied: Hawk18x
07.04.2008 um 10:26 Uhr
Oh, jetzt sehe ich den fehler. Peinlich!!!

01.
if(isset($_POST)) { 
02.
$eintrag = "INSERT INTO anwender (name, novellname) VALUES ('".$_POST['name']."', '".$_POST['novellname']."')"
03.
$result = mysql_query($eintrag); 
04.
if($result) {echo "Eintrag erfolgreich"
05.
print_r($_POST); }
Das ! bei "if(!isset($_POST) {" musste weg. Der alte Befehl hatte die Aufgabe, den Code auszuführen, wenn kein Formular gesendet wurde. Ohne das ! wird der Code nur ausgefüllt, wenn das Array $_POST vorhanden ist.
Ausserdem fehlte eine )-Klammer in der gleichen Zeile. Bei PHP müssen alle () wieder geschlossen werden, egal, welche es sind. (), {} oder [].
Ein Editor, der PHP-Syntax beherrscht, hilft dir da sehr weiter. Der meldet soetwas entweder mit farbiger Markierung, oder er fügt automatisch beim Öffnen den Schliessklammer mit hinzu.
Ich kann die da PSPad empfehlen. Ist kostenlos und umfangreich. PHP Coder Pro geht auch. PHP Designer gibt es auch in einer kostenlosen Version.
Bitte warten ..
Mitglied: Munsi1
07.04.2008 um 11:40 Uhr
Hallo,

wahnsinn jetzt läuft es so wie es soll. Vielen Dank. Werde jetzt noch den Rest dazuschreiben der nicht mehr allzu schwer ist. Da ich einfach diese blöde Datenübergabe nicht hinbekommen haben.
Danke auch für die Editoren werde mir gleich mal einen runterladen nutzte im Moment Phase5 aber markiert mir den php Code leider nicht farblich.
Also Danke noch mal
Grüße
Sebastian
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

PHP
gelöst PHP-MySQL - mysqli liefert einen Datensatz zu wenig (3)

Frage von Windows-Spieler zum Thema PHP ...

PHP
MySQL-Abfrage mit php: Wert + true bzw. false (2)

Frage von tomolpi zum Thema PHP ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...