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 PHP, MySQL und Datenhandling Probleme

Mitglied: epole73

epole73 (Level 1) - Jetzt verbinden

03.09.2008, aktualisiert 14:39 Uhr, 5607 Aufrufe, 11 Kommentare

hallo, ich bin im php und mysql bereich absoluter anfänger und habe die aufgabe eine faq datenbank aufzubauen (kein fertigscript) und komme nicht weiter. die funktionen sind denkbar einfach. aber ich habe erst den ersten teil begonnen.

- daten (frage, antwort usw.) per form und php an mysql db übergeben
- daten aus db auslesen und anzeigen
- daten verändern können

die mysql db ist eingerichtet und die zugangsdaten stimmen auch. nun habe ich mich im netz ein wenig umgeschaut und ein script geschrieben. die connection zur db funktioniert, das script scheinbar auch, doch es werden keine daten in der db sichtbar. kann mir jemand helfen? hier der code. vieleicht sieht ja jemand meinen fehler?!

ach ja...ich bekomme beim absenden folgende fehlermeldung:
Notice: Undefined index: Frage in C:\xxx\xxx\xxx\eintrag.php on line 14
Notice: Undefined index: Antwort in C:\xxx\xxx\xxx\eintrag.php on line 15
Notice: Undefined index: Keywords in C:\xxx\xxx\xxx\eintrag.php on line 16
Notice: Undefined index: Bilder in C:\xxx\xxx\xxx\eintrag.php on line 17

index.php
<form action="eintrag.php" method=post>
Frage <br>
<textarea id="Frage" rows=7 cols=50></textarea>
<br>
<br>
Antwort<br>
<textarea id="Antwort" rows=7 cols=50></textarea>
<br>
<br>
Keywords<br>
<input type="Text" size="65" id="Keywords">
<br>
<br>
Bilder<br>
<input type="Text" size="65" id="Bilder">

<input type="submit" value="Send"> <input type="reset" value="Reset">
</form>
eintrag.php
<?php
include 'inc/config.php';
error_reporting(E_ALL);

mysql_connect("$host","$user","$password") or die ("Keine Verbindung");
mysql_select_db("$dbname") or die ("Die Datenbank ist nicht da");

$Frage = $_POST["Frage"];
$Antwort = $_POST["Antwort"];
$Keywords = $_POST["Keywords"];
$Bilder = $_POST["Bilder"];

$eintragen = "INSERT INTO $dbtable VALUES ('$Frage', '$Antwort', '$Keywords', '$Bilder')";

$eintragen = mysql_query($eintragen);
?>
config.php
<?php
$host = "localhost";
$user = "xxx";
$password = "xxx";
$dbname = "xxx";
$dbtable = "faq";
?>
Mitglied: bytecounter
03.09.2008 um 11:02 Uhr
Hallo,

was steht denn in den Zeilen 14-17 von Eintrag.php. Wenn ich mir den Code hier anschaue, existieren diese Zeilen nur zum Teil.

Aber ich vermute den Fehler in HTML: Das Array $_POST dürfte leer sein, da Deine Formularfelder keine Bezeichnungen haben.

vg
Bytecounter
Bitte warten ..
Mitglied: epole73
03.09.2008 um 12:09 Uhr
dem ist leider nicht so, alles schön benannt.

<form action="eintrag.php" method=post>
Frage <br>
<textarea name="Frage" rows=7 cols=50 title="Frage"></textarea>
<br>
<br>
Antwort<br>
<textarea name="Antwort" rows=7 cols=50 title="Antwort"></textarea>
<br>
<br>
Keywords<br>
<input type="Text" size="65" name="Keywords" title="Keywords">
<br>
<br>
Bilder<br>
<input type="Text" size="65" name="Bilder" title="Bilder">

<input type="submit" value="Send"> <input type="reset" value="Reset">
</form>
Bitte warten ..
Mitglied: epole73
03.09.2008 um 12:11 Uhr
den fehler konnte ich beheben, nun werden die daten auch scheinbar übergeben, allerdings bleibt die datenbank immernoch leer.
Bitte warten ..
Mitglied: bytecounter
03.09.2008 um 12:37 Uhr
In Deinem ersten Posting hatten die Formularfelder nur eine ID, keinen Namen.

Erhälst Du eine Fehlermeldung?

Was gibt denn folgender Code aus:
01.
<?php 
02.
include 'inc/config.php'; 
03.
error_reporting(E_ALL); 
04.
 
05.
mysql_connect("$host","$user","$password") or die ("Keine Verbindung"); 
06.
mysql_select_db("$dbname") or die ("Die Datenbank ist nicht da"); 
07.
 
08.
$Frage = $_POST["Frage"]; 
09.
$Antwort = $_POST["Antwort"]; 
10.
$Keywords = $_POST["Keywords"]; 
11.
$Bilder = $_POST["Bilder"]; 
12.
 
13.
$eintragen = "INSERT INTO $dbtable VALUES ('$Frage', '$Antwort', '$Keywords', '$Bilder')"; 
14.
 
15.
// SQL Query nur anzeigen 
16.
echo $eintragen; 
17.
//$eintragen = mysql_query($eintragen); 
18.
?> 
Er zeigt Dir die Query, die an die DB geschickt werden soll an, gibt sie aber nicht an die DB weiter.
Bitte warten ..
Mitglied: Arano
03.09.2008 um 12:39 Uhr
Moin,

wie ist denn deine Datenbanktabelle strukturiert ?
Sind: "Frage", "Antwort", "Keywords", "Bilder" alle deine Spalten ?

Ich habe mir mal erlaubt deinen Quelltext etwas zu erweitern:
01.
<?php 
02.
include 'inc/config.php'
03.
error_reporting(E_ALL); 
04.
 
05.
mysql_connect($host,$user,$password) or die ('Keine Verbindung'); 
06.
mysql_select_db($dbname) or die ('Die Datenbank ist nicht da'); 
07.
 
08.
// Array zum Speichern der Felder die nicht korrekt ausgefuellt wurden. 
09.
$errorFields = array(); 
10.
 
11.
// Eingaben vor ueberpruefung, wurden die Felder ausgefuellt und bestehen sie nicht aus leerzeichen 
12.
// isset() = wurde das Feld uebertragen (ausgefuellt) 
13.
// trim() entfernt alle leerzeichen am Anfang und Ende der Zeichenkette 
14.
// bedingung ? wahr : falsch     <- eine kurzform von if(){}else{} 
15.
$Frage    = isset($_POST['Frage'])    && trim($_POST['Frage'])!=""    ? $_POST['Frage']    : NULL; 
16.
$Antwort  = isset($_POST['Antwort'])  && trim($_POST['Antwort'])!=""  ? $_POST['Antwort']  : NULL; 
17.
$Keywords = isset($_POST['Keywords']) && trim($_POST['Keywords'])!="" ? $_POST['Keywords'] : NULL; 
18.
$Bilder   = isset($_POST['Bilder'])   && trim($_POST['Bilder'])!=""   ? $_POST['Bilder']   : NULL; 
19.
 
20.
// Detailiertere pruefung der Eingaben 
21.
// Wenn unzureichend wird der Name (o.Titel) des Feldes in das Array $errorFields gespeichert 
22.
if(is_null($Frage)    || strlen($Frage)<3    || strlen($Frage)>100)    $errorFields[] = 'Frage'
23.
if(is_null($Antwort)  || strlen($Antwort)<3  || strlen($Antwort)>100)  $errorFields[] = 'Antwort'
24.
if(is_null($Keywords) || strlen($Keywords)<3 || strlen($Keywords)>100) $errorFields[] = 'Keywords'
25.
if(is_null($Bilder)   || strlen($Bilder)<3   || strlen($Bilder)>100)   $errorFields[] = 'Bilder'
26.
 
27.
// Gab es einen Fehler bei den Eingaben ? 
28.
if(empty($errorFields)){ 
29.
      // Es gabe keine Fehler bei den Eingabedaten - Mach weiter... 
30.
      // Queery zusammensetzen 
31.
      $query  = "INSERT INTO `$dbtable
32.
                             (`Frage`,`Antwort`,`Keys`,`Bilder`) 
33.
                      VALUES ('$Frage', '$Antwort', '$Keywords', '$Bilder')"; 
34.
      // Query an Datenbank schicken. Das @ unterdruekt die Fehlermeldungen die wir ja eine Zeile spaeter selber pruefen. 
35.
      $result = @mysql_query($query); 
36.
      // Antwort ueberpruefen 
37.
      if($result===TRUE){ 
38.
            echo 'Alles erfolgreich eingetragen !<br>'
39.
      } else
40.
            echo 'Es gab einen Fehler beim eintragen in die Datenbank: #'.mysql_errno().'<br>'.mysql_error().'<br>'
41.
42.
} else
43.
      // Fehler bei den Eingabedaten - Stoppe ! 
44.
      echo 'Die Felder "'.implode('", "',$errorFields).'" wurden nicht korrekt ausgef&uuml;llt !<br> 
45.
            <a href="./index.php" title="zum Eingabeformular">zur&uuml;ck zum Eingabeformular</a><br>'; 
46.
47.
?>
Gruß Arano
Bitte warten ..
Mitglied: epole73
03.09.2008 um 13:29 Uhr
folgendes gibt er nun aus, trägt aber nix in die db ein:

INSERT INTO faq VALUES ('test', 'test', 'test', 'test')
Bitte warten ..
Mitglied: epole73
03.09.2008 um 13:41 Uhr
hier meine db:

CREATE TABLE `faq` (
`ID` int(11) NOT NULL,
`Frage` text collate latin1_general_ci NOT NULL,
`Antwort` text collate latin1_general_ci NOT NULL,
`Keywords` varchar(100) collate latin1_general_ci NOT NULL,
`Bilder` varchar(100) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

werde mich jetzt mal durch deinen netten eintrag arbeiten ;)
Bitte warten ..
Mitglied: bytecounter
03.09.2008 um 14:05 Uhr
Also was mir so auffällt:
ID sollte autoincrement sein.

Ich halte es auch für besser, immer die Feldnamen mit zu übergeben, wie es in den Beispiel von Arano ist.
Bitte warten ..
Mitglied: epole73
03.09.2008 um 14:06 Uhr
nach eingabe des scriptes bekomme ich nun folgenden fehler:

Es gab einen Fehler beim eintragen in die Datenbank: #1054
Unknown column 'Keys' in 'field list'
Bitte warten ..
Mitglied: epole73
03.09.2008 um 14:22 Uhr
HEJ...auf einmal läuft es...na dann muss ich jetzt mal nachvollziehen was Arano da gebaut hat...und dann werde ich mich bestimmt wieder melden wenn es darum geht die daten aus der db auszugeben und verändern zu können. aber vieleicht schaffe ich es ja auch mal selbst. ganz lieben dank!
Bitte warten ..
Mitglied: epole73
03.09.2008 um 14:39 Uhr
ok, es funktioniert! top klasse und danke für die tipps.
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
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

Grafikkarten & Monitore
4k EIZO Monitor, Fernseher und Splitter
Frage von LerxxeyGrafikkarten & Monitore9 Kommentare

Hallo Zusammen, vielleicht könnt ihr mir bei einem Problem helfen wo ich einfach nicht mehr weiterkomme Und zwar haben ...