PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Ein PHP-Formular - mehrere mySQL-Datensätze
Beitrag
<blockquote data-quote="Curanai" data-source="post: 2393272" data-attributes="member: 534923"><p>Gut, es geht weiter. ^^</p><p></p><p></p><p></p><p>Würdest Du den auf eine Datenbank schicken (was Du mit dieser Schreibweise allein nicht machst), würdest Du für einige Spalten Fehlermeldungen bekommen.</p><p></p><p>Wo ist Deine Datenbank und steht die Verbindung? Ich hoffe ja eigentlich insgeheim, dass das bei Dir wieder beim Kopieren flöten gegangen ist, aber da fehlt was recht zwingendes, um Deinen Datensatz in die präferierte DB einzutragen. <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /></p><p></p><p>Inhaltlich hat Dein vorbereiteter String noch große Schwächen - und Dein Array wäre mit ['bis'] (statt [bis]) besser zu benutzen. Der Einsatz eines Errorlogs bzw. der Blick da rein hätte Dir jede Menge Notices gegeben mit dem Hinweis auf "undefined index". Sollte Dir nicht klar sein, wo Du ein Errorlog einsehen kannst, teile uns (oder nur mir) das mit und Dir wird geholfen.</p><p></p><p>Sooo ... und dann reden wir noch über Spalten und zugehörige Typen. Typen sind hier Dinge wie Integer, String, Floats, Blobs usw. Ich gehe davon aus, dass ['bemerkung'] ein String ist - leider ist dieser in Deinem angedachten Query aber gar nicht als solcher kenntlich.</p><p></p><p>Um Dir ein wenig die Arbeit zu erleichtern, solltest Du eine andere Schreibweise für den Insert wählen (schneller, übersichtlicher und leichter zu erweitern):</p><p></p><p>[code]</p><p>$insert = "INSERT INTO</p><p> `saer_podidate`</p><p>SET</p><p> `podizei_datum`=$MeinArray[$i]['datum'],</p><p> `podizei_von`=$MeinArray[$i]['von'],</p><p> `podizei_bis`=$MeinArray[$i]['bis'],</p><p> `podizei_bemerkung`=$MeinArray[$i]['bemerkung'];";</p><p>[/code]</p><p></p><p>` = ticks ... diese setzt man um Tabellen- und Spaltennamen, um dem MySQL-Parser (und nur dem) zu sagen, dass es sich um vorgegebene Namen handelt und bspw. keine Konstanten, Methoden o. ä. aus MySQL. Beschleunigt den Query dann doch (gerade, wenn es mehr werden).</p><p></p><p>Wie Du siehst, ist diese Schreibweise von mir als Zuweisung eines Strings auf eine Variable umgeändert. Die Einrückung sorgt für Übersicht; bei der Ausführung des Queries später stört dies keineswegs.</p><p></p><p>$insert ist dann das, was Du Deinem Datenbankobjekt etc. gibst, damit der das dort hinein reicht. <img src="/styles/default/xenforo/smilies/zwinker.gif" class="smilie" loading="lazy" alt=";)" title="Wink ;)" data-shortname=";)" /></p><p></p><p>Aber da war ja noch was mit den Datentypen, nicht wahr? Und genau die habe ich hier nicht berücksichtigt - das wirst Du selbst tun müssen (denn nur Du weißt, ob die Spalte "podizei_datum" eine Ziffer/Zahl ist oder ob es doch Sinn macht, einen String mittels Double-Quotes zu bilden.</p><p></p><p>Wichtig: Benutzt Du dies nur für Dich bzw. intern? Falls nicht, solltest Du Dir ein paar Informationen zu "prepared statements" (mysqli_*/PDO) oder zumindest einer vernünftigen Funktion beschaffen, die XSS/CSRF und/oder sonstigen Dreck aus Deiner DB hält. Du nimmst aktuell blind die Daten an, die aus dem Formular kommen und schickst diese an die Datenbank - das ist ein Todbringer, wenn "public" im Web.</p><p></p><p>Gute Nacht.</p></blockquote><p></p>
[QUOTE="Curanai, post: 2393272, member: 534923"] Gut, es geht weiter. ^^ Würdest Du den auf eine Datenbank schicken (was Du mit dieser Schreibweise allein nicht machst), würdest Du für einige Spalten Fehlermeldungen bekommen. Wo ist Deine Datenbank und steht die Verbindung? Ich hoffe ja eigentlich insgeheim, dass das bei Dir wieder beim Kopieren flöten gegangen ist, aber da fehlt was recht zwingendes, um Deinen Datensatz in die präferierte DB einzutragen. :) Inhaltlich hat Dein vorbereiteter String noch große Schwächen - und Dein Array wäre mit ['bis'] (statt [bis]) besser zu benutzen. Der Einsatz eines Errorlogs bzw. der Blick da rein hätte Dir jede Menge Notices gegeben mit dem Hinweis auf "undefined index". Sollte Dir nicht klar sein, wo Du ein Errorlog einsehen kannst, teile uns (oder nur mir) das mit und Dir wird geholfen. Sooo ... und dann reden wir noch über Spalten und zugehörige Typen. Typen sind hier Dinge wie Integer, String, Floats, Blobs usw. Ich gehe davon aus, dass ['bemerkung'] ein String ist - leider ist dieser in Deinem angedachten Query aber gar nicht als solcher kenntlich. Um Dir ein wenig die Arbeit zu erleichtern, solltest Du eine andere Schreibweise für den Insert wählen (schneller, übersichtlicher und leichter zu erweitern): [code] $insert = "INSERT INTO `saer_podidate` SET `podizei_datum`=$MeinArray[$i]['datum'], `podizei_von`=$MeinArray[$i]['von'], `podizei_bis`=$MeinArray[$i]['bis'], `podizei_bemerkung`=$MeinArray[$i]['bemerkung'];"; [/code] ` = ticks ... diese setzt man um Tabellen- und Spaltennamen, um dem MySQL-Parser (und nur dem) zu sagen, dass es sich um vorgegebene Namen handelt und bspw. keine Konstanten, Methoden o. ä. aus MySQL. Beschleunigt den Query dann doch (gerade, wenn es mehr werden). Wie Du siehst, ist diese Schreibweise von mir als Zuweisung eines Strings auf eine Variable umgeändert. Die Einrückung sorgt für Übersicht; bei der Ausführung des Queries später stört dies keineswegs. $insert ist dann das, was Du Deinem Datenbankobjekt etc. gibst, damit der das dort hinein reicht. ;) Aber da war ja noch was mit den Datentypen, nicht wahr? Und genau die habe ich hier nicht berücksichtigt - das wirst Du selbst tun müssen (denn nur Du weißt, ob die Spalte "podizei_datum" eine Ziffer/Zahl ist oder ob es doch Sinn macht, einen String mittels Double-Quotes zu bilden. Wichtig: Benutzt Du dies nur für Dich bzw. intern? Falls nicht, solltest Du Dir ein paar Informationen zu "prepared statements" (mysqli_*/PDO) oder zumindest einer vernünftigen Funktion beschaffen, die XSS/CSRF und/oder sonstigen Dreck aus Deiner DB hält. Du nimmst aktuell blind die Daten an, die aus dem Formular kommen und schickst diese an die Datenbank - das ist ein Todbringer, wenn "public" im Web. Gute Nacht. [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ★ = 12, ◇ = 4 und die Hälfte von ★ zu ◇ addiert wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Ein PHP-Formular - mehrere mySQL-Datensätze
Oben