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

Datensatz - SQL-Datenbanl über PHP ändern funktioniert nicht

Mitglied: Wolf666

Wolf666 (Level 1) - Jetzt verbinden

09.09.2009, aktualisiert 16:13 Uhr, 3950 Aufrufe, 6 Kommentare

Hallo,

ich versuche mit PHP eine Seite aufzubauen mit dieser ich einen Datensatz ändern kann. Leider bekomme ich immer einen Fehler.

Ich habe erst vor kurzem damit angefangen PHP-Scripte zu schreiben. Nun habe ich schon seit 3 Tage dieses Problem und komme nicht auf den Fehler. Vieleicht hat von euch jemand eine Ahnung.

Leider wird kein Datensatz angezeigt.

Hier mein einen Ausschnitt des Script zur Auswahl des Datensatzes:
01.
while ($dsatz = mysql_fetch_assoc($res)) 
02.
03.
 
04.
echo "<tr>"; 
05.
      echo "<td><input type='radio' name='auswahl'"; 
06.
      echo " value='" . $dsatz["dvdtitel"] . "' /></td>"; 
07.
     // echo "<td>   $lf  </td>"; 
08.
      echo "<td>" . $dsatz["dvdtitel"] . "</td>"; 
09.
      echo "<td>" . $dsatz["fsk"] . "</td>"; 
10.
      echo "<td>" . $dsatz["laenge"] . "</td>"; 
11.
      echo "<td>" . $dsatz["genre"] . "</td>"; 
12.
      echo "<td>" . $dsatz["ort"] . "</td>"; 
13.
      echo "</tr>"; 
14.
 
15.
$lf = $lf +1; 
16.
 
17.
18.
echo "</table>";
Hier das Script das zur Bearbeitung da sein soll hier wird auch wenn ich mit echo den Wert von $sqlab anzeigen lasse, kommt meiner Meinung nach der richtige heraus: z.B: "select * from dvd where dvdtitel = Film ABC"


01.
$sqlab = "select * from dvd where dvdtitel = " . $_POST["auswahl"]; 
02.
echo "$sqlab"; 
03.
$res = mysql_query($sqlab); 
04.
$dsatz = mysql_fetch_assoc($res); 
05.
 
06.
 
07.
      echo "<form action = 'geaendert.php' method='post'>"; 
08.
      echo "<p><input name='dvdtitel' value='" . $dsatz["dvdtitel"] . "'/> DVD-Titel</p>"; 
09.
      echo "<p><input name='fsk'      value='" . $dsatz["fsk"] . "'/>FSK</p>"; 
10.
      echo "<p><input name='laenge'      value='" . $dsatz["laenge"] . "'/>Laufzeit</p>"; 
11.
      echo "<p><input name='genre'      value='" . $dsatz["genre"] . "'/>Genre</p>"; 
12.
      echo "<p><input name='ort'      value='" . $dsatz["ort"] . "'/>Aufbewahrungsort</p>"; 
13.
      echo "<p><input type='submit' value='Ändern'/>"; 
14.
      echo "<p><input type='reset' value='Zurücksetzen'/></p>"; 
15.
      echo "</form>"; 
16.
 
17.
 
18.
19.
 
20.
echo "</table>";

Danke
Mitglied: thaefliger
09.09.2009 um 16:29 Uhr
wie lautet denn die Fehlermeldung?
Bitte warten ..
Mitglied: Biber
09.09.2009 um 19:58 Uhr
Moin Wolf666,

:wenn ich mit echo den Wert von $sqlab anzeigen lasse, kommt meiner Meinung nach der richtige heraus:
z.B: "select * from dvd where dvdtitel = Film ABC"

Wäre nicht "das Richtige" eher (als Stringinhalt der Variablen $sqlab)
"select * from dvd where dvdtitel = 'Film ABC' "
-bzw-
"select * from dvd where dvdtitel Like 'Film ABC%' "
???

Grüße
Biber
Bitte warten ..
Mitglied: nxclass
09.09.2009 um 20:24 Uhr
... richtig - Noch richtiger währe es, jedem Datensatz eine ID zu geben (wenn es nicht schon so sein sollte) und mit dieser ID den Datensatz zu suchen - hätte den Vorteil das die Daten schneller gefunden werden weil solche Primärschlüssel IDs dann immer einen Index besitzen.
Bitte warten ..
Mitglied: Biber
09.09.2009 um 22:17 Uhr
<OT>
@nxclass
Wenn Du einen Weg gefunden hast, damit die Kunden Deiner Videothek die ID 88453 für "GZSZ Folge 2756" und die ID 422277 für "Blutjunge rothaarige Praktikantinnen" auswendig wissen....

--> dann ist Deine Videothek sicherlich die Perfomanteste nördlich von Wuppertal.

Andererseits....

....bei Kunden, die so drauf sind, würde ich mir lieber ein Extrapäckchen Munition für die Pumpgun bereitlegen.

Grüße
Biber
</OT>
Bitte warten ..
Mitglied: dog
10.09.2009 um 06:07 Uhr
An deinem ersten Code-Schnippel ist erstmal nichts groß falsch.
Aber
01.
$lf = $lf +1; 
lässt sich als:
01.
$lf++;
schöner schreiben.

Dein zweites Schnippsel hat es aber in sich:
01.
echo "$sqlab"; 
Das ist natürlich vollkommener Quark.
Wenn du nur eine Variable ausgeben willst kommen da keine Anführungszeichen drumherum.
01.
echo $sqlab;
...wäre also besser.
Noch besser wäre aber die extra für solche Fälle vorhandene var_dump Funktion zu benutzen:
01.
var_dump($sqlab);
Und wozu gehört eigentlich?
01.
 } 
(Zeile 18)

Aber kommen wir zum eigentlichen Problem:
01.
$sqlab = "select * from dvd where dvdtitel = " . $_POST["auswahl"]; 
Jedesmal, wenn jemand so einen Befehl schreibt stirbt irgendwo ein kleines Kätzchen.
Lies dir doch bitte mal folgenden Artikel durch: http://de.wikipedia.org/wiki/SQL-Injection
Der erklärt das Problem recht gut.

Und für Demnächst:
Während du ein Script entwickelst (niemals im produktiven Einsatz) kommt immer folgendes ganz oben in die Datei:
01.
ini_set('display_errors','On'); 
02.
error_reporting(E_ALL|E_STRICT);
Grüße

Max
Bitte warten ..
Mitglied: nxclass
10.09.2009 um 08:34 Uhr
*ohje* - also es würde ja schon reichen in der Tabellen - Listenansicht (s.o.) hinter dem Radio-Button die ID zu setzen !! - das Formular kann dann die ID als type="hidden" Feld beinhalten.

*gute Nacht*
Bitte warten ..
Ähnliche Inhalte
PHP

PHP soll Datensätze in der Datenbank überprüfen

Frage von YanmaiPHP2 Kommentare

Hallo ihr Administratoren ;) Ich habe eine Datenbanktabelle "Freundschaftsanfragen". Wenn Benutzer a Benutzer b eine Freundschaftsanfrage schickt, dann wird ...

PHP

PHP Dropdownmenü mit SQL-Abfrage

gelöst Frage von tobmesPHP4 Kommentare

Hi Experten, ich glaube mein Titel ist etwas verwirrend, aber mir fällt gerade nichts besseres ein :) Also hier ...

PHP

Mit PHP SQL Array Abfrage

gelöst Frage von gamerffPHP3 Kommentare

Hallo Forum, ich bin grade an einem Projekt dran ein Telefonbuch mit Mysql, PHP und HTMl zu erstellen. Ich ...

PHP

Wartungsfenster-Ampel mit PHP und SQL

gelöst Frage von ManiacsurvivorPHP1 Kommentar

Hallo zusammen Ich möchte gerne eine Seite erstellen, bei der die internen Mitarbeiter sich über den Status der IT-Umgebung ...

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 1 TagHumor (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 2 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
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

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 Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...