Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: Munsi1

Munsi1 (Level 1) - Jetzt verbinden

31.03.2008, aktualisiert 07.04.2008, 5179 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 ..
Ähnliche Inhalte
PHP
PHP MySQL Login
Frage von YanmaiPHP7 Kommentare

Hallo ihr Administratoren, ich habe eine Datenbank, in der alle User des Netzwerkes enthalten sind. Wenn ein User sich ...

PHP
Benutzerregistrierung php, mysql
Frage von zelamediaPHP5 Kommentare

Hallo, kennt jemand ein gutes Tutorial/Anleitung wie ich mit php/mysql eine einfache Benutzer-Registrierung umsetzte mit Benutzerrollen also Administrator/Mitarbeiter usw. ...

PHP
HTML PHP MySQL Webanwendung
Frage von hahaxd3PHP12 Kommentare

Hallo Leute, Ich möchte gerne Meine Datenbank auf einer webseite darstellen. Dabei sollte diese Als normale Tabelle dargestellt sein. ...

PHP
PHP - MySQL-Ausgabe editieren
gelöst Frage von ThoomaasPHP19 Kommentare

Hallo alle zusammen! Ich bin gerade dabei ein Portal für meine Firma zu basteln. Hierbei sollen die User Protokolle ...

Neue Wissensbeiträge
Windows 10

Windows 10 kann XPS erzeugen aber nicht anzeigen ????

Erfahrungsbericht von Deepsys vor 18 StundenWindows 10

Heute schickt mir ein Kollegen eine E-Mail mit einer XPS-Datei vom Kunden im Anhang und fragt wie er diese ...

Exchange Server

1und1 IONOS: Probleme beim Mailversand mit Exchange

Information von reksierp vor 1 TagExchange Server3 Kommentare

Hallo, seit Do, 17.1.19 etwa Mittags nimmt 1und1 IONOS keine Mails mehr über den Standard-Port SMTP 25 an. Nachdem ...

LAN, WAN, Wireless

Cisco Mikrotik VPN Standort Vernetzung mit dynamischem Routing

Anleitung von aqui vor 1 TagLAN, WAN, Wireless

1. Allgemeine Einleitung Das nachfolgende Tutorial ist eine Fortführung der hier bei Administrator.de schon bestehenden VPN Tutorials und beschreibt ...

Windows Mobile

Support für Windows Mobile endet im Dezember 2019

Information von transocean vor 3 TagenWindows Mobile1 Kommentar

Moin, Microsoft empfiehlt als Alternative den Umstieg auf iOS oder Android, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
Windows Server
MSSQL Backup in Form von .sql einspielen
Frage von janosch12Windows Server14 Kommentare

Guten Morgen, wir verwenden das Tool SQLandFTPBackup ( ) zum sichern einiger MSSQL Datenbanken. Nun sichert das Toll die ...

LAN, WAN, Wireless
Wo lässt sich das Gateway in der FRITZ!Box 7360 einstellen?
gelöst Frage von OssabowLAN, WAN, Wireless13 Kommentare

Hallo all, nach gründlicher Suche scheine ich der einzige zu sein der das Problem hat (macht micht schon mal ...

Microsoft Office
Office 2016 oder Office 2019
Frage von PeterzMicrosoft Office13 Kommentare

Hallo zusammen, wir müssen unser Office von 2010 auf eine neuere Version Umstellen. Jetzt stellt sich die Frage, ob ...

Windows Server
"Konfiguration des Remotedesktop-Sitzungshosts" unter Windows 2016
gelöst Frage von emeriksWindows Server12 Kommentare

Hi, unter Windows 2008 R2 gab es noch eine MMC "Konfiguration des Remotedesktop-Sitzungshosts". Da kann man. u.a. die Konfiguration ...