Verstehe ich das richtig: Du hast dein Fontend, das sendet dir beim anklicken per ajax die $kid. Du willst nun die verschiedenen kids, die kommen, in ein Array packen, und dieses Array in deine Session speichern.
Na dan wollen wir mal:
Nicht gut:
PHP-Code:
$_SESSION['kid']=$kid;
---> Lösch die Zeile. Warum? Lies weiter.
Nicht gut:
PHP-Code:
$res = $DB->query_one("SELECT kname,kid FROM kunde WHERE kunde.kid=".$_SESSION['kid']."");
Besser:
PHP-Code:
$res = $DB->query_one("SELECT kname FROM kunde WHERE kid=".$kid);
--> Das ,kid im select ist überflüssig, da du es ja schon hast. In der WHERE nimm doch einfach $kid.
(ich hoffe du filterst dort noch was, oder? Stichwort SQL-INJECTION!).
Soweit ich sehe holst du dir den Namen des kids, oder?
Nicht gut:
PHP-Code:
$_SESSION['kname']=$res;
---> Lösch die Zeile. Warum? Lies weiter.
Nun soll das ganze in der Session gespeichert werden. Am besten du nimmst als key des arrays deine kid-ID (die sollte ja unique sein, oder?)
und als Inhalt der Name.
PHP-Code:
$_SESSION['meine_kids'][$kid] = $res[0];
Damit erstellst du ein array namens meine_kids in deiner Session. Der Key ist deine Kidnummer und der Inhalt ist der Name aus der DB.
Nicht gut:
PHP-Code:
$load['kunde'] .= '<div id="kunde'.$_SESSION['kid'].'">';
$load['kunde'] .= $TEMPLATE->parse('template_kunde',$_SESSION['kid'],$_SESSION['kname']);
$load['kunde'] .= '</div>';
Besser:
PHP-Code:
$load['kunde'] .= '<div id="kunde'.$kid.'">';
$load['kunde'] .= $TEMPLATE->parse('template_kunde',$kid,$res[0]);
$load['kunde'] .= '</div>';
Das kann bleiben:
PHP-Code:
echo $load['kunde'];
Nun hast du in deriner Session immer alle kids, die über die funktion abgefragt wurden.
zum löschen eines namens genügt dann
PHP-Code:
unset($_SESSION['meine_kids'][$kid]);
Um alle aufzulisten genügt
PHP-Code:
foreach($_SESSION['meine_kids'] as $key => $value){
echo $key . " heisst ". $value;
}
und um auf eins zuzugreifen
PHP-Code:
echo $_SESSION['meine_kids'][$key];