php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.06.2008, 19:15  
Neuer Benutzer
 
Registriert seit: 23.06.2008
Beiträge: 12
loki0815
Standard Funktion für sukzessive Ausgabe gesucht

Hi.

Ich hab nen Algorithmus, der Kombinationen absucht, und die Lösung in ne Datenbank schreibt. Am Ende des Algodurchlaufs wird dann ne Tabelle ausgegeben, die die Lösungen mit den jeweiligen Werten ausgibt. Ich würde jetzt die Ausgabe gerne insofern ändern, dass nach und nach die Tabelle mit Lösungen gefüllt wird. Also wenn in die DB eine Lösung geschrieben wird, oder wenn der Algo eine Lösung findet soll diese auch sofort ausgegeben werden; die Tabelle soll sich also nach und nach füllen.

Gibts ne Funktion für sowas oder was wäre ein sinnvoller Ansatz dafür?

Danke schonmal.

Gruß
loki0815 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.06.2008, 19:56  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Naja ... durch ob_flush() und flush() lässt sich der Inhalt des Ausgabepuffers direkt ausgeben. Vielleicht hilft dir das weiter.
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 26.06.2008, 20:17  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Bei ner echten Tabelle eher nicht. Meines Wissens werden HTML Tabellen erst dargestellt, wenn Sie vollständig sind. Das hat auch immer zu Problemen mit Tabellenlayouts geführt.
Kannst es aber mit divs probieren...
nikosch ist offline  
Alt 26.06.2008, 20:23  
Neuer Benutzer
 
Registriert seit: 23.06.2008
Beiträge: 12
loki0815
Standard

hmmm.....

wie wärs damit: sobald eine Zeile in die DB hinzugefügt wird wird eine Zeile der Tabelle hinzugefügt, bzw. wenn Tabellen erst dargestellt werden wenn sie vollständig sind, wird für jede hinzugefügte Zeile der DB eine eigene Tabelle dargestellt.....
loki0815 ist offline  
Alt 26.06.2008, 21:46  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

@loki: Du mußt php schon im Kontext des Seitenaufrufs betrachten. Es sei denn, Du willst das Script ewig lange laufen lassen.
Kannst Du mal Hintergrundinfos zu der ganzen Sache geben, bin mir nicht sicher, ob Du da mit php auf dem richtigen Dampfer bist.
nikosch ist offline  
Alt 27.06.2008, 09:33  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo loki0815,

um eine Tabelle während des Algorithmus Durchlaufs zu erweitern müssten wir erstmal etwas über das Programm erfahren:
Wie lange läuft das Programm?
In welchem Kontext wird es aufgerufen? (Cronjob, CLI, HTTP-Anfrage des Browsers, ...)

Ohne Antwort auf diese Fragen zu haben, fällt mir folgende mögliche Lösungen ein:
Code:
Du rufst im Browser http://example.com/index.php auf.
Als Antwort erhälst du eine HTML-Tabelle, die bereits die Spaltennamen der "Algotabelle" enthält.
(Tabelle ist bis zu </table> "fertig")

Auf der Seite gibt es einen Button "Start calculation".
Dieser Button erhält ein JavaScript onClick-Event, welches einen AJAX-Request anstößt.
Der AJAX-Request ruft nun dein Programm auf, das die Ergebnisse in die DB speichert.
Danach wird jede Sekunde per AJAX-Request ein neues Programm aufgerufen, welches die DB-Ausliest. (result.php)
Das Programm erzeugt aus den DB-Inhalten die nötigen Daten für die Tabelle von index.php
Das Datenformat ist egal, ich empfehle Json.
Der JavaScript-Code erzeugt aus den ankommenden Daten die Passenden Spalten und
fügt diese dann an die jeweils letzte Zeile in der Tabelle an
FERTIG
Ich halte diese Vorgehen allerdings für ziemlichen Quatsch, da es nicht unbedingt notwendig ist, der Tabelle bei ihrem Aufbau zuzugucken.
phpdummi ist offline  
Alt 27.06.2008, 11:28  
Neuer Benutzer
 
Registriert seit: 23.06.2008
Beiträge: 12
loki0815
Standard

Hi.

Hier noch ein paar Infos. Die durchschnittliche Laufzeit wird im allgemeinen verhältnissmäßig lang sein, es geht um einen Lösungsraum von ca. mindestens mehr als 2^30 möglichen Lösungen, und das wird wohl seine Zeit brauchen.

Es geht um ein Kombinationsproblem, das gelöst werden soll. Der Algorithmus findet löungen und bewertet diese und gibt die Lösungen mitsamt bewertung aus. Das Ganze ist aufgebaut in 2 php files. Die eine ist die GUI für die User Eingabe, die zweite ist dann der Algorithmus und die Lösungsausgabe. Wie gesagt ist bisher die Ausgabe durch eine Tabelle realisiert, aber das muss nicht sein. Das Ganze ist eingebettet in ein größeres webbasiertes Softwarepaket, das komplett in php implementiert ist.

In welchem Kontext wird es aufgerufen...hmmm, ich kann mit Cronjob und CLI leider nichts anfangen, deshalb vermute ich, dass es mittels HTTP Anfrage läuft..?!
Die zweite PHP Datei wird mittles
PHP-Code:
<form action="..."
aufgerufen. Das Ganze läuft mit IE7, nicht mit Firefox, und ist nicht keine Webanwendung in dem Sinne, dass es auf nem Webspace auf ner Website läuft.

Zu deinem Code...den Browseraufruf...statt ecample.com meine url..? Denn bei Aufruf der url, die du angegeben hast tut sich nichts (not found usw.)....


Noch was. Während der Algorithmus läuft wird das erste PHP file angezeigt. Erst wenn der Algo fertig ist, und der Code sich an die AUsgabe macht wird das Fenster aufgerufen, in dem die TAbelle ausgegeben wird.
loki0815 ist offline  
Alt 27.06.2008, 13:13  
Neuer Benutzer
 
Registriert seit: 23.06.2008
Beiträge: 12
loki0815
Standard

Hi nochmal.

Mir kam gerade ne andere Idee:

Da bei vielen Lösungen eine riesen Tabelle entstehen würde, wäre es wohl besser, wenn immer die beste Lösung angezeigt werden würde, und danach immer nur Lösungen, die besser sind. Also zum Beispiel ist die erste gefundene Lösung am Anfang die beste. Danch ist z.b. die 5. die beste, also wird in der Tabelle die erste und die fünfte Lösung dargestellt. Dann wird in der Tabelle immer die folgende abgesuchte Lösung gezeigt (nur die Nummer). Aber in die Tabelle permanent hinzugefügt werden aber nur Lösungen, die besser sind als die letzte beste gefundene.....

Habt ihr n paar ansätze? Geht das mit PHP? Wohl nicht. Was dann? JS?

Danke
loki0815 ist offline  
Alt 27.06.2008, 14:38  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wieso willst du eigentlich diese ganzen Werte berechnen und sofort ausgeben. Reicht es nicht die Berechnung einmal durch zuführen und dann die Ausgabe zu machen? Vor allem müssen so große Daten wirklich jedes mal neu berechnet werden? Reicht es nicht die ein einziges mal zu berechnen. Und über 1 Milliarde Ergebnisse in einer HTML Tabelle anzeigen zu lassen halte ich für sehr unrealistisch. Allein die Datenmenge die dabei übertragen werden muss. Das schaut doch keiner durch?

Willst du nicht verraten was du vor hast, vielleicht können wir dir dann eine bessere Lösung sagen.
Flor1an ist offline  
Alt 27.06.2008, 14:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich hoffe Du hast das falsch verstanden Razor, 2^30 Möglichkeiten, aber doch wohl nicht Lösungen. Sonst: Joah 18GB, alleine für <tr><td></td></tr> Hihi. Könnte paar Minuten dauern die Übertragung - schon was vor, bis die Sonne explodiert? LOL.

@loki0815: Du bist so allgemein, woher sollen wir wissen, was Dein "Algo" berechnet und wie der sortiert? Ich sehe auch immer noch nicht den Zusammenhang zwischen Berechnung und Ausgabe.
Du solltest für solche Berechnungen auch ernsthaft eine andere Sprache in Betracht ziehen.
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
[Erledigt] Funktion zum (de)chiffrieren gesucht bonsaikatze PHP Tipps 2008 6 28.05.2008 06:13
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
Class -- Funktion Creativ PHP Tipps 2005 2 30.03.2005 23:10
Funktion Arithmetisches Mittel gesucht Kort PHP Tipps 2005 8 04.02.2005 21:58
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
Funktion zum kürzen von Strings? PHP Tipps 2004-2 2 08.12.2004 19:34
Sortierung der Ausgabe PHP-Fortgeschrittene 3 08.10.2004 09:22
[Erledigt] sql syntax error in funktion, kann aber nix finden :( PHP Tipps 2004 10 20.07.2004 19:19
[Erledigt] Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51
funktion gesucht PHP Tipps 2004 4 04.07.2004 11:49


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.