Ich glaube du unterschätzt die Datenbank bzw. die Server Performance mächtig oder ich habe dein Anliegen falsch verstanden.
So wie ich das verstanden habe, machst du eine Datenbank Abfrage, um alle Gruppen in der Übersichtsseite anzuzeigen. Nun möchtest du auf „Gruppe editieren“ klicken und auf der neuen Seite keine weitere Abfrage mehr machen, sondern am Besten die Daten von vorhin mitnehmen.
Globals würde ich schon einmal empfehlen zu vergessen. 1. sind die nur zur Laufzeit gültig und 2. Bad-Practice.
Sessions würden gehen, aber sind auch Bad-Practice. Mit Sessions solltest du nur wirklich IMMER wieder kehrende Sachen speichern wie z.B. Username oder irgendwelche Werte die du später mal für checks brauchst.
Statt in den SQL-Abfragen zu sparen, solltest du lieber auf eine performante Query setzen.
Statt:
$sql = $db->query( 'SELECT * FROM ..' );
$fetch = $sql->fetch();
$sql2 = $db->query( 'SELECT * FROM .. WHERE .. = ' . $sql['.._id'] );
$fetch2 = $sql2->fetch();
solltest du lieber die volle Macht ausnutzen, auch wenn die Faulheit einem was anderes sagt.
$query = $db->query( 'SELECT id, name, .. , .. FROM groups JOIN [...] ON ( groups.id = [...].group_id ) );
$groups = $query->fetch_all();
// Die "Gruppe Editieren" Seite hat dann als $_GET Variable die Gruppen ID und mach selbst eine Query, statt die von vorhin, also von der anderen Seite, mitzunehmen..
$group_id = intval( $_GET[ 'group_id'] );
$query = $db->prepare( 'SELECT id, name, .. , .. FROM groups JOIN [...] ON ( groups.id = [...].group_id ) WHERE groups.id = :group_id );
$query->execute( array( ':group_id' => $group_id ) );
$group = $query->fetch();
Also selbst wenn du ALLE Spalten auswählst, nicht „*“ verwenden.
Bei Relationen mit anderen Tabellen (LEFT/RIGHT/INNER) JOIN verwenden, auch wenn es anfangs kompliziert aussieht, ist es relativ einfach zu verwenden und SEHR mächtig! Dadurch senkt man die Anzahl der Queries und kann die Vorteile der schnellen Datenbanken ausnutzen.
Wenn du dich daran halltest, sollte es nicht im Geringsten etwas ausmachen, dass du zwei Queries mit ähnlichen Inhalten auf zwei unterschiedlichen Seiten machst. Besser als die Daten als Sessions zu übergeben oder anderweitig…
gruß