Beiträge von hpuettma

    Was soll ich EUCH sagen - geschafft - Das Problem ist gelöst, alle Daten werden sauber in die DB geschrieben.
    Die Fehlerursache waren tatsächlich die Vorschlagswerte, die ich in die Postfelder geschrieben habe.
    Vermutlich ist damit auch der von mir erwähnte Zeitpunkt der Datenverfügbarkeit gemeint, den ich im Internet gefunden habe.

    TAUSEND Dank für Eure Geduld und EURE Hilfe.
    Das Thema Vorschlagswerte kann ich vielleicht auch selbständig lösen.:lol:

    ich muss mich korrigieren, mit DEINEN Code und nur der POST Information hatte ich noch nicht getestet. Werde ich machen und melde mich ein wenig später.

    Hallo Arne, ich werde den neuen Code in eine eigene Datei übernehmen und neu testen, dauert ein wenig.

    - - - Aktualisiert - - -

    Hallo zusammen, ich habe den korrigierten Quellcode von Arne in meinen Ablauf kopiert und getestet. Der Syntaxfehler ist weg! Das Update funktioniert trotzdem nicht, siehe Ausgabeergebnis.

    Ausgabeergebnis:

    HTML
    Tisch belegen  
       Vor mysqli_query, Query = update `reservierungen` set `resanzpers` =  '4', `reskundenach` = 'Nachname', `reskundevor`  = 'Vorname' where  `res_id` = 1105
    Reservierungen wurde aktualisiert  Reservierung für Anzahl Personen: 2
    
    
    ResDatumResZeitTischMinPersMaxPersAnzPersStatus  Tisch wird jetzt belegt  Tisch wird jetzt belegt

    Ich habe die beiden Post-Felder mit einem Vorschlagswert vorbelegt (Tagesdatum und Anzahl Personen 2). Da ich keinen Syntax-Fehler bekomme, MUSS doch das Feld $_Post['pe'] vorhanden sein. Vielleicht wird es über die Vorschlagswerte überschrieben???? Noch eine Frage in diesem Zusammenhang. Die beiden Variablen habe ich in der Ausgabe nicht angelistet. Wichtig ist nur die Personenzahl aus dem Post. Kann das zu einem Fehler führen?

    - - - Aktualisiert - - -

    Hier ein Auszug der DB:

    Der ausgewählte Datensatz 1105 wurden nicht geschrieben. :evil:

    - - - Aktualisiert - - -

    Ich habe das Ausgabeergebnis mal per Hardcopy eingefügt. Dann kann man sich den Ablauf besser vorstellen. Über einen LINK im Statusfeld "soll" die Eingabe im Feld Anzpers und die beiden Konstanten in die DB geschrieben werden.

    Tisch belegen


    Vor mysqli_query, Query = update `reservierungen` set `resanzpers` = '4', `reskundenach` = 'Nachname', `reskundevor` = 'Vorname' where `res_id` = 1105
    Reservierungen wurde aktualisiert Reservierung für Anzahl Personen: 2

    ResDatum ResZeit Tisch MinPers MaxPers AnzPers Status
    Tisch wird jetzt belegt
    Tisch wird jetzt belegt

    - - - Aktualisiert - - -

    Das Hardcopy hat nicht alle Werte gezeigt. Hier noch ein Snapshot, die Tabellenwerte sind aus den bestehenden Datensätze vorbelegt!

    Hallo Bandit, dein Quellcode und mein Post mit einem weiteren Versuch hatten sich überschnitten. Nachdem ich nun Deinen Code eingebaut habe, bekomme ich leider wieder einen Fehler: undefined Index für "PE". Die beiden Variablen werden geschrieben, der POST-Eintrag aber nicht.

    Ich habe im Internet einen Hinweis gefunden, dass der Zeitpunkt zu dem die Daten verfügbar sind unterschiedlich ist, ob es eine POST-Information oder eine Variable ist...

    In meinem ersten Post hatte ich schon gesagt, dass ich tausend Varianten des Update-Befehls ausprobiert habe.
    Mit Komma im Befehl erhalte ich einen Systax-Fehler

    HTML
    $sql = "update reservierungen set "
               . "resanzpers =     '"     . $_POST['pe'][$id] . "'",
               . "reskundenach = 'Nachname'",                    
               . "reskundevor  = 'Vorname'",
               . " where res_id = $id";

    Leider muss ich jetzt kurz außer Haus! Bin gegen Mittag wieder erreichbar. Sorry.

    Übrigens - mit ECHO habe ich die beiden Variablen ausgegeben. Die Inhalte sind vor dem Update o.k.

    - - - Aktualisiert - - -

    Das ist die Fehlerausgabe mit der Debugging Unterstützung:

    Code
    Nachname: Nachname Vorname: VornameVor mysqli_query, Query = update  reservierungen set resanzpers = 	'6'reskundenach = 'Nachname'reskundevor   = 'Vorname' where res_id = 1004
    MySQL-Error: You have an error in  your SQL syntax; check the manual that corresponds to your MariaDB  server version for the right syntax to use near 'reskundenach =  'Nachname'reskundevor  = 'Vorname' where res_id = 1004' at line 1

    Jetzt weiß ich also, dass ich einen Systax-Error habe ...

    Zu meinem Hobby: Ich bin 67 Jahre alt, habe bereits vor mehr als 40 Jahren beruflich Batch-Programme in Assembler und Cobol programmiert und hatte immer viel Freude an Programmieren. Die Dialog-Programmierung ist mir allerdings noch sehr fremd. Da ich nicht einrosten möchte, habe ich gedacht, man könnte sich durch PHP und mySQL geistig fit halten.

    Hallo Bandit, der Kommentar war nicht persönlich gemeint. Das Debugging ist für mich ein Buch mit sieben Siegeln und ich habe keine Ahnung wie man es sinvoll codiert. Eigentlich wollte ich einen Tipp bekommen und nicht tagelang ein neues Kapitel von PHP und MySQL aufmachen. Dann habe ich vielleicht später mein eigentliches Problem ganz vergessen. Ein Beispiel-Code mit eingebautem Debugging wäre toll gewesen.

    Hallo nochmal,

    ich habe den Quellcode mal aktiviert und den nicht funktionierenden Teil laufen lassen. Ich bekomme keinen Syntax-Fehler und auch über das Error-Reporting keinerlei Hinweise. Der Code läuft einfach durch, das Ergebnis ist aber in der DB nicht zu sehen.
    Über andere Foren habe ich gesehen, dass dieses Problem viele User in der Vergangenheit hatten. Eine zufriedenstellende Lösung habe ich aber nicht gefunden. Vielleicht kann Arne sich das mal ansehen, denn die wissenschaftlichen Abhandlungen von Bandit bringen mich immer weiter ab von meiner Lösung. Ich brauche nämlich einen Tipp und keine Zurechtweisung. Danke.

    - - - Aktualisiert - - -

    Das Feld im Kommentarteil "resanzpers" wird in die DB geschrieben, wenn kein weiteres Feld angegeben wird. Sind alle 3 Felder angegeben wird KEIN Feld in die DB geschrieben.

    - - - Aktualisiert - - -

    Sorry, ich hatte den falschen Quellcode gesendet, hier der richtige. Die Aussage von mir trifft aber weiterhin zu.

    Hallo, ich bin es schon wieder.
    Es ist mir schon fast peinlich, dass ich Euch schon wiederholt mit meinen Problemen belästigt habe.
    Aber leider habe ich ein Problem, dass ich alleine nicht lösen kann.

    Über eine $_POST Eingabe übergebe ich ein Datum und eine Anzahl, für die ich Datensätze mit geringfügig unterschiedlichem Inhalt in die DB schreibe (generiere). Dann zeige ich die geschriebenen Datensätze an, selektiere EINEN, um weitere Daten hinzuzufügen. Zunächst wird die $_POST Eingabe der Anzahl übernommen, dann sollen noch zwei weitere Konstanten (Nachname und Vorname) in den selektierten Datensatz geschrieben werden.
    Die $_POST Eingabe wird in den Datensatz geschrieben, die beiden anderen Felder aber nicht.
    Über Google habe ich einen Hinweis auf den Zeitpunkt gefunden, zu dem die Daten verfügbar sind. Leider konnte ich damit nicht sehr viel anfangen.
    Ich schaffe es einfach nicht, die beiden Update-Befehle zu kombinieren und alle drei Informationen gemeinsam wegzuschreiben. Ein Versuch die Daten über zwei Update-Befehle zu schreiben – man muss sich zu helfen wissen - scheitert genauso. Vielleicht kann mir jemand einen FUNKTIONIERENDEN Update-Befehl zuschicken, der diese Problematik löst. Der Code ist nur ein Ausschnitt!

    Danke für Eure Hilfe.

    sorry Arne, war der Meinung, dass man sowohl mysql_query als auch mysqli_query schreiben darf. Hängt doch wohl nur an der PHP-Version, oder nicht? Danke für die LINKS werde mich melden, wenn ich das Problem gelöst habe.

    - - - Aktualisiert - - -

    der Fehler ist weg und das Programm läuft perfekt. Tausend Dank für die nette Unterstützung. Ich habe das Problem, dass mein Englisch nur mäßig ist und ich daher die Fehlermeldungen, vor allem wenn sie sehr technisch sind, schlecht interpretieren kann.
    Danke nochmals.

    Hallo Arne,
    das Hightlightning hat mir wenig geholfen, ich setzte das Notepad++ als Editor ein.
    Ich kann also nur vermuten, dass das Problem wieder einmal die Quotes sind. Nachdem ich die einfachen Quotes ein- und ausgebaut habe und das Post-Datum unverändert in den Select übernommen habe, ich der Fehler "unexpected DELETE" immer noch da. Sorry, aber ohne einen weiteren Hinweis auf die Fehlerursache bin ich ratlos.

    Habe jetzt mal die SQL-Befehle geprüft und angepaßt. Hier das neue Coding.

    Der Fehler ist weg - aber ... ein neuer unverständlicher Fehler taucht auf - dumm gelaufen.

    Code
    datum: 2017-04-16
    [B]Warning[/B]:  mysql_query() expects parameter 1 to be string, object given in [B]C:\xampp\htdocs\la_terrazza\reservierungen\loeschen\reservierungen_loeschen.php[/B] on line [B]27[/B]

    vielleicht sollte ich besser die Flinte in's Korn werfen :evil:

    Hinweis: Line 27 ist der IF Befehl nach dem DELETE!

    Hallo zusammen,
    kaum habe ich mein letztes Problem (mit EURER Unterstützung) gelöst, taucht das nächste auf. Ich möchte die Flinte nicht in´s Korn werfen und möchte nach 4 Wochen harter Einarbeitung bei der Stange bleiben.
    Angeblich ist das Löschen bestimmter Datensätze ein Klacks. Nach meinen 3 Fachbüchern in PHP und MySQL einfach einen DELETE Befehl absetzen, eine WHERE Bedingung einbauen und fertig! Denkste.
    Ich möchte aus einer größeren Tabelle die mit AUTO_Increment erstellt wird, alle Datensätze löschen, die in einem Tabellenfeld ein Datum (DATE) haben, das gleich ein von mir vorgegebenes Datum (per POST) sind. In einigen Versuchen wurde immer das Feld $num angemeckert. Hier das Script und danach eine Fehlermeldung.

    Und hier die Fehlermeldung

    Code
    [B]Parse error[/B]:  syntax error, unexpected 'DELETE' (T_STRING) in [B]C:\xampp\htdocs\la_terrazza\reservierungen\loeschen\reservierungen_loeschen.php[/B] on line [B]26[/B]

    Muß ich eigentlich vor dem DELETE Befehl einen SELECT absetzen? Klinkt eigentlich logisch, denn erst auswählen dann sagen was mit den Daten passieren soll.

    Für Eure Hilfe bin ich sehr dankbar.

    An dieser Stelle nochmal meinen Dank an "Arne", von dem ich schon einige Tipps bekommen habe.

    Hallo Bandit, das war es! Nachdem ich alle Begriffe mit 'session' in 'SESSION' geändert habe, bekomme ich das richtige Ergebnis. Tausend Dank für die freundliche Unterstützung. Dieser Fehler wäre mir nie aufgefallen.

    Code
    [B]Session Variablen anzeigen[/B]
    
    
      
       Script3Session-ID: 1r6rdgpd21t7ad9b1rr2c1fd52
    Script3Datum :     2017-04-16
    Script3Personen : 18

    Hallo, habe das Error-Reporting in alle Scripte eingebaut. Leider ohne Wirkung. die Ausgabe sieht nach wie vor GLEICH aus.
    Hier zur Ansicht das dritte Script:

    Code
    [h=2]Session Variablen anzeigen[/h]  
       Script3Session-ID: 1r6rdgpd21t7ad9b1rr2c1fd52
    
    
    [B]Notice[/B]:  Undefined variable: _session in [B]C:\xampp\htdocs\test\3beispiel_testen.php[/B] on line [B]24[/B]
    Script3Datum : 	
    
    
    [B]Notice[/B]:  Undefined variable: _session in [B]C:\xampp\htdocs\test\3beispiel_testen.php[/B] on line [B]26[/B]
    Script3Personen :

    Hallo liebe Freunde,

    ich kämpfe seit einigen Tagen mit der Übergabe von Variablen aus einer Session. Damit das Problem übersichtlich bleibt, habe ich 3 Testscripte erstellt. Das erste Script übergibt Variable an das zweite Script per INCLUDE. Die Übergabe an das dritte Script soll per über einen LINK-Aufruf erfolgen. Die Übergabe per INCLUDE funktioniert problemlos, leider kommen die Daten im dritten Script nicht an. Für eure Hilfe bin ich sehr dankbar. Bin ein Newbie, habt also bitte ein wenig Nachsicht mit mir. Danke.

    Script1:

    Script2:

    Script-3:



    Und hier jetzt die Ausgabe am Bildschirm:

    Code
    Script1Session-ID: gb48m296nbc9a8regu1i9iicm3
    Script1Datum :     2017-04-16
    Script1Personen : 18
     Script2Session-ID: gb48m296nbc9a8regu1i9iicm3
    Script2Datum : 2017-04-16
    Script2Personen : 18
          Erstes Script
        Datum und Personen eingeben und absenden                Datum
         Personen
                  zum dritten Script [URL='http://localhost/test/3beispiel_testen.php']klicken[/URL]

    Jetzt die Bildschirmausgabe nach dem LINK:

    Danke für den Hinweis auf den Lerneffekt. Ich werde versuchen dem $suchdatum die einfachen Quotes mitzugeben und teste den Ablauf erneut. Schon jetzt kann ich sagen, dass das Vorgehen aus meiner Sicht völlig unsinnig ist. Sorry. Ich melde mich wieder.

    Hier das Ergebnis - es klappt! - Auch wenn ich den Sinn nicht verstehe.

    Hier die Bildschirmausgabe:

    Auch wenn ich den Sinn nicht verstehe - ich möchte Dir, Arne, herzlich für Deine Geduld und letzlich für eine funktionierende Lösung danken. Danke vielmals. mfG Hans-Werner

    - - - Aktualisiert - - -

    Ich lerne daraus, dass wenn ein Vergleich eines Tabellenfeldes mit dem DATE-Format und einer Variablen z.B. $suchdatum
    notwendig wird, MUSS die Variable nicht nur das Vergleichsdatum, sondern auch noch einfach Quotes (vorne und hinten) enthalten. Sonderbar, aber es funktioniert, wie man sieht.

    Hallo Arne, aber ...
    im Tabellenfeld der Reservierung UND im "suchdatum steht 2017-04-02 (ohne Anführungszeichen).
    Wieso sind dann beide Felder nicht gleich? Wenn die einfachen Anführungszeichen falsch sind, dann dürfte doch die Abfrage über die Konstante: '2017-04-02' keine Treffer in den Reservierungen anzeigen. Ich verstehe nichts mehr.

    Kannst Du mir bitte den where Befehl posten, damit ich nicht ganz verzweifel?