Pittiplatsch Geschrieben 28. November 2002 Geschrieben 28. November 2002 +--------------------------------------------------------------------------+ | Auswahl 1 | Auswahlfeld 1 | Auswahl 2 | Auswahlfeld 2 | Button | +--------------------------------------------------------------------------+ |...............'Vergleich 1'................|..................'Vergleich 2'..............................| +--------------------------------------------------------------------------+ |...............'Vergleich 3'................|..................'Vergleich 4'..............................| +--------------------------------------------------------------------------+ : So in etwa sieht meine Tabelle aus. Jetzt soll beim Betätigen des Buttons die Tabelle anhand der Auswahl 1 und 2 mit Daten aus einer Datenbank gefüllt werden. Jedes Mal eine andere Zelle. Beim ersten mal Zeile1 Spalte1, beim zweiten mal Zeile1 Spalte2, und so weiter. Hat jemand 'ne Ahnung wie sowas geht ? Zitieren
beetFreeQ Geschrieben 28. November 2002 Geschrieben 28. November 2002 Kannst du das vielleicht genauer erklären? Ich verstehe nicht so wirklich, was du da genau vorhast, und vor allem, was diese Auswahlen bedeuten... Zitieren
Net-srac Geschrieben 28. November 2002 Geschrieben 28. November 2002 Also wenn ich dich jetzt rrchtig verstanden hab, brauchst du ja erstmal eine Tabelle mit 5 spalten. Index Vergleich1 Vergleich2 Vergleich3 Vergleich4 Index stellst du als Autoinkrement in deiner datenbank ein und dann machst du mit dem INSERT-SQL Befehl die Einfügeoperation in die Tabelle. Bei Insert fügt er immer unten an. Um Index brauchst du dich nicht zu kümmern, das wird automatisch um eins erhöht. Also rufst du bei jedem Buttonklick die MySQL_Query auf. bsp: insert into tabelle_vergleich values ('NULL,Vergleich1,Vergleich2...') Zitieren
Pittiplatsch Geschrieben 28. November 2002 Autor Geschrieben 28. November 2002 Auswahl1 ist der Zeitraum und Auswahl2 sind Produkte. Die Auswahlfelder sind Drop-Down-Felder, in denen die, in der DB enthaltenen, Zeiträume bzw die Produkte angegeben sind. Jetzt will ich einen Vergleich starten, bei dem ich selber entscheiden kann, ob ich verschiedene Zeiträume für ein Produkt sehen will, oder ob ich einen Zeitraum für verschiedene Produkte sehen will.:confused: Das Thema ist: Sobald ich eine Auswahl getroffen habe und sie mir anzeigen lasse, wird das evtl. vorhandene vorherige Ergebnis logischerweise überschrieben. Dadurch sehe ich immer nur die Liste für einen Zeitraum und ein Produkt. Das ist aber für einen Vergleich irgendwie schlecht:( Zitieren
Net-srac Geschrieben 28. November 2002 Geschrieben 28. November 2002 Schonmal probiert, wie ich es beschrieben hab? Wenn du mit Insert etwas einfügst überschreibt er doch nix?! Zitieren
Pittiplatsch Geschrieben 28. November 2002 Autor Geschrieben 28. November 2002 Hallo Net-srac, Der Übersichtlichleit wegen sollen es nur 2 Spalten sein. Die Anzahl der Zeilen ist unbekannt, je nach dem wieviele Dinge miteinander verglichen werden sollen. Dies können 5 sein, aber auch mehr oder weniger. Wurden 2 Auswahlen nacheinander getroffen, wird bei der dritten Auswahl eine neue Zeile angelegt. Zumindest soll es so funktionieren.:confused: Zitieren
Pittiplatsch Geschrieben 28. November 2002 Autor Geschrieben 28. November 2002 Net-srac Sorry, hab wohl vergessen zu sagen, das die Tabelle in PHP und HTML aufgebaut und mit den Daten aus der DB gefüllt wird Zitieren
Net-srac Geschrieben 28. November 2002 Geschrieben 28. November 2002 Ja, sorry. Hatte übersehen, das eins Auswahl und das andere Auswahlfeld ist. Also, dann machst du deine Tabelle halt mit 2 Spalten. Den vorher beschriebenen Index kannst du weglassen. In diese Tabelle fügst du dann immer die Value des Auswahlfeldes ein. Mit Insert Into. Von der Logik her sollte das reichen um deine Daten da einzutragen. Natürlich mußt du dann noch ein Formular bauen, in dem du die Abfragen stellst, die du gerne Anschauen möchtest (Zeiträume etc.) Was brauchst du jetzt noch? Oder woran hängts? Code? Zitieren
beetFreeQ Geschrieben 28. November 2002 Geschrieben 28. November 2002 Ich würd's so machen: Um die alten Ergebnisse behalten zu können, brauchst du eine weitere Tabelle, in der jeweils folgendes gespeichert wird: ein eindeutiger Wert, der den grad aktiven Surfer markiert und die jeweiligen SQL-Abfragen, die schon abgefeuert wurden. Beim ersten Aufruf des Formulars generierst du dann halt einen eindeutigen Wert, der den aktiven Surfer identifiziert (damit andere gleichzeitig aktive Surfer nicht die Abfragen der anderen aus der Tabelle bekommen) - am besten nimmst du einen Timestamp und verschlüsselst ihn etwas, damit der Wert auch eindeutig ist. Diesen übergibst du dann immer per Post oder Get, damit er bei jedem Neuaufruf zur Verfügung steht. Wenn du eine Abfrage startest, baust du sie erst in SQL zusammen und schreibst sie dann zusammen mit der Benutzer-ID in die Tabelle. So kannst du dann bei jeden erneuten Aufruf erstmal in der Tabelle nachschauen, ob schon Abfragen des Benutzers da sind und diese nacheinander abfrühstücken und in der HTML-Tabelle anzeigen lassen. Danach wird dann die grad aktuelle Abfrage ausgeführt und natürlich auch in die MySQL-Tabelle geschrieben... Um die Tabelle zwischendurch auch mal von alten Einträgen zu befreien, kannst du ja auch noch einen Timestamp mit reinschreiben, und bei jedem Formularaufruf die alten Einträge mit löschen lassen... Hoffe, das war einigermaßen verständlich ... - sonst immer fragen! Zitieren
Pittiplatsch Geschrieben 28. November 2002 Autor Geschrieben 28. November 2002 Also wenn ich das richtig verstehhe, sollte ich nach Möglichkeit diese Vergleichsdaten in einer extra Tabelle in meiner DB abspeichern und von dort aus in ein Formular übertragen ? Zitieren
beetFreeQ Geschrieben 28. November 2002 Geschrieben 28. November 2002 Originally posted by Pittiplatsch Also wenn ich das richtig verstehhe, sollte ich nach Möglichkeit diese Vergleichsdaten in einer extra Tabelle in meiner DB abspeichern und von dort aus in ein Formular übertragen ? Jo genau - oder besser gesagt die SQL-Statements, mit denen du die Vergleichsdaten bekommst! - oder du speicherst da nur die in den Auswahlen ausgewählten Werte ab und baust die Statements im Script wieder zusammen!... - du kannst natürlich auch als Alternative eine Session benutzen und da mit einem Array arbeiten oder so, aber ich denke die Datenbank-Lösung ist am Komfortabelsten... Zitieren
Pittiplatsch Geschrieben 28. November 2002 Autor Geschrieben 28. November 2002 So, bin gerade dabei, via php diese Tabelle anzulegen. Beim Aufruf der Vergleichsseite legt php die Tabelle an. Bei jeder neuen Auswahl werden die Daten in der Tabelle gespeichert, und dynamisch in die Seite integriert. Beim Verlassen der Seite wird die Tabelle gelöscht. So hat man beim nächsten Seitenaufruf nicht schon irgendwelchen Mist in der Seite zu stehen. Wenn ich mir das alles so recht überlege, ist das die beste idee überhaupt. Ist vor allem nicht so umständlich, wie ich gedacht hab. Vielen Dank für die promte und prima Hilfe. Ersparrt mir 'ne Menge Kopfschmerzen. Zitieren
beetFreeQ Geschrieben 28. November 2002 Geschrieben 28. November 2002 Originally posted by Pittiplatsch So, bin gerade dabei, via php diese Tabelle anzulegen. Beim Aufruf der Vergleichsseite legt php die Tabelle an. Bei jeder neuen Auswahl werden die Daten in der Tabelle gespeichert, und dynamisch in die Seite integriert. Beim Verlassen der Seite wird die Tabelle gelöscht. So hat man beim nächsten Seitenaufruf nicht schon irgendwelchen Mist in der Seite zu stehen. Wenn ich mir das alles so recht überlege, ist das die beste idee überhaupt. Ist vor allem nicht so umständlich, wie ich gedacht hab. Vielen Dank für die promte und prima Hilfe. Ersparrt mir 'ne Menge Kopfschmerzen. Nix zu danken - das mit dem bei Seitenaufruf erstellen ist mir noch garnicht in den Kopf gekommen ... - solang du es dann auch sicherstellen kannst, daß die Tabelle bei Verlassen auch bestimmt gelöscht wird... - und dran denken, daß du einen eindeutigen zufälligen Tabellennamen wählst - denn sonst würden nachher mehrere User dieselbe Tabelle benutzen und sich beim Erstellen und Löschen in die Quere kommen! Zitieren
Pittiplatsch Geschrieben 28. November 2002 Autor Geschrieben 28. November 2002 Das mit Erstellen und löschen klappt schon. , ich gebe der Tabelle den Namen 'Daten' und hänge den Login-Namen mit an. Hat ja schließlich jeder seinen eigenen. So gibt es dabei keine Konflikte Bei dem Rest bin ich gerade am Basteln. Zitieren
Pittiplatsch Geschrieben 29. November 2002 Autor Geschrieben 29. November 2002 Hm, jetzt klappt das zwar mit erstellen und löschen der Tabelle. Jetzt kommt aber wieder das Prob mit den Daten. Ich habe verschiedene Zeiträume und verschiedene Produkte. Zu jedem Produkt existieren in diesem Zeitraum mehrere Einträge. Wenn ich jetzt ein Produkt und einen Zeitraum auswähle, wird eine Tabelle mit allen seinen Datensätzen erstellt und ausgegeben. Das hat ja auch schon funktioniert. Wenn ich jetzt aber ein weiteres Produkt und einen Zeitraum wähle, soll das Ergebnis dieser Auswahl ZUSÄTZLICH mit ausgegeben werden. Und genau das ist das eigentliche Problem. Das vorhandene Ergebnis wird überschrieben. Und wenn ich alle gefilterten Daten in eine Tabelle speichere, und dann anzeigen will, gibt er sie mir nur als eine einzige Tabelle (logischerweise) wieder aus und nicht als mehrere (eine je Auswahl). Hat jemand 'ne Ahnung, wie sowas funktionieren könnte ????? :confused: Zitieren
beetFreeQ Geschrieben 29. November 2002 Geschrieben 29. November 2002 Hmm, also die einfachste Möglichkeit wäre es doch, in der MySQL-Tabelle abzufragen, ob schon "alte" Ergebnisse vorhanden sind, und diese dann per Schleife Zeile für Zeile auszulesen, die Ergebnisse jeweils in eine eigene HTML-Tabelle zu schreiben und dann nach der Schleife die neue Abfrage auszuführen, auch in eine HTML-Tabelle zu schreiben und natürlich in die MySQL-Tabelle zu schreiben... Wenn du das allerdings in HTML zweispaltig machen willst, nimmst du halt ne äußere Tabelle und läßt in der Schleife eine Boolean-Variable mitlaufen, die z.B. wenn sie true ist den HTML-Code so baut, daß es die erste Spalte wird und die Variable auf false setzt, und wenn sie auf false ist, wird der HTML-Code für Spalte zwei gemacht und die Variable auf true gesetzt... Oder war dein Problem jetzt ein anderes? edit: Oh, hab grad gesehen, daß es wohl was anderes ist: Du solltest in der temporären MySQL-Tabelle nicht die gesamten gefilterten Datensätze speichern, sondern nur die Filterbedingungen - also am Besten das SQL-Statement, mit dem du an die gefilterten Datensätze kommst! Das Ding führst du dann nämlich in der PHP-Datei einfach neu aus... - so hast du ale Ergebnisse säuberlich voneinander getrennt... Kannst allerdings auch einfach doch die gefilterten Daten speichern und noch als Extra-Spalte jeweils eine Zahl mitgeben, die angibt, zu welcher Abfrage die Ergebnisse gehören... - das wäre aber etwas unpraktisch, wo du sowieso schon redundante Daten speicherst... - die Idee mit dem Speichern der Abfragen und nicht ihrer Ergebnisse ist da IMO sinnvoller und auch schneller in der Ausführung später... Zitieren
Pittiplatsch Geschrieben 29. November 2002 Autor Geschrieben 29. November 2002 Klingt interessant, ich probier es einfach mal Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.