Antworten auf deine Fragen:
Neues Thema erstellen

Benötige Denkanstöße für $_SESSION

Kadey

Nicht mehr ganz neu hier

Hallo,
meine PHP Kenntnisse sind noch nicht die Besten, dennoch versuche ich mich immer wieder daran.
Aktuell stehe ich bei einen Problem bezüglich $_SESSION und weis nicht so recht wie ich dies am besten lösen kann.

Folgendes:
Aus der Datenbank erhalte ich gespeicherte Termine, welche mittels foreach ausgegeben werden.
Jedem Termin werden 5 Links angehängt welche ich mittels $_GET übergebe möchte.
Jeder Termin hat diese 5 Links, es ändert sich halt nur die ID.

HTML:
<a href="session.php?lkw=1&id=1">L1</a>
<a href="session.php?lkw=2&id=1">L2</a>
<a href="session.php?lkw=3&id=1">L3</a>
<a href="session.php?lkw=4&id=1">L4</a>
<a href="session.php?lkw=5&id=1">L5</a>

Nun möchte ich, wenn z.B. L1 geklickt wird, dass geprüft wird, ob es bereits eine SESSION für LKW 1 gibt und ob die ID schon in der SESSION vorhanden ist....wenn nicht dann anlegen....bei weiteren klicks auf andere IDs aber dennoch L1, möchte ich die IDs der LKW1 SESSION hinzufügen....quasi sone Art Warenkorb...

So nach dem Schema....LKW 1 beinhaltet folgende IDs ... 3 , 5 , 8 , 9 , 15 usw...

dasselbe möchte ich für die anderen LKW auch....

Hat jemand ein paar Ideen für mich?
Gerne auch als Klasse mit Methoden und Eigenschaften...

Hoffe ihr könnt mir folgen....

mfg
kadey
 

owieortho

Aktives Mitglied

Immer dran denken, als allererstes Session starten:
PHP:
<?php
session_start ();
Dann erst geht es weiter. Um überhaupt eine Sessionvariable zu haben muss diese definiert werden, bspw.:
PHP:
$_SESSION["id"] = $id;
Um sicherzugehen, dass nicht versehentlich vorhandene Werte überschrieben werden, prüfst Du die Sessionvariable vor dem beschreiben:
PHP:
if (empty($_SESSION["id"])) {
...Sessionvariable erzeugen und füllen (s. o.)
} else {...
wenn schon Einträge vorhanden sind, dann müsste Dein neuer Eintrag als weiteres Element eines Arrays angehängt werden:
PHP:
array_push($_SESSION["id"],$_REQUEST["id"]);

Hoffe, das ging in die richtige Richtung.
O.
 

Kadey

Nicht mehr ganz neu hier

Hallo nochmal,
irgendwie funktioniert das so doch leider nicht.
Oder habe ich hier was falsch gemacht.

Hier mal mein Testscript.
PHP:
<?php
session_start();


// Testwerte
   
$lkw = $_GET["lkw"];
$id = $_GET["id"];


// Löschen der Session
if ($_GET["id"] == 10){
    session_destroy();
    header("Location: session.php");
    exit;
}


// prüft ob Session vorhanden
if(    !isset    ($_SESSION["planung"]["lkw"]) && empty($_SESSION["planung"]["lkw"]))
{
    // wenn nicht, dann setzen und LKW zuweisen
    $_SESSION["planung"]["lkw"] = $lkw;   
   
    //  prüft ob Session vorhanden
    if(    !isset    ($_SESSION["planung"]["id"]) && empty ($_SESSION["planung"]["id"]))
    {
    // wenn nicht, dann setzen und IDs zuweisen
    $_SESSION["planung"]["id"] = $id;
    }
}else
        {
        $ids = $_SESSION["planung"]["id"];
        array_push($ids , $id);
        }



// Testausgaben
echo "<pre>";
print_r($_SESSION);
echo "</pre><br><br>";





?>
<a href="session.php?lkw=1&id=1">L1</a><br>
<a href="session.php?lkw=2&id=2">L2</a><br>
<a href="session.php?lkw=3&id=3">L3</a><br>
<a href="session.php?lkw=4&id=4">L4</a><br>
<a href="session.php?lkw=5&id=5">L5</a><br><br>

<a href="session.php?id=10">session löschen</a>
 

owieortho

Aktives Mitglied

Ich denke das hängt an den mehrdimensionalen arrays. Mein Beispiel zeigte das array_push in einem eindimensionalen array. Hatte aber jetzt nicht genug Zeit daran zu tüfteln, aber vielleicht hilft der Begriff beim Stöbern.
O.
 

Kadey

Nicht mehr ganz neu hier

Hi,

habe nun alles soweit hinbekommen.
Allerdings nutze ich nun doch nicht
Array_push() sondern

$var = array();
$var[];
funktioniert alles bestens.

Nun aber andere Probleme,
habe doppelte Einträge in der Session die ich nicht will.
Nutze ich array_unique() bekomme ich zwar ein Ergebnis ohne doppelte Einträge, dennoch sind sie in der Session vorhanden.

Zudem möchte ich ein SELECT Query haben, wo ich die im Array gesammelten IDs Abfrage.
Derweil versuche ich es mit IN ($array) aber das will nicht so recht.

Hast du hierfür vielleicht ne Idee?
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben