Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Aussortieren in Arrays und Weitergabe auf andere PHP-Seite

Ich habe eine MySQL-Tabelle, die ich mit PHP abfrage.

Code:                   In Zwischenablage kopieren (nur IE)
1">

Meine Fragen:
Gibt es einen eleganteren Weg durch Klicken ein Array innerhalb der gleichen Programmseite zu erzeugen?

Nach meiner Abfrage wird eine Liste mit z.b. 20 Namen angezeigt. Es gibt darin aber zum Beispiel zwei mal Karl Richter, Anhand des Geburtsdatums moechte ich dann den "richtigen" Karl Richter per Klick-Auswahl in das neue Array schicken. Auch mit der Uebergabe des Arrays zur neuen Seite habe ich noch Schwierigkeiten. Mit $_SESSION['array3'] laesst sich das sicher nicht realisieren und die alten SESSION-Befehle arbeiten fehlerhaft.

Ich danke euch fuer die Vorschlaege und vielleicht kann ich ja auch mal weiterhelfen - sicher nicht als Programmierer ;)

Uwe
Hier gehts zum Orginal Eintrag "Aussortieren in Arrays und Weitergabe auf andere PHP-Seite" im Forum

Antworten

Öhm .. warum sollte es mit "$_SESSION['array3']" nicht funktonieren??

Du musst halt nur auf allen Seiten wo du das Array brauchst am Anfang ein ..
Code:                   In Zwischenablage kopieren (nur IE)
2">

... aufrufen. Dann steht dir die Session wunderbar zur Verfügung ...
Also .. ich hab's gerade (nochmal zur Sicherheit) getestet, und es lief ganz wunderbar!
Inwiefern meinst du denn, dass die alten SESSION-Befehle fehlerhaft arbeiten? Wie alt ist in dem Fall "alt" ?

By the way : was genau hast du damit vor? Will nur wissen, ob meine Vermutung wie das ablaufen soll in etwa richtig ist, damit ich dir nen Verbesserungsvorschlag machen kann ... :D


2.

Keine Lösung die zu empfehlen ist, aber ein Array kannst Du über Formulare auch so ohne Session weitergeben...

Code:                   In Zwischenablage kopieren (nur IE)
3">




3.

[quote]Infomatiker postete
>Öhm .. warum sollte es mit "$_SESSION['array3']" nicht funktonieren??

Danke erst mal fuer die superschnelle Reaktion. Wahrscheinlich stelle ich mich zu dumm an die $SESSION-Variable zu initialisieren. Progs sind eigentlich nicht mein Ding, nur wenn man Internet-Seiten baut, gehen die Freunde halt davon aus, dass man auch in saemtlichen Sprachen programmieren kann, jede Option im Bios kennt und in seiner Freizeit die defekten Fernseher der Nachbarschaft repariert ;))

Die "alte" Vorgehensweise war: session_register('array3'). Damit konnte ich umgehen und das Array stand mir wunschgemaess auf den folgenden Seiten zur Verfuegung. Fehler hier: Wenn ich bei der ersten Abfrage bei Kurs 101 zwanzig Eintraege fuer ein Seminar hatte und die ins Array geschrieben wurden und bei der Abfrage von Kurs Nr. 134 - eigentlich duerften da gar keine Werte von Kurs 101 mehr auftauchen - gab es nur 15 gefundene Eintraege, die ins Array geschrieben werden sollten, war das entstandene Array fehlerhaft und behielt seine zwanzig Eintraege. Das habe ich mit session_encode verfolgen koennen. Session_unregister brachte mich nicht weiter, da die Variable dadurch nicht geaendert, geloescht oder freigegeben wurde. Der unset-Befehl half, loeschte jedoch gleich die Zahlen mit, die noch gebraucht wurden.

>By the way : was genau hast du damit vor? Will nur wissen, ob meine Vermutung wie das ablaufen soll
> in etwa richtig ist, damit ich dir nen Verbesserungsvorschlag machen kann ...

Es gibt eine Seminargruppentabelle, in der alle Seminaranmeldungen unter der jeweiligen Kursnummer erfasst werden (jeweils ca. 30 Leute pro Kursnummer). Die Tabelle besteht aus den Spalten: 'Kursnummer', 'Name', 'Vorname', 'Geburtstag' und 'angemeldet am'. Unter den Tisch fallen lasse ich an dieser Stelle die anderen Felder wie Strasse, PLZ, usw. Der Seminarleiter kann die Teilnahme waehrend des laufenden Seminars festhalten. Er gibt die Seminarnummer ein und trifft aus allen dann angezeigten Namen eine gezielte Auswahl der Teilnehmer, die beim Kurs anwesend sind. Nicht Anwesende bleiben aussen vor.

Teilgenommen haben im Kurs 101 Lena Feldmann, Pia Wittmann, noch eine Lena Feldmann und Anne Prues. Die Namen sind bisher - um sie aus der Gesamtheit der Tabelleneintraege auswaehlen zu koennen - als Hyperlinks gestaltet, so das ein Klick darauf zur naechsten PHP-Seite verzweigt, auf der ein Array erstellt wird, in dem nur die Teilnehmer der jeweils gewaehlten Kursnummer erfasst sind. Das Array soll dann zur Speisung einer PDF-Routine genutzt werden.

Nach meiner Vorstellung wuerde ich die Seite immer wieder mit include aufrufen,bis ich alle Teilnehmer erfasst habe. Ich hoffe, man kann mit dieser Beschreibung etwas anfangen.

Koennt ihr mir da auf´s Pferd helfen. Erst mal oben, komme ich sicher weiter :)) Es hakt an zwei Stellen. Wie bekomme ich mein Array3 per $_SESSION auf die nächste Seite herueber? Muss das Fuellen des Arrays ueber den Umweg ueber eine andere Seite laufen oder habe ich auch die Moeglichkeit innerhalb der gleichen Seite Variablen zu uebergeben?

Uwe


4.

Kannste das mal editieren ... ich glaube da stimmt was nicht mit Deinem Zitat!


5.

Zitat:
ende postete
Kannste das mal editieren ... ich glaube da stimmt was nicht mit Deinem Zitat!
Sorry, Du hast Recht. Mit Hilfe des letzten Zitats wollte ich Informatikers Frage beantworten, was ich eigentlich vorhabe.

Ich editiere meinen Thread oben entsprechend. Danke fuer den Hinweis.

Uwe


6.

Also ... das mit der Session ist wirklich einfach!
In den Scripten wo du die Session nutzen bzw. auf sie zugreifen musst, musst du ganz am Anfang

Code:                   In Zwischenablage kopieren (nur IE)
4">

schreiben. Das alte "session_register()" ist absolut out! Es geht jetzt viel einfacher. :)

Code:                   In Zwischenablage kopieren (nur IE)
5">

Wenn du jetzt auf irgendeiner anderen Seite mit der Session arbeiten willst, musst du nur darauf achten, dass ganz am Anfang im Script "session_start();" aufgerufen wird.

Und was den "angekündigten" Verbesserungsvorschlag angeht ... wieso machst du das nicht statt "Hyperlinks" mit Checkboxen? Denen gibst du im Namen der checkbox die jeweilige ID mit, und bei Klick auf den submit-Button erstellst du in der Schleife das Array aus den Einträgen die angeklickt wurden (bzw. schreibst sie gleich in die Datenbank).
Ich habe sowas ähnliches nämlich auch gerade gemacht, allerdings nicht mit Personen ... :D
Bei mir läuft es so ab, dass ich mir aus verschiedenen Modulinformationen entspr. Einträge auswählen kann, und aus denen wird dann ein PDF erstellt, was sich der Kunde dann runterladen kann. Und da hab ich halt auch mit Checkboxen gearbeitet ... klappt auch wunderbar!

So sieht auf der Auswahlseite meine Checkbox-Spalte aus :
Code:                   In Zwischenablage kopieren (nur IE)
6">

Auf meiner Folgeseite, läuft es dann so :

Code:                   In Zwischenablage kopieren (nur IE)
7">

Edit : by the way .. das heisst "info(!!!)matiker" .. also ohne das "r"!
Zum "Informatiker" hat's net gereicht ... :D


7.

Achtung! Nach Hinweis von Ende editierter Text. Das Original liess sich wegen Zeitueberschreitung leider nicht mehr editieren.

[quote]hackklotz postete
Ich habe eine MySQL-Tabelle, die ich mit PHP abfrage.
Code:                   In Zwischenablage kopieren (nur IE)
8">

[/quote] Gesucht wird, nach der Eingabe einer Kursnummer, nach allen Teilnehmern eines Kurses. Diese werden am Bildschirm angezeigt. Die Kurse haben Bezeichnungen wie z.B. 101 oder 134 (gespeichert in der Tabellenspalte Nummern). Durch den Hyperlink wird die Stelle aus Array3 uebergeben, deren Eintraege aus Array3 in ein neues Array geschrieben werden sollen. Dadurch sollen nacheinander aus der Gesamtanzeige aller Teilnehmer eines Kurses, die angewaehlt und in ein neues Array uebergeben werden, die am Kurs teilgenommen haben. Ich hoffe, dass ist verstaendlicher als die alte Beschreibung: "Es gibt darin aber zum Beispiel zwei mal Karl Richter, Anhand des Geburtsdatums moechte ich dann den "richtigen" Karl Richter per Klick-Auswahl in das neue Array schicken."

Mit der Uebergabe des Arrays zur neuen Seite habe ich noch Schwierigkeiten. Mit $_SESSION['array3'] laesst sich das sicher nicht realisieren und die alten SESSION-Befehle arbeiten fehlerhaft. (Fehlerbeschreibung innerhalb des Threads) Wie muss ich die Variable $_SESSION['array3'] an 'auswertung.php' zur Nutzung weitergeben? Gibt es einen eleganteren Weg, als die Kruecke ueber Hyperlinks?

Ich danke euch fuer die Vorschlaege und vielleicht kann ich ja auch mal weiterhelfen - sicher nicht als Programmierer ;)

Uwe


8.

Ähm ... ein weiterer Vorschlag : mach dir für die einzelnen Teilnehmer eine spezielle Datenbank-Tabelle (z.B.: tab_teilnehmer)!
Dann hast du jedem Teilnehmer eine eigene ID zugeordnet, und brauchst dann zum Beispiel nicht solche Krückenfunktionen wie der Abgleich mit dem Geburtsdatum usw. zu machen! Ausserdem ist das wesentlich flexibler, von der besseren Struktur ganz zu schweigen!

So wie du es jetzt hast, würdest du (wenn ich das richtig sehe) auf die Dauer ne recht ansehnliche Datenredundanz, weil es ja sein kann, dass sich der Karl Richter, der da und dort wohnt und am 05.05.1955 geboren ist einige Male mit all diesen Daten in der gleichen Tabelle steht!

Besser wäre da, eine Tabelle zu haben, in der du den netten Herrn genau einmal mit allen Daten ablegst, und in der anderen Tabelle nur noch die ID von ihm dem entspr. Kurs zuweist! Und schon hast du 2 Fliegen mit einer Klappe geschlagen, weil der Karl Richter, der ja am 12.12.1912 geboren ist, eine ganz andere ID hat! :D

Und dann kommst du auch wahrscheinlich mit meinem letzten Hinweis und Codebeispiel wesentlich weiter ... :)


9.

Danke fuer Deine Hilfe. Nach der Ansicht Deines $_SESSION-Aufrufs war alles klar. Bruellllll!!! Manchmal sieht man den Wald vor lauter Baeumen nicht ;)

Zitat:
Infomatiker postete
mach dir für die einzelnen Teilnehmer eine spezielle Datenbank-Tabelle (z.B.: tab_teilnehmer)!

Gute Idee. Da lohnt es sich drueber nachzudenken.

Zitat:
weil der Karl Richter, der ja am 12.12.1912 geboren ist, eine ganz andere ID hat! :D

Manche Dinge erledigen sich durch die statistische Lebenserwartung auch von selbst :))

Muss ich die Checkboxen nicht in Formularen einbauen? Irgendwo hatte ich da schon mal gelesen, dass die Anzahl der moeglichen Checkboxen innerhalb von Formularen begrenzt ist. Es waren um die 30 Elemente.

Vielleicht reichts ja doch irgenwann zum bisher fehlenden "r". :))

Uwe


10.

Zitat:
hackklotz postete
Gute Idee. Da lohnt es sich drueber nachzudenken.

Durchaus ... :)

Zitat:
hackklotz postete
Manche Dinge erledigen sich durch die statistische Lebenserwartung auch von selbst :))

Sag das nicht zu laut ... ich wohn hier in nem Dorf ... da hüpfen doch ab und an auch noch 90 jährige rum ... aber was die "statistische Lebenserwartung" angeht hast du wohl recht! Und wenn unsere Regierung so weiter macht, müssen wir auch mal so alt werden, damit wir überhaupt Anspruch auf Rente haben ... aber das gehört nicht hier her ... :D

Zitat:
hackklotz postete
Muss ich die Checkboxen nicht in Formularen einbauen? Irgendwo hatte ich da schon mal gelesen, dass die Anzahl der moeglichen Checkboxen innerhalb von Formularen begrenzt ist. Es waren um die 30 Elemente.

Hmm .. das kann ich nicht behaupten! Ich hab hier bei meinem Projekt weit mehr als 30 Einträge (momentan 487 .. Tendenz steigend), wenn man die Selektion über alle Einträge macht! Und das läuft problemlos .. kann aber sein, dass das vielleicht bei ner alten HTML/PHP-Version mal der Fall war. Also .. gib ihm !! :D

Zitat:
hackklotz postete
Vielleicht reichts ja doch irgenwann zum bisher fehlenden "r". :))

Ne, so'n richtiger Crack will ich gar nicht werden! Dafür geniesse ich es zu sehr auch mal in der Freizeit was anderes zu machen ... :D


11.

Zitat:
hackklotz postete
Manche Dinge erledigen sich durch die statistische Lebenserwartung auch von selbst :))

>Und wenn unsere Regierung so weiter macht, müssen wir auch mal so alt werden, damit wir überhaupt
>Anspruch auf Rente haben ... aber das gehört nicht hier her ... :D

Falsch! Vergiss das mit dem Rentenanspruch. Wenn unsere Regierung so weitermacht, bekommt jeder Nochnichtrentner, der einen Rentner erschlaegt, erschiesst oder ueberfaehrt, eine Praemie. Diese richtet sich nach der Rentenhoehe des Ablebenden. So! entstehen neue Arbeitsplaetze im Dienstleistungsbereich. Sie sind aufwandsneutral und schaffen darueber hinaus Freiraeume fuer Diaetenerhoehungen, Denkmaeler, die keiner braucht, weitere Regierungsumzuege und vielleicht noch ein paar Auslandseinsaetze mehr. Vorstellbar waere zur "Loesung der Rentnerfrage" (boese, aber die derzeitigen Diskussionen laufen ja, in Anlehnung an andere "Suendenboecke" der deutschen Geschichte, recht aehnlich) auch eine Variante Russisches Roulette. Mit 60 ist eine Patrone in der Trommel des Revolvers und mit jedem zusaetzlichem Lebensjahr gibt`s vom Staat als Geschenk eine dazu. Hah, mit 66 Jahren da faengt das Leben an...

Bevor ich mich weiter ueber den Irrsinn aus Berlin aufrege, werde ich lieber die von Ende und Dir vorgeschlagenen Dinge ausprobieren ;)

Danke fuer Eure Hilfe.

Uwe


Hier gehts zum Orginal Eintrag "Aussortieren in Arrays und Weitergabe auf andere PHP-Seite" im Forum
 
phpforum.de | Impressum