Herr_der_Ringe Geschrieben 19. Juli 2005 Teilen Geschrieben 19. Juli 2005 Hallo. Ich habe mal 2 Fragen. Zum einen: Ich habe eine Tabelle mit 759 Datensätzen. Also 759 Zeilen. Wie kann ich es machen, dass pro Seite nur 100 Datensätze angezeigt werden und man per klick (wo auch immer) auf die nächsten 100 Zeilen kommt? Zum Anderen: Ich habe ein Haupt-Script und ca. 8 Unterscripte. Ist es möglich, dass ich das Ganze als Programm mache, also als .exe? Sprich (es geht um ein Frontend) dass dies wie ein Programm über eine .exe aufgerufen wird, die alle nötigen Scripte beinhaltet. MfG HdR Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 19. Juli 2005 Teilen Geschrieben 19. Juli 2005 Ich habe eine Tabelle mit 759 Datensätzen. Also 759 Zeilen. Wie kann ich es machen, dass pro Seite nur 100 Datensätze angezeigt werden und man per klick (wo auch immer) auf die nächsten 100 Zeilen kommt? Du kannst Links definieren, die einen Parameter an Dein Script übergeben, z.B. die Startposition der Datensätze, oder die Seite, die angezeigt werden soll. Dann kannst Du innerhalb Deines Scripts den SQL-Operator LIMIT benutzen, der es erlaubt nur eine bestimmte Zahl an Datensätzen auszulesen (LIMIT Start, Anzahl: "SELECT * FROM tabelle WHERE 1 LIMIT 10,20", um die Datensätze 10-30 zu erhalten... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 19. Juli 2005 Teilen Geschrieben 19. Juli 2005 Hi, Zum Anderen: Ich habe ein Haupt-Script und ca. 8 Unterscripte. Ist es möglich, dass ich das Ganze als Programm mache, also als .exe? Sprich (es geht um ein Frontend) dass dies wie ein Programm über eine .exe aufgerufen wird, die alle nötigen Scripte beinhaltet. Scripte in welcher Sprache? Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 19. Juli 2005 Teilen Geschrieben 19. Juli 2005 Zum Anderen: Ich habe ein Haupt-Script und ca. 8 Unterscripte. Ist es möglich, dass ich das Ganze als Programm mache, also als .exe? Sprich (es geht um ein Frontend) dass dies wie ein Programm über eine .exe aufgerufen wird, die alle nötigen Scripte beinhaltet. PHP -> EXE? Nein. Die Installation müsste eine komplette PHP-Laufzeitumgebung mitbringen und zum Rendern von HTML-Seiten wäre noch immer ein Webbroser nötig. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 19. Juli 2005 Teilen Geschrieben 19. Juli 2005 PHP -> EXE? Nein. Die Installation müsste eine komplette PHP-Laufzeitumgebung mitbringen und zum Rendern von HTML-Seiten wäre noch immer ein Webbroser nötig. Fast richtig. PHP notwendig: ja HTML-Seiten: nein Alternativen sind zum einem PHP-GTK oder ganz simpel, das CLI. Dann kannst alles in ein shellscript (nennt sich unter Windows batch) packen und dann das script starten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 20. Juli 2005 Teilen Geschrieben 20. Juli 2005 Hallo. Ich habe mal 2 Fragen. Zum einen: Ich habe eine Tabelle mit 759 Datensätzen. Also 759 Zeilen. Wie kann ich es machen, dass pro Seite nur 100 Datensätze angezeigt werden und man per klick (wo auch immer) auf die nächsten 100 Zeilen kommt? MfG HdR bei mysql_fetch_array(bla bla<101) und die zweite sache ist -> JAVASCRIPT, die benötigte funktion heisst glaube ich onClick() Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr_der_Ringe Geschrieben 20. Juli 2005 Autor Teilen Geschrieben 20. Juli 2005 @Skills: Da könnte man eigentlich alleine drauf kommen, dass es sich um php handelt-.- @Enrico T.: Wie kann ich denn aus meinen Scripten eine Batch-Datei machen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zirri Geschrieben 20. Juli 2005 Teilen Geschrieben 20. Juli 2005 Dann kannst Du innerhalb Deines Scripts den SQL-Operator LIMIT benutzen, der es erlaubt nur eine bestimmte Zahl an Datensätzen auszulesen (LIMIT Start, Anzahl: "SELECT * FROM tabelle WHERE 1 LIMIT 10,20", um die Datensätze 10-30 zu erhalten... Vorsicht ! Kein SQL-Standard. Funktioniert nur bei einer MySQL. Aber da du ja genau garkeine Infos über dein RDBMS gibst.... gruss Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 20. Juli 2005 Teilen Geschrieben 20. Juli 2005 Vielleicht hätte ich noch schreiben sollen, dass ich weiss, welches RDBMS er verwendet --> MySQL Edit: Aber das wiederum macht eine Standalone-Version Deiner Scripte auch nicht einfacher, da auch ein DBMS mitgeliefert oder eine andere Art der Datenhaltung verwendet werden muss... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr_der_Ringe Geschrieben 20. Juli 2005 Autor Teilen Geschrieben 20. Juli 2005 Die Aufteilung auf der Datensätze auf mehreren Seiten hat sich erledigt, weil => Funzt. Es geht mir nurnoch darum, dass ich das gerne als Batch-Datei hätte.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 20. Juli 2005 Teilen Geschrieben 20. Juli 2005 einfachste Möglichkeit: /absoluter/Pfad/zu/php skriptname.php Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr_der_Ringe Geschrieben 20. Juli 2005 Autor Teilen Geschrieben 20. Juli 2005 Hä? Wie? Wie mache ich das alles denn, das Ganez in eine Batch packen, etc.. ich hab gar keine Ahnung. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 20. Juli 2005 Teilen Geschrieben 20. Juli 2005 du rufst die php.exe auf, mit dem namen der scriptdatei als parameter. schau mal in der hilfe mit php.exe /? oder --h oder so ähnlich. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 20. Juli 2005 Teilen Geschrieben 20. Juli 2005 @Skills: Da könnte man eigentlich alleine drauf kommen, dass es sich um php handelt-.- Naja alternativ hätte es auch ASP.net, ASP, JSP oder CGI sein können Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 20. Juli 2005 Teilen Geschrieben 20. Juli 2005 HTML-Seiten: nein Ich denke man kann davon aussgehen, dass sein (bereits fertiges) Skript zur Ausgabe intensiv von HTML-Formatierungen gebrauch macht. Diese Ausgaben auf eine Konsole zu schreiben oder gar ein komplett neues GUI zu entwickeln ist vermutlich nicht das, was ihm vorschwebte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr_der_Ringe Geschrieben 12. September 2005 Autor Teilen Geschrieben 12. September 2005 *Push* Hallo. Also, es geht nochmal um die Zeilenbegrenzung. Ich habe momentan 750 Testitems in meiner Datebank. Also 750 Zeilen. Ich habe die Anzeige auf 250 begrenzt. Wie stelle ich das am Besten an, dass ich in dem Datenbankkopf z.B. die Zeichen '<' und '>' darstelle und durch ein Klick auf '>' die nächsten 250 bzw. auf '<' die vorigen 250 Zeilen angezeigt werden? Das ist der Code, in dem die Zeilenbegrenzung eingebaut ist: $sql = "SELECT * FROM Testfall WHERE 1 LIMIT 0,250"; $datenbank = "ppsfr_spielwiese"; mysql_select_db($datenbank,$db_handle); if (isset($_GET['suche'])) { $filter = $_GET['suche']; $was = $_GET['was']; $sql = "SELECT * FROM Testfall WHERE ".$was." LIKE '".mysql_escape_string($filter)."%'"; } else $sql = "SELECT * FROM Testfall WHERE 1 LIMIT 0,250"; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr_der_Ringe Geschrieben 12. September 2005 Autor Teilen Geschrieben 12. September 2005 *Sorry, Edit-Button ist nicht vorhanden-.-* Ich habe jetzt mal als Zeichen '<' und '>' eingefügt. Wenn man auf '<' klickt, soll er die vorigen 250 Datensätze anzeigen, bzw. durch klicken auf '>' soll er die nächsten 250 Datensätze anzeigen. Wie stelle ich das am Besten an? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 12. September 2005 Teilen Geschrieben 12. September 2005 Hattest Du nicht in Post #10 geschrieben, dass diese Aufteilung auf mehrere Seiten bereits funktioniert? Wie hast Du das denn gelöst? Jetzt sag nicht, Du hast für jede Seite ein eigenes SQL-Statement gebastelt $itemsPerPage = 250; $aktPage = $_REQUEST['aktPage']; if ($aktPage > 0) { $vonPos = ($aktPage-1) * $itemsPerPage; } else $vonPos = 0; $query = "SELECT .... LIMIT ".$vonPos.",".$itemsPerPage; [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 12. September 2005 Teilen Geschrieben 12. September 2005 $sql = "SELECT * FROM Testfall WHERE 1 LIMIT 0,250"; Statt der 0 nimmst du eine Variable. Beim klick auf > addierst du 250 dazu und übergibst den neuen Wert, bzw bei < andersrum. Dann mußt du nur noch abfangen, das du nicht unter 0 und über die Datensatzanzahl kommen kannst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr_der_Ringe Geschrieben 12. September 2005 Autor Teilen Geschrieben 12. September 2005 @Monty82: Ja, es funzt in dem Sinne (auch damals in dem Sinne, wohl falsch ausgedrückt) dass ich mir nur eine gewissen Anzahl an Datensätzen ausgeben lasse. Das geht (In dem Fall die ersten 250). Nur, ich will das so machen, dass ich durch Klicken auf '<' und '>' automatisch die nächsten bzw. vorigen 250 Datensätze sehe. Das ging damals nicht, hab mich auch net weiter bis jetzt drum gekümmert. Aber jetzt wäre es ganz gut, wenns geht. @ Wolle: Also, sagen wir als Variable nehme ich x. Diese Variable hat Standardmäßig den Wert '0'. Dieser soll, bei Klick auf '>' automatisch auf x+250 gesetzt werden. Das versteh ich soweit. Aber wie mache ich das, dass er bei Klick auf '>' die Variable 'x' verändert? Wie mache ich das? OnClick?? Und naja, bei der Einschränkung (!= < 0) bzw. bei den aktuellen Datensätzen (!= > 759) muss ich halt mal sehen, ob und wie ich das hinbekomme. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 12. September 2005 Teilen Geschrieben 12. September 2005 Ich mach's meistens so, es gibt bestimmt auch andere Möglichkeiten: $itemCount = 795; //Hier bitte die Anzahl der gefunden Zeilen ermitteln... $itemsPerPage = 250; $pageCount = ceil($itemCount/$itemsPerPage); $aktPage = $_REQUEST['aktPage']; if ($aktPage > 0) { $vonPos = ($aktPage-1) * $itemsPerPage; } else $vonPos = 0; if ($aktPage > 1) echo "<a href=\"".$PHP_SELF."?aktPage=".($aktPage - 1)."\">zurück</a> "; if ($aktPage < $pageCount) echo "<a href=\"".$PHP_SELF."?aktPage=".($aktPage + 1)."\">vor</a> "; $query = "SELECT .... LIMIT ".$vonPos.",".$itemsPerPage; [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr_der_Ringe Geschrieben 12. September 2005 Autor Teilen Geschrieben 12. September 2005 *EDIT-Button not available;) * Also, ich denke mal ich bin schon bissl weitergekommen. Fehlt wohl mal wieder der letzte Schliff:D Also. Hier seht ihr, was bei dem Klick auf '<' passiert: <td colspan='1' heigth='20' class='headline12' align='center'> <a href='testdatenbank.php?action=x'><</a> <a href='testdatenbank.php' style='color:white'>></a> </td> Dieses 'Action' wird dann aufgerufen: if (!empty($_GET['action']) && $_GET['action'] == "x") { $x = $x + 250; echo $x; <= Das 'x' habe ich weiter oberhalb als $x = 0; definiert. Aber hier wird, korrekterweise, ein 250 ausgegeben. Dürfte bis hier also funktionieren! $sql = "SELECT * FROM Testfall WHERE 1 LIMIT ".$x.",250"; if (!mysql_query($sql)) { die("MySQL-Fehler:".mysql_error()); } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Herr_der_Ringe Geschrieben 12. September 2005 Autor Teilen Geschrieben 12. September 2005 *EDIT* Es funktioniert. So, wie ich es geschrieben habe (habs nur verrafft, dass es geht-.-). Aber: Standard wird angezeigt: 0-250 Durch den klick: 250-500 Durch einen weiteren Klick: SOLLTE 500-750. Aber er zeigt weiterhin 250-500 an. Jetzt andersrum: <a href='testdatenbank.php?action=y'><</a> Führt zu der Action: if (!empty($_GET['action']) && $_GET['action'] == "y") { $y = $x - 250; echo $y; $sql = "SELECT * FROM Testfall WHERE 1 LIMIT ".mysql_escape_string($y).",250"; if (!mysql_query($sql)) { die("MySQL-Fehler:".mysql_error()); } } Soll heissen: Aktuell hat x den Wert 250. So soll er wieder auf 0 kommen. Aber, das Problem ist, dass er x irgendwie nicht richtig speichert. Ich definiere am Anfang des Scriptes $x=0; Dadurch, dass ich den Wert x auf 250 setze, speichert er das aber nur in diesem Action-Tag. *EDIT (Diesmal gehts;))* Ich habe am Anfang des Scriptes das $x=0; entfernt. Er zeigt mir trotzdem nach dem klicken auf '>' die Datensätze 250-500 an. Er gibt mir zwar ein Notice aus (Undefined Variable x), aber es geht. Bei einem weiteren Klick auf '>' zeigt er mir aber trotzdem die 250-500 an. Nicht die 500-750. Und das $x wird weiterhin nicht richtig gespeichert. Er versucht bei $y nämlich die datensätze -250-0 anzuzeigen-.- Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 12. September 2005 Teilen Geschrieben 12. September 2005 OK, auf Deine Bitte hin nochmal zum Mitschreiben $itemsPerPage = 250; $startPos = $_REQUEST['startPos']; if (!($startPos >= 0)) $startPos = 0; $query = "SELECT ... FROM ... LIMIT ".$startPos.",".$itemsPerPage; ... //Und hier jetzt die "Navigationsleiste" if ($startPos >= $itemsPerPage) { echo "<a href=\"".$PHP_SELF."?startPos=".$startPos-$itemsPerPage."\">«</a> "; } //Hier kannst Du jetzt noch Abfangen, ob überhaupt noch weitere Ergebnisse vorhanden sind... echo "<a href=\"".$PHP_SELF."?startPos=".$startPos+$itemsPerPage."\">»</a> "; [/PHP] Edit: Vielleicht noch zur Erklärung: Du musst den aktuellen Startwert dynamisch wieder mit an Dein Script übergeben, damit Du überhaupt einen Wert hast, der bei jedem Blättern erhöht oder erniedrigt werden kann... Sonst wäre das immer 0, da PHP sich die Variablen nicht automatisch zwischen verschiedenen Seitenaufrufen merken kann (wenn man ohne Sessions arbeitet), aber das hast Du ja bereits gemerkt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.