PHP Array Werteübergabe Problem ???
Bunny 20.08.2019 - 11:01 2851 20
Bunny
Addicted
|
So nebenbei erwähnt: Ich verwende PHP Version 7.2.19 - sollte dies relevant sein.
|
ill
...
|
Der Pointer der Collection zeigt halt auf nix mehr. Probier mal: $row_output->data_seek(0);
Setz es mal direkt hinter der while-Schleife, ich kann mich grad nicht reindenken wie sich das auf ein Array auswirkt, in dem mehrere Outputs des fetch abgelegt werden. Edit: Was ich in dem Fall wahrscheinlich einfach machen würde ist das ich mir eine RssFeed - Klasse oder änliches anlege, mit jedem Durchlauf des fetch_assoc Ergebnis einmal mit den benötigten Values eine Instanz davon anlege und _das_ dann in das $row - Array lege. Kannst es ja auch einfach mal mit einer \stdClass probieren. $rssFeedInstance = new \stdClass();
$rssFeedInstance->title = $row_output["title"];
$rssFeedInstance->url = $row_output["url"];
$row[] = $rssFeedInstance;
so, oder so ähnlich
Bearbeitet von ill am 20.08.2019, 15:58
|
Bunny
Addicted
|
Also.. $row_output->data_seek(0);
funktioniert nicht. Da zeigt mir der Browser gar nichts mehr an und im im Log-File kommt ein "Fatal Error"... Die zweite Variante mit der Klasse habe ich auch schon probiert.. Jedoch ist es auch hier so, außerhalb des ersten IF-Blocks funktionierts, im zweiten jedoch nicht !.. egal was ich mache.... Ein wirklich komisches Phänomen! Vlt kann man das Problem irgendwie anders umgehen.. irgendwie habe ich die Vermutung das if(isset($_POST['save']))
daran schuld ist. Sobald der Button geklickt wurde sind die Variablen alle leer... Gibt es irgend eine andere Lösung eine Abfrage zu machen, wenn der Button geklickt wurde, dass dann eine Aktion ausgeführt wird ? mit Javascript?? Irgendwie mit OnClick() ? .. Jedoch bin ich da nicht so sattelfest, wie man da dann die Werte übergibt...
|
Obermotz
Fünfzylindernazi
|
Asooo jetzt wirds klar POST[selected] und POST[save] sind nie gleichzeitig gesetzt. PHP ist stateless, d.h. es merkt sich grundsätzlich nichts zwischen zwei verschiedenen Aufrufen eines Scripts. Das heißt, dass du die Daten aus dem Array zwischenspeichern musst. Dafür gibts mehrere Methoden: - Session (macht man heute nicht mehr) - Cache in der DB (nosql oder mysql o.Ä.) - viele andere grauslige Hacks https://nordicapis.com/defining-sta...s-web-services/Nachdem du eh schon eine Datenbankanbindung hast, sollte das ja kein Problem darstellen. Ein Request persistiert, ein anderer fetched.
|
Bunny
Addicted
|
haha ! XD Jetzt muss ich schon fast lachen.. Ich habe irgendsowas schon vermutet und habe mir schon gedacht dass ich als "workaround" die Werte in die Mysql Datenbank schreibe... Jetzt hab ich die Bestätigung dass es eh nicht wirklich anders geht Vielen Dank! Ich probier mal bisal herum um melde mich dann wieder.!
|
Bunny
Addicted
|
Also wie schon vermutet funktioniert es natürlich mit einer "Cache Tabelle".. jetzt habe ich mit if(isset($_POST['save']))
kein Problem. Da ich jetzt weis UND verstanden habe, dass PHP stateless ist, kann ich mir so einige Phänomene erklären die so aufgetaucht sind. Vielen Dank @Obermotz dafür! Thread kann geschlossen werden. LG
|