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, 5159 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 Umstellung mysql connect
Frage von DPiegzaPHP7 Kommentare

Hallo zusammen. Ich bekomme immer diese Fehlermeldung / Warnung: Deprecated: mysql_connect(): The mysql extension is deprecated and will be ...

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
MySQL in PHP mit Variablen
gelöst Frage von carl7nPHP10 Kommentare

Hallo, ich habe PHP-Grundkenntnisse, schaffe es aber nicht, nach meinen Vorstellungen ein paar kleine PHP-Scripts zusammen arbeiten zu lassen. ...

Datenbanken
Eine Art Access, nur mit PHP und MySQL?
gelöst Frage von McLionDatenbanken14 Kommentare

Hallo, gibt es eine Art wie Microsoft Access, nur auf PHP und MySQL aufbauend? OpenSource wäre noch schöner. Danke!

Neue Wissensbeiträge
CPU, RAM, Mainboards
Neverending story
Tipp von keine-ahnung vor 7 StundenCPU, RAM, Mainboards1 Kommentar

Da kommt man mit dem fixen gar nicht mehr hinterher und die CPU erreichen wieder Rechenleistungen im Bereich des ...

Multimedia & Zubehör
AVM Fritz USB WLAN Sticks schneller einschalten
Tipp von NetzwerkDude vor 2 TagenMultimedia & Zubehör4 Kommentare

Die AVM Fritz WLAN Sticks haben in der Firmware 2 Modis: Einmal als Massenspeicher und einmal als WLAN Netzwerkkarte ...

Windows Server

Windows Server Backup schlägt fehl - Lösung 2008-2016

Tipp von BiGnoob vor 2 TagenWindows Server

Hi zusammen , ich möchte gerne einen Lösungstipp abgeben für folgenden Fehler: Lösung ist folgende:

Humor (lol)
Telekom vs. O2 - 3:2
Erfahrungsbericht von the-buccaneer vor 2 TagenHumor (lol)4 Kommentare

Unglaublich aber wahr: Nachdem mein privater Anschluss am 19.04.18 auf VOIP und VDSL umgestellt wurde, hatte ich seitdem 1,5 ...

Heiß diskutierte Inhalte
PHP
Nach Umzug zu 1und1 bekomme ich beim Eintrag in die DB Tabelle folgenden Fehler
gelöst Frage von jensgebkenPHP34 Kommentare

INSERT command denied to user 'dbo45342345342231244'@'112.127.102.073' for table 'orders'

Windows Userverwaltung
Problem mit Benutzerprofil
Frage von lieferscheinWindows Userverwaltung12 Kommentare

Guten Tag liebe Community, folgendes Problem habe ich: User meldet sich auf Client A an - sein Homelaufwerk verbindet. ...

Windows Server
2003er RDS Server lässt alten ThinClient nach Updates nicht mehr anmelden
Frage von KnorkatorWindows Server9 Kommentare

Hallo zusammen, wir hatten die Aufgabe, ein System (keine Domänenanbindung) zu virtualisieren welches mehrere Jahre keine Updates gesehen hat. ...

Peripheriegeräte
APC Smart-UPS - Diverse Fragen bzgl. Batterie und Konfiguration
Frage von vBurakPeripheriegeräte8 Kommentare

Hallo, nach wiederholendem Stromausfall beim Kunden habe ich Zweifel, dass die Konfiguration der USV richtig ist. Um es kurz ...