• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SQL-Ausgabe - Werte in Session eintragen

Bourbon

Mitglied
Hallo Leute,

es ist so weit, ich will mich mal an Sessions probieren.

Folgendes:
Ich habe eine SQL-Abfrage, in der alle Gruppen eine Mitglieds angezeigt werden.
Durch @scbawik 's Hilfe konnte ich bereits die Weiterleitung mittels group_ID realisieren.
Jetzt soll die group_ID aber nicht mit dem Link weitergegeben werden, sondern mittels Sessions gespeichert werden:
$_SESSION['group_ID'] = $group_ID;

Nur bekomm ich das einfach nicht bewerkstelligt.
Hier die SQL-Ausgabe:

PHP:
<?php
require_once "db_daten.php";
$suche = "1";
if($stmt = $mysqli->prepare(
          "SELECT
            grp.group_ID,
            grp.description
           FROM
            account AS ac
           LEFT JOIN groupmembers AS gm ON (ac.userid = gm.user_ID)
           LEFT JOIN groups AS grp ON (gm.group_ID = grp.group_ID)
                 WHERE
            ac.userid LIKE ?
            ")) {
  $stmt->bind_param("s",  $suche);
  $stmt->execute();
  $stmt->bind_result($group_ID, $description);
  echo "<table border='1'>\n";
  while($stmt->fetch()) {
    echo "<tr>\n\t<td><a href='db_gruppeninfo.php?group_ID=".$group_ID."'>"
       . htmlspecialchars($description)
       . "</td>\n</tr>\n";
    }
  $stmt->close();
}
$mysqli->close();
?>
</table>
 
session_start an den Anfang und dann vor der Schleife:
$_SESSION['group_IDs']= array();
Und in der Schleife:
$_SESSION['group_IDs'][] = $group_ID;
 
Irgendwie klappt das jetzt noch nicht so, wie ich mir das vorstelle (aktuell klappt gar nichts :) )

Beim Klick auf eine Gruppe soll der Nutzer ja automatisch zur Datei "db_gruppeninfo.php" weitergeleitet werden und die dazugehörige group_ID in der Sessions gespeichert werden.

Lasse mich mir die Session ausgeben, steht da:
Notice: Array to string conversion
Array

PHP:
<?php
require_once "db_daten.php";
session_start();
$suche = "1";
if($stmt = $mysqli->prepare(
          "SELECT
            grp.group_ID,
            grp.description
           FROM
            account AS ac
           LEFT JOIN groupmembers AS gm ON (ac.userid = gm.user_ID)
           LEFT JOIN groups AS grp ON (gm.group_ID = grp.group_ID)
                 WHERE
            ac.userid LIKE ?
            ")) {
  $stmt->bind_param("s",  $suche);
  $stmt->execute();
  $stmt->bind_result($group_ID, $description);
  echo "<table border='1'>\n";
  $_SESSION['group_ID']= array();
  while($stmt->fetch()) {
    $_SESSION['group_ID'][] = $group_ID;
    echo "<tr>\n\t<td><a href='db_gruppeninfo.php?group_ID=".$group_ID."'>"
       . htmlspecialchars($description)
       . "</td>\n</tr>\n";
    }
  $stmt->close();
}
$mysqli->close();
?>
</table>
 
Zuletzt bearbeitet:
Die ist in einer separaten Datei session_test.php

PHP:
<?php
require_once "db_daten.php";
$group_ID = $_SESSION['group_ID'];
echo $group_ID;
?>
 
Denk doch mal endlich mit. Du erstellst hier ein Array

PHP:
$_SESSION['group_ID']= array();

und fügst hier Einträge hinzu:

PHP:
$_SESSION['group_ID'][] = $group_ID;

Wenn Du
PHP:
$_SESSION['group_ID']
ausgibst wirst Du natürlich nur ein Array erhalten.

Wozu willst Du überhaupt hier mit Sitzungen arbeiten? Ich sehe da momentan keinen Sinn drin.
 
Warum es mir nur ein Array anzeigt verstehe ich ja, nur weis ich nicht, was ich machen muss, damit es nur den einen Wert der betreffenden Gruppe nimmt und diesen speichert.

Warum ich mit Sitzungen arbeite:
die group_ID mittels der Adresse weiterzugeben empfinde ich als eine keine schöne Lösung, zumal das bei einer Ausgabe überhaupt nicht geht (siehe hierzu: http://www.html.de/threads/warning-mysqli-prepare-couldnt-fetch-mysqli-in.53223/ ).
Da soll das lieber in der Session gespeichert werden und abgerufen werden. Denke, das sollte weniger fehleranfällig sein.
 
Du musst in der URL irgendein Merkmal mitgeben damit die Programmierung weiß was sie nun eigentlich ausgeben soll. In der Sitzung kann man für die Dauer eines Aufenthalts innerhalb einer Webseite (die aus mehreren Dateien bestehen kann) Daten speichern, nicht aber für die Übergabe von Informationen an nachfolgende Seiten.
 
Okay, die group_ID ist ja so etwas, was nur für die Dauer eines Aufenthaltes gespeichert werden soll.

Ich hab mir das so überlegt.
Man geht in die Gruppenübersicht, klickt auf eine Gruppe und die ID wird in der Sitzung gespeichert. Die Datei mit den Abruf der Gruppeninformationen greift diese Information aus der Sitzung ab und filtert nach dieser.
Sowie ich wieder in die Gruppenübersicht oder irgendwo anders hingehe, löscht die Sitzung die group_ID wieder. Erst wenn ich dann wieder in die Gruppenübersicht gehe und wieder ein Gruppen anklicke, wird die ID erneut in der Sitzung gespeichert.
 
Dafür müsstest Du folgendes machen:

Übergib die GruppenID per GET-Variable an die folgende Datei. Bei Klick auf diesen Link wird diese aufgerufen, die GET-Variable in der Sitzung gespeichert und danach kann diese auch verwendet werden. Die GET-Variable musst Du dafür natürlich auch auslesen können ...

So wie Du es oben gemacht hast geht das natürlich nicht und führt auch nicht zum Ziel.
 
Zurück
Oben