"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

PHP Array Werteübergabe Problem ???

Bunny 20.08.2019 - 11:01 2600 20
Posts

Bunny

Addicted
Avatar
Registered: Oct 2002
Location: Austria
Posts: 525
So nebenbei erwähnt: Ich verwende PHP Version 7.2.19 - sollte dies relevant sein.

ill

...
Avatar
Registered: Nov 2003
Location: Salzburg
Posts: 2053
Der Pointer der Collection zeigt halt auf nix mehr.

Probier mal:
Code: PHP
$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.
Code: PHP
$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
Avatar
Registered: Oct 2002
Location: Austria
Posts: 525
Also..

Code:
$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

Code:
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
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Asooo jetzt wirds klar :D
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
Avatar
Registered: Oct 2002
Location: Austria
Posts: 525
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 :D

Vielen Dank! Ich probier mal bisal herum um melde mich dann wieder.!

Bunny

Addicted
Avatar
Registered: Oct 2002
Location: Austria
Posts: 525
Also wie schon vermutet funktioniert es natürlich mit einer "Cache Tabelle".. jetzt habe ich mit

Code:
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
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz