Autor | Nachricht |
---|---|
Beobachter Anmeldedatum: 27.06.2012 Beiträge: 7 | zitieren Hallo Leute, bin Anfänger im Bereich PHP MYSQL. Habe ein DB mit einer Tabelle die heißt stellen mit id ( auto_increment ) und beschreibung ( varchar ) ! Mach ein kleines Adminseite mit INSERT ( DATEN über Forlumalr einfügen ), SELECT ( DATEN anzeigen lassen und UPDATE (DATEN bearbeiten lassen). Mein Problem ist folgendes, ich kriege es nicht hin die daten aus 'beschreibung' auszulesen um zu bearbeiten!!! Das ist mein PHP Code:
|
▲ | pn |
Administrator ![]() ![]() Name: Marc Geschlecht: ![]() Anmeldedatum: 28.08.2004 Beiträge: 52423 Wohnort: Lohmar | zitieren Dein HTML Code ist nicht richtig. Deine INPUT besitzen alle keine schließende spitze Klammer. Schau Dir mal den Quelltext von der Ergebnisseite an, dann solltest Du feststellen, dass alles korrekt ausgegeben wird (auch die Daten aus der MySQL Datenbank), aber Deine HTML Elemente nicht korrekt geschlossen sind, damit Du es anständig im Browser angezeigt bekommen kannst. Dann gleich noch ein paar Tipps:
3.) Beim Schreiben ist Dir vermutlich aufgefallen, dass Du ein Problem mit einfachen und doppelten Anführungszeichen hast, weshalb Du bei den Attributen ganz auf die doppelten Anführungszeichen verzichtet hast. Das solltest Du natürlich nicht machen. Denn dann hilft Dir auch nicht mehr htmlspecialchars. Es könnte dann jemand die Variable mit einem Leerzeichen ausstatten und dann ein weiteres Attribut übergeben, dass Du gar nicht haben willst. z.B.:
4.) Bezugnehmend auf 3.) wäre es auch einfacher statt jede Zeile mit einem extra echo() auszugeben, stattdessen den PHP-Code zu beenden und auf HTML zu switchen und innerhalb von HTML einzelne Variablen per echo auszugeben. Das sieht dann so aus:
Wenn Du innerhalb von PHP doch mal per echo HTML Code mit Anführungszeichen ausgeben musst, dann escape sie. Also so:
Das Beispiel zeigt Dir, dass Du je nach Einsatz von Anführungszeichen entsprechend escapen musst. 5.) Nicht mega wichtig, aber ein sauberer Code setzt voraus, dass man vor der Nutzung einer Variable prüft, ob er wirklich existiert. Du hast z.B. mit dem folgenden Code geprüft ob die Variable in $_POST existiert:
Das ist korrekt, aber im nachfolgenden Code nimmst Du die Variablen, egal ob sie existieren oder nicht:
entweder baust Du Deine Bedingung an oder Du prüfst vorab ob jede Variable existiert: $update = isset($_POST['update']) ? true : false; $beschreibung = isset($_POST['beschreibung']) ? $_POST['beschreibung'] : ''; $hidden = isset($_POST['hidden']) ? $_POST['hidden'] : ''; Danach die Bedingung und der MySQL Code sehen auch gleich sauberer aus:
6.) Dein UPDATE ist nicht wirklich performant geschrieben. Du vergleichst mit hidden, wie die Beschreibung vorher hieß. Texte als WHERE Parameter zum Vergleich zu nutzen ist sehr langsam. Auch ist es denkbar, dass wenn die Beschreibung durch einen 2. Admin zwischenzeitlich geändert wurde, dass Deine Änderung im Nirvana verschwindet. Besser wäre es, wenn Du einen autoincrement-Wert in der MySQL Datenbank einsetzt und diese ID dann in einem hidden-Feld zum Vergleich heranziehst. Die ist dann als PRIMARY dann auch indexiert und der Vergleich ist sehr schnell erledigt. 5x bearbeitet |
▲ | pn email |
Beobachter Anmeldedatum: 27.06.2012 Beiträge: 7 | zitieren Vielen Dank für eine ausführlich Erklärung!!! |
▲ | pn |
Administrator ![]() ![]() Name: Marc Geschlecht: ![]() Anmeldedatum: 28.08.2004 Beiträge: 52423 Wohnort: Lohmar | zitieren Ich habe noch zwei Punkte hinzugefügt. Verfasst am: 18.07.2013, 19:15 zitieren Zum Lernen ist das erstmal ok was Du machst, aber mit Deinem Code solltest Du nicht online gehen. Dafür fehlen Dir aktuell die Erfahrungen. Ich würde Dir daher empfehlen fertige OpenSource Lösungen zu nutzen. Es gibt ja fertige Scripte für CMS, Blog, Forum, usw. Da kannst Du dann auch den Code selber sichten und durch Anpassungen lernen. |
▲ | pn email |
Beobachter Anmeldedatum: 27.06.2012 Beiträge: 7 | zitieren Danke!, arbeite mit XAMPP! CMS klingt sehr interessant! Vielen Dank, dass du Dir Zeit genommen hast!!! 1x bearbeitet Verfasst am: 20.07.2013, 10:39 zitieren Andere Frage zu UPDATE Woran könnte es liegen wenn meine daten in einem input feld nicht vollständig zu "bearbeiten" - angezeigt werden? Es wird meistens nur ein teil des inhalts ausgelesen!!! 1x bearbeitet |
▲ | pn |
Administrator ![]() ![]() Name: Marc Geschlecht: ![]() Anmeldedatum: 28.08.2004 Beiträge: 52423 Wohnort: Lohmar | zitieren Hast Du den Quelltext der Seite angeschaut? Also bist Du sicher, dass nur ein Teil der Daten ausgegeben wird? Ich vermute eher, dass Du Quotes im Inhalt hast und kein htmlspecialchars() verwendest, weil eine Art Längenbeschränkung gibt es nicht. Außer Dein Datenbankfeld ist von der Größe her begrenzt, aber das siehst Du ja über phpmyadmin, wenn Du Dir die Datenbank mal anschaust. In dem Fall musst Du einen anderen Zellentyp wählen. z.B. "text". |
▲ | pn email |
Beobachter Anmeldedatum: 27.06.2012 Beiträge: 7 | zitieren Also im phpmyadmin ist alles okay. Das Proble tritt auf, wenn ich Datensatz bearbeiten will, er wird ja im input angezeigt und dort kann ich es updaten. Das Problem ist, manche Datensätze werden nicht vollständig angezeigt. Ich schaue gerade wegen dem htmlspecialchars(); nach! |
▲ | pn |
Administrator ![]() ![]() Name: Marc Geschlecht: ![]() Anmeldedatum: 28.08.2004 Beiträge: 52423 Wohnort: Lohmar | zitieren Wie gesagt. Was steht im Quelltext. Wenn da der Inhalt voll drin steht, ist das Problem Dein Escaping. |
▲ | pn email |
Gast | zitieren Mach mit!Wenn Dir die Beiträge zum Thread "Ausgabe von MySQL-Daten (SELECT) mit echo() klappt nicht" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:Registrierte Mitglieder genießen die folgenden Vorteile: ✔ kostenlose Mitgliedschaft ✔ keine Werbung ✔ direkter Austausch mit Gleichgesinnten ✔ neue Fragen stellen oder Diskussionen starten ✔ schnelle Hilfe bei Problemen ✔ Bilder und Videos hochladen ✔ und vieles mehr... |
▲ | |
Ähnliche Beiträge | Re: √ | Letzter Beitrag | |
---|---|---|---|
MySQL Timeout für einzelne SELECT Queries Erst MySQL 5.7.4 macht es möglich in Datenbankabfragen ein Timeout zu definieren:
SELECT
MAX_STATEMENT_TIME = 1000 --in milliseconds
*
FROM... [Allgemein]von mgutt | 0 451 | 06.02.2017, 21:09 ![]() mgutt | |
![]() Einfaches Skript um MySQl zu benchmarken:
<?php
$link = mysqli_connect("localhost", "root", "");
/* check connection */
if (mysqli_connect_errno())... [Allgemein]von mgutt | 0 275 | 19.01.2017, 12:19 ![]() mgutt | |
zweitschlüssel (rot) klappt nicht! wollte gerade mit meinem drittschlüssel (der rote) mein auto starten was aber nicht geklapt hat.... der schlüssel war noch original verpackt (eingeschweißt) muss der noch codiert werden o.ä.? zündung radio und alles ging an nur das auto nicht^^ hat sich... von maddes | 7 337 | 12.06.2009, 11:25 silent | |
ertransferdruck es klappt einfach nicht.. Hallo ich bin ratlos nach zich versuchen... ich schaffe es nicht die folie geht entwederkaputt bevor sie auf den sachen ist oder sie löst sich auf.. es ist echt der helle wahnsinn wie verhext..
ich wollte meine innenaustattung bekleben im auto..... von na4alnik | 3 534 | 30.06.2010, 18:14 na4alnik | |
PS3 Internet-Verbindung klappt nicht Wie schon gesagt, ich werd paar fragen haben.
hier die erste:
Internetanschluss funktioniert nicht.
ich habe ein Lankabel vom Router zu meinem Pc. Inet funktioniert. Also dachte ich ich klemm das kabel am Rechner ab und steck es an die ps3.
bis zu... von emiliofree | 8 19.898 | 25.05.2009, 16:34 mgutt | |
v tech klappt nicht mehr : ( hi leute.habe ja den de sol vti.und eben nach der arbeit zog der schlecht.da bemerkte ich das er ab 5500udm nicht mehr abgeht wie die post,also v-tech schaltet sich nicht ein wie es aussieht.kann das daran liegen das das v tech undicht ist?das er kein... von honda102010 | 29 918 | 18.04.2012, 18:41 Akuma777 | |
Gewindefahrwerk eintragen klappt nicht Hallo zusammen,
ich habe ein Riesenproblem!
Ich habe eine Mängelkarte bekommen mit dem Inhalt: "Fahrwerk nicht eingetragen"
Ich hab dafür gestern Abend mein Fahrwerk soweit hochgeschraubt wie es ging. Währenddessen ist eine Kante von der... von not so Fani | 14 2.261 | 26.07.2012, 12:26 not so Fani | |
Funkfernbedinung klappt nicht mehr (EK3) Hi
fahre nen ek3 mit orginall Honda funkfernbedinung neuer dings klappt díe nicht mehr also die klappt schon aber nur wenn ich die fernbedinung direkt vor den empfänger halte im innenraum und das ist ja nicht sinn der sache. Was könnte das sein neue... von V-tec driver | 2 469 | 19.05.2007, 14:54 V-tec driver | |
Hilfe.... Rücksitzbank klappt nicht mehr um :( Was nun? Hallo, letztens wollte ich mit einem Kumpel meine Anlage im Auto verbauen.
Ich wollte wegen der Kabelverlegung die Rücksitzbank umklappen und schon hatte ich den Pin in der Hand :wall:
Was kann ich machen?
Habe schon probiert mit dem Schraubenzieher... von Joshivinyljunky | 7 418 | 22.08.2008, 08:53 Joshivinyljunky | |
Entpacken und Installation von Mediawiki klappt nicht Hallo an das Forum,
ich glaube ich habe ein total dummes und einfaches problem aber leider komme ich irgendwie nicht weiter.
habe mir das media wiki paket heruntergeladen, entpackt und in den Ordner htdocs meiner xampp installation geschoben.
Dort... von MTH81 | 1 360 | 02.07.2009, 17:26 mgutt |