daten in eine mysql tabelle schreiben

  • hallo an euch alle,

    ich bin php einsteiger und finde per google und co nicht die richtige hilfe oder erklärung.
    also ich schreibe per formular und php in eine tabelle, rufe ich die seite auf und mache einen eintrag da sind dann zwei da einmal alles null und einmal der eintrag.
    ?????? warum
    dann wollte ich bilder in die tabelle speichern was mir aber nicht gelingt und ich lasse nun den dateinamen speichern und versuche den dann später wieder auszulesen aber erst muss ich das mal ordentlich speichern können.
    ich habe dann diese viereckigen anklickfelder in die tabelle wird immer nur null geschrieben? was mache ich da falsch?
    danke für eventuelle erklärungen, bin auch über Teamspeak erreichbar.
    werde hier noch mal das bisher zusammengetüftelte reincopieren, vielleicht bringt es ja was
    bei den bildern habe ich das mit ablashes oder so auch schon getestet aber bekomme dann immer einen fehler.
    danke erst mal, will euch nicht mit zu vielen fragen auf einmal löchern.

    mfg wessve

  • also ich habe schon mal rausbekommen das sowie ich die seite aufrufe er die funktion send aufruft und die leeren datensätze in die tabelle schreibt, kann mir jemand erklären warum das so ist

    lasse ich die seite dann offen kann ich datensätze ohne diesen leereintrag eintragen. also dann läuft es so wie es laufen sollte. ausser das mit den kleinen ankreuzkästchen da stehht immer null egal ob angekreuzt oder nicht

    danke

  • hallo

    also erstens wären wir froh wenn du dein post selber mal durchlesen würdest - fehlende satzzeichen und rechtschreibefehler verderben die lust am lesen.
    dann wären noch code tags praktisch.. hab sie dir jetzt reineditiert.
    danke.

    dann zu deinem problem:

    mach mal bei dem <form> tag das action="..." ganz weg. ich denke durch das action und der mangelhaften abfrage im php trägt das script bei jedem seitenaufruf daten ein. und beim ersten laden der seite (vor dem ausfüllen), werden ja logischerweise noch keine daten geschickt. also lassen wir das action weg, erweitern den code um eine weitere abfrage (ob daten eingegeben wurden) und leiten nach dem code wieder auf die gleiche datei weiter:

    sollte klappen.
    übrigens hast du deinen php code zwei mal "abgeschlossen" und dann gleich wieder eröffnet, das macht keinen sinn. dann hab ich deine variable zuweisungen mit dem extract() ersetzt, und das REQUEST rausgenommen (=sicherheitslücke da REQUEST auch auf GET reagiert).

    zu dem bild: bilder kommen nicht in die tabelle, sondern werden auf den server geladen. in der tabelle speicherst du, je nach script und bedarf, den dateinamen, eine id, und/oder weitere informationen.

    so long

  • Jetzt gibt es keinen ungewollten Eintrag mehr bei einem Seitenaufruf. Aber!!!
    Jetzt wird auch nichts mehr eingetragen wenn er es soll.
    Auch bekomme ich folgende Fehlermeldung:
    Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\datenhinz.php:7) in C:\Programme\xampp\htdocs\datenhinz.php on line 23
    Habe auch den unteren Teil weggemacht, also unten bei dem php steht nur noch:

    <?php

    if($_REQUEST['Send'])

    $Artikelnr = $_POST['Artikelnr'];
    $Marke = $_POST['Marke'];
    $Bezeichnung = $_POST['Bezeichnung'];
    $Bildurl = $_POST['Bildurl'];
    $Kurzbeschreibung = $_POST['Kurzbeschreibung'];
    $Beschreibung = $_POST['Beschreibung'];
    $PreisohneVertrag = $_POST['PreisohneVertrag'];
    $C1 = $_POST['C1'];
    $C2 = $_POST['C2'];
    $C3 = $_POST['C3'];
    $C4 = $_POST['C4'];
    $Platzhalter = $_POST['Platzhalter'];
    ?>

    </form>

    Was sind Code Tags???

    Danke.

  • stimmt, header kannst du nur verwenden wenn noch keine browserausgabe erfolgt ist.
    schmeiss noch in die oberste zeile der datei (bei meinem code):

    <?php ob_start(); ?>

    ob_start() ist eine pufferung für die ausgaben.

    code tags sind bb code. ist wie html fürs forum. sehen so aus

    Code
    hier kommt der code rein

    dann wird es automatisch formatiert wie oben in meinem ersten post.
    (hab bb code jetzt für diesen beitrag deaktiviert..)

    so long

  • das Ganze sieht jetzt so aus:

    Danke

  • Jetzt bekomme ich nachdem ich auf Speichern klicke die Fehlermeldung:

    Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\datenhinz.php:1) in C:\Programme\xampp\htdocs\datenhinz.php on line 22
    >

    und in der Datenbank wird wieder ein lerer Datensatz gespeichert?

  • ausgebe vor einem header geht nicht !

    also entweder mit output buffer oder anders lösr

    PHP
    <?php ob_start(); ?> 
    blablabla, ganz viel text und quellcode
    <?php ob_end_flush; ?>

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Ähm, was ich hier lese, ist grauenhafter Blödsinn.

    Code
    extract($_POST);


    Wie kann man nur sowas benutzen?

    PHP
    <?php ob_start(); ?>


    Wozu um alles in der Welt braucht man das? Eine Überprüfung von Formulardaten kann problemlos am Anfang des Scriptes gemacht werden, ohne irgendeine Ausgabe!

    Code
    header('Location: '.$_SERVER['PHP_SELF']);


    Das ist Schrott!!! Aus der Doku von header:

    Zitat

    HTTP/1.1 verlangt einen absoluten URI inklusive dem Schema, Hostnamen und absoluten Pfad als Argument von Location:


    Und wieso überhaupt header? Durch geschickten Aufbau löst man sowas mit include.

    Mal ehrlich, diese Antworten von einem Moderator mit über 5000 Postings, schwach, extrem schwach!

    phpfan

  • extract $_POST is einfach nur bequemlichkeit
    ich hab mir das ding nich durchgelsen, sondern nur die fehlermeldung, und da liegt das ja wohl nahe ?
    und nur wiel er mod ist, heisst das ja noch lange nicht, dass er php profi ist (er kanns aber gut ;) )

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Jo, is klar.
    Was hast du gegen normales Outputbufering?
    Klar könnte man es anders lösen, aber so ist es doch einfacher.

    Bei extract($_POST); hast du jedoch ein bisschen Recht.
    In komplexeren Scripten, kann durch hinzufügen weiterer POST Daten ein Fehler auftreten.

    Wenn du was gegen das Script hast, mach es einfach selbst und stell es hier rein =)

  • @phpfan - ich lasse mich nicht von einem gast mit 1 post belehren, vor allem ohne irgendwelche begründungen. machst dich so nicht gerade beliebt hier.

    mir ist klar dass man das mit include besser lösen könnte*, und ich würde bei header auch nicht PHP_SELF verwenden, ich kenne aber den aufbau der webseite vom fragesteller nicht, also hab ich PHP_SELF verwendet damit es stimmt.

    *ich / wir schreiben hier nicht jedes anfänger script in ein professionelles um, dazu fehlt zumindest mir die zeit und die lust. hat auch keinen sinn einem anfänger ein script zu präsentieren mit mehreren dateien usw.
    du kannst das aber gerne tun, und deine energie für hilfeposts statt sinnlosen flames verwenden.

    so long

  • Zitat von phore

    Was hast du gegen normales Outputbufering?
    Klar könnte man es anders lösen, aber so ist es doch einfacher.


    Einfacher, naja. Aber zumindest völlig sinnlos. Es gibt doch wohl keinen Zweifel daran, dass man das in diesem Fal nur benutzt, um eine unsaubere Struktur des Scriptes zu vertuschen!

    Zitat von phore

    machst dich so nicht gerade beliebt hier.


    Ganz ehrlich, ist mir wurscht!

    Zitat von phore

    mir ist klar dass man das mit include besser lösen könnte


    Und warum weist du nicht wenigstens man darauf hin.

    Zitat von phore

    ich / wir schreiben hier nicht jedes anfänger script in ein professionelles um


    Das sagt doch auch keiner. Aber wenn man einem Anfänger solche Lösungen anbietet, macht er es, ohne es zu wissen, falsch. Und genau diesen falschen Weg wird er in seinen nächsten Scripten wieder gehen.

    Zitat von phore

    statt sinnlosen flames verwenden.


    Was hat das mit sinnlosen Flames zu tun, wenn ich auf die Fahrlässigkeit eines Moderators hinweise? Auch Moderatoren sollten Kritik einstecken können, wenn sie berechtigt ist!

    Von einem Moderator erwarte ich nun mal bessere Antworten. Und wenn man keine Zeit hat, den richtigen Weg zumindest ansatzweise zu beschreiben, ist Schweigen manchmal Gold.

    So, da ich dich ja jetzt wieder kritisiert habe, muss ich wohl damit rechnen, gebannt zu werden, oder?

    phpfan

  • Zitat von phpfan


    Einfacher, naja. Aber zumindest völlig sinnlos. Es gibt doch wohl keinen Zweifel daran, dass man das in diesem Fal nur benutzt, um eine unsaubere Struktur des Scriptes zu vertuschen!

    schön dass du sachen zititierst die nicht ich geschrieben habe..?

    Zitat

    Und warum weist du nicht wenigstens man darauf hin.

    wie gesagt - ich will nicht jedem das script umschreiben, das würde mir den halben tag rauben, also helfe ich einfach bei den problemen weiter. manchmal, bei komplexeren codes gebe ich auch solche tipps weiter. hat aber bei einem anfänger kaum sinn, da der thread sich dann um weitere x seiten ausdehnt - und darin resultiert dass wir/ich hier jedem von einem ersten gästebuch zu einem vollumfänglichen weiterhelfen.

    Zitat

    Was hat das mit sinnlosen Flames zu tun, wenn ich auf die Fahrlässigkeit eines Moderators hinweise? Auch Moderatoren sollten Kritik einstecken können, wenn sie berechtigt ist!

    du verwendest "fahrlässigkeit" hier etwas falsch, es ist einfach die einfachste lösung die mir eingefallen ist, wenn dir das nicht passt, kannst du von nun an bessere posten.. oder du lässt es einfach ganz sein. wenn ich kritik nicht vertragen könnte, hätte ich deinen post gelöscht. ich fand deine kritik aber (zumindest teilweise) unangebracht.

    Zitat

    Von einem Moderator erwarte ich nun mal bessere Antworten. Und wenn man keine Zeit hat, den richtigen Weg zumindest ansatzweise zu beschreiben, ist Schweigen manchmal Gold.

    ich habe hier nicht die aufgabe die besten posts zu schreiben, sondern die foren zu administieren.

    ich versteh aber deinen punkt, für mich endet die (öffentliche) diskussion aber hier, wenn du mir noch was zu sagen hast (und dir deine kritik wirklich ernst ist, wie du behauptest), kannst du das gerne per pn tun.

    so long

  • Ich möchte auch kein fertiges Script, ich erhoffe mir nur etwas Hilfestellung und Erklärungen um php zu lernen. Ich bin kein Neuling der Programmiererei aber völlig Ahnungsfrei von PHP.
    Danke!

  • Achso,

    hab das natürlich letztendlich hinbekommen, habe es aber ganz anders gemacht. Natürlich mit eurer Hilfe, habe die Checkboxen dann Rausgenommen und mit Combotextfeldern ersetzt wo man nun nur, ja oder nein, auswählen kann. Anstelle der Bilder speichere ich nun nur noch die Bildnamen ab.
    So geht es auch.

    Danke!!!