|
You last visited: Today at 05:22
Advertisement
[PHP] Tabelle mit SQL Daten füllen
Discussion on [PHP] Tabelle mit SQL Daten füllen within the Web Development forum part of the Coders Den category.
04/23/2014, 09:49
|
#1
|
elite*gold: 241
Join Date: Dec 2011
Posts: 1,803
Received Thanks: 1,301
|
[PHP] Tabelle mit SQL Daten füllen
Hallo,
ich hab folgendes Problem.
Ich habe eine SQL Tabelle die ich mithilfe von PHP ausgeben lasse.
Allerdings ist die Datenmenge so hoch, dass ich nicht mehr als 5k Reihen anzeigen lassen kann ohne das sich mein Browser aufhängt bzw. der Bildschirm weiß bleibt. Insgesamt sind 80k+ Datenreihen vorhanden.
Ebenso ist ein Filtersystem mittels Javascript eingebaut.
Von den Server Ressourcen sollte dies kein Problem sein, die vollen 80k+ Reihen anzuzeigen(32gb ram, 128gb ssd cache uvm.), deshalb frage ich mich weshalb er hier streikt?
Gibt es hier möglichkeiten die Datenmenge asynchron oder so zu laden, sodass 1. die Perfomance gut bleibt und 2. ich nicht alle 80k+ Datenreihen jedesmal laden muss?
Insgesamt läd der Browser cs. 250mb jedesmal herunter, wenn alle Datensätze angezeigt werden sollen und das ist für unterwegs... nja unpraktisch ^^
Falls mir jemand was empfehlen kann oder eine Idee hat die zur Lösung beiträgt wäre ich euch sehr dankbar
Mfg
|
|
|
04/23/2014, 10:02
|
#2
|
elite*gold: 22
Join Date: Feb 2012
Posts: 576
Received Thanks: 332
|
Dein Browser wird streiken weil der Cache überlagerd wird.
Wieso willst du 80k gleichzeitig anzeigen?
Eines der Hauptvorteile eienr Datenbank ist das ich durch eine Abfrage schnell ein Ergebnis bekomme.
Ich würde mir eine Art MYSQl Monitor basteln.
Links:
Allgemeine Infos:
Anzahl der Einträge etc
Hauptspalte nen sql such query generator. o.ä.
Du wirst ja selber am besten wissen was du von den 80k Zeilen brauchst bzw welche du gerade sehen willst
|
|
|
04/23/2014, 10:11
|
#3
|
elite*gold: 241
Join Date: Dec 2011
Posts: 1,803
Received Thanks: 1,301
|
Quote:
Originally Posted by VisionEP1
Dein Browser wird streiken weil der Cache überlagerd wird.
Wieso willst du 80k gleichzeitig anzeigen?
Eines der Hauptvorteile eienr Datenbank ist das ich durch eine Abfrage schnell ein Ergebnis bekomme.
Ich würde mir eine Art MYSQl Monitor basteln.
Links:
Allgemeine Infos:
Anzahl der Einträge etc
Hauptspalte nen sql such query generator. o.ä.
Du wirst ja selber am besten wissen was du von den 80k Zeilen brauchst bzw welche du gerade sehen willst
|
Wenn ich dich richtig verstehe, würdest du es so umschreiben, dass die SQL Abfragen aus den Filtern Generiert werden?
Code:
SELECT * FROM X.Tabelle Where X._STATUS = 'meinFilterWert';
Allerdings werden trotzdem dann mehrere zehntausend Datensätze geladen.
Und die Tabelle soll möglich Userfreundlich sein, damit auch personen mit arbeiten können dich überhaupt keine Ahnung haben von Datenbanken.
Evtl. könnte man Datensätze erst laden wenn die Tabelle diese anfordert? Geht sowas?
|
|
|
04/23/2014, 10:28
|
#4
|
elite*gold: 0
Join Date: Aug 2013
Posts: 15
Received Thanks: 2
|
PHP hat einen Timeout , sollte dieser erreicht sein bricht das Script ab und es wird nicht zurück gegeben. Sollte PHP nicht abbrechen wird dein Browser, wie oben bereits gesagt, wegen eines Cache Problems streiken.
PHP Code:
$start = 0; $einträge_pro_seite = 10; $query = "SELECT * FROM Tabelle LIMIT $start,$einträge_pro_seite";
Nun könntest du mittels JS bzw AJAX bei einem bestimmten Event (Bsp Scrollen an das Ende der Seite) deine Query erneut senden mit neuen werten ($start nach oben setzen) und diese dann anzeigen.
Weitere Verbesserung wäre statt "*" , lediglich die Spalten auswählen die du auch brauchst.
Edit: 
Wäre das passende MySql-Manual
|
|
|
04/23/2014, 10:29
|
#5
|
elite*gold: 241
Join Date: Dec 2011
Posts: 1,803
Received Thanks: 1,301
|
Quote:
Originally Posted by Sebbix
PHP hat einen Timeout , sollte dieser erreicht sein bricht das Script ab und es wird nicht zurück gegeben. Sollte PHP nicht abbrechen wird dein Browser, wie oben bereits gesagt, wegen eines Cache Problems streiken.
PHP Code:
$start = 0;
$einträge_pro_seite = 10;
$query = "SELECT * FROM Tabelle LIMIT $start,$einträge_pro_seite";
Nun könntest du mittels JS bzw AJAX bei einem bestimmten Event (Bsp Scrollen an das Ende der Seite) deine Query erneut senden mit neuen werten ($start nach oben setzen) und diese dann anzeigen.
Weitere Verbesserung wäre statt "*" , lediglich die Spalten auswählen die du auch brauchst.
|
Sind insgesamt 90 Spalten -> Ganze Tabelle
|
|
|
04/23/2014, 10:37
|
#6
|
elite*gold: 0
Join Date: Aug 2013
Posts: 15
Received Thanks: 2
|
Wenn du wirklich alle brauchst, dann eben "*".
ansonsten halt:
PHP Code:
$query = "SELECT id,typ FROM tabelle";
|
|
|
04/23/2014, 10:39
|
#7
|
elite*gold: 22
Join Date: Feb 2012
Posts: 576
Received Thanks: 332
|
Das was du suchst nennt sich Limit,
Also ein Generator der halt folgendes generiert:
SELECT column_name(s)
FROM table_name
LIMIT number;
Evtl Tabelle auswählen und halt welche spalten der user sehen will.
Das Limit kannst du auch als Einträge pro Seite sehen.
Angenommen du setzt Limit = 100;
Und hättest 5000 Einträge.
Könntest du unten halt Seite 1-50 begutachten.(phpmyadmin wäre evtl eine überlegung wert? )
Aber du solltest evtl. nochmal daran denken das man kaum. 100 Einträge mit 90 Spalten sinnvoll verwalten kann(von hand).
Evtl nochmal genauere Regeln o.ä. aufstellen.
Was willst du den in der DB speichern wenn man fragen darf  `?
|
|
|
04/23/2014, 10:47
|
#8
|
elite*gold: 241
Join Date: Dec 2011
Posts: 1,803
Received Thanks: 1,301
|
Quote:
Originally Posted by VisionEP1
Das was du suchst nennt sich Limit,
Also ein Generator der halt folgendes generiert:
SELECT column_name(s)
FROM table_name
LIMIT number;
Evtl Tabelle auswählen und halt welche spalten der user sehen will.
Das Limit kannst du auch als Einträge pro Seite sehen.
Angenommen du setzt Limit = 100;
Und hättest 5000 Einträge.
Könntest du unten halt Seite 1-50 begutachten.
Aber du solltest evtl. nochmal daran denken das man kaum. 100 Einträge mit 90 Spalten sinnvoll verwalten kann(von hand).
Evtl nochmal genauere Regeln o.ä. aufstellen.
Was willst du den in der DB speichern wenn man fragen darf  `?
|
Mithilfe der Datenbank verwalte ich Portale, Kontaktinformationen etc.
Ich muss sogesehen auf alle Daten zugreifen können(zwecks filter), deswegen dachte ich Limit wäre dafür nicht geeignet.
Aber wenn ich das richtig verstehe willst du drauf raus, dass ich hier ein code wie diesen verwende:
Code:
$start = 0;
$einträge_pro_seite = 10;
$query = "SELECT * FROM Tabelle WHERE Tabelle.Filterspalte = Filterwert LIMIT $start,$einträge_pro_seite";
?
€: Wobei ich persönlich eine Lösung Ohne Seiten bevorzugen würde.
|
|
|
04/23/2014, 11:12
|
#9
|
elite*gold: 22
Join Date: Feb 2012
Posts: 576
Received Thanks: 332
|
Ja das wäre meine Idee gewesen.
EIne Lösung ohne Seiten o.ä. wird nicht gehen da du nicht jdesmal 250mb laden kannst 
Wenn du portale etc verwalten willst sollte doch phpmyadmin gehen oder?
|
|
|
04/23/2014, 11:17
|
#10
|
elite*gold: 241
Join Date: Dec 2011
Posts: 1,803
Received Thanks: 1,301
|
Quote:
Originally Posted by VisionEP1
Ja das wäre meine Idee gewesen.
EIne Lösung ohne Seiten o.ä. wird nicht gehen da du nicht jdesmal 250mb laden kannst 
Wenn du portale etc verwalten willst sollte doch phpmyadmin gehen oder?
|
Klar, aber ich habe hier 2 Leute Sitzen die keinerlei Verständnis für diese Art von Logik haben :P
|
|
|
04/23/2014, 12:08
|
#11
|
elite*gold: 0
Join Date: Aug 2013
Posts: 15
Received Thanks: 2
|
Wobei "Select *" immer langsamer ist wie "Select column_name,column_name1[...]".
Evtl solltest du bevor die Einträge angezeigt werden einen Filter setzen lassen, so dass nicht alle Einträge sondern nur die gewünschten angezeigt werden.
Vielleicht solltest du dir auch mal die System Tabellen ansehen.
Mit diesen kommst du (teilweise) schneller zu deinem gewünschten ergebnis.
|
|
|
04/24/2014, 09:42
|
#12
|
elite*gold: 241
Join Date: Dec 2011
Posts: 1,803
Received Thanks: 1,301
|
Quote:
Originally Posted by €clips3
Klar, aber ich habe hier 2 Leute Sitzen die keinerlei Verständnis für diese Art von Logik haben :P
|
Abgesehen davon habe ich ja ein funktionierendes System.
Hat jemand nen Plan wie ich diese Seiten Funktion Dynamisch halte?
Statisch würde ich das simple lösen.
Nur da dies ja auch auch verschiedene Filter hat und die Seitenbutton + Tabellen Inhalte automatisch an Filter angepasst werden sollen weiß ich nicht wo ich anfangen soll.
Generell hätte ich schon eine Lösung, umsetzen würde ich Sie auch aber ich denke da gibt es einfachere Optionen als meine Idee
Jemand eine idee?
|
|
|
04/24/2014, 11:20
|
#13
|
elite*gold: 0
Join Date: Aug 2013
Posts: 15
Received Thanks: 2
|
Was heisst für dich dynamisch?
Wenn du die Filter in die Query packst wp du LIMIT hast, dann ist das doch schon dynamisch?
|
|
|
04/24/2014, 21:10
|
#14
|
elite*gold: 0
Join Date: Apr 2014
Posts: 18
Received Thanks: 3
|
Ich lehne mich mal weit aus dem Fenster und sage es gibt keine einzige Anwendung, bei der man 80k Datensätze auf einmal benötigt.
Beispiel Kontaktdaten: angenommen, ich habe für jeden Deutschen Kontaktdaten - die will ich aber doch nicht alle sehen! Wenn, dann lasse ich mir z.B. nur die Handynummern aller Frauen zwischen 18 und 24 Jahren in Castrop-Rauxel anzeigen. Dann kommen nicht so enorme Datenmengen zustande, die ausgegeben werden müssen.
Ich lese so zwischen den Zeilen, dass du mit Javascript filterst. Baue diese Filter direkt in die Datenbankabfrage ein.
mfg
|
|
|
04/26/2014, 12:16
|
#15
|
elite*gold: 241
Join Date: Dec 2011
Posts: 1,803
Received Thanks: 1,301
|
Quote:
Originally Posted by M4xicaner
Ich lehne mich mal weit aus dem Fenster und sage es gibt keine einzige Anwendung, bei der man 80k Datensätze auf einmal benötigt.
Beispiel Kontaktdaten: angenommen, ich habe für jeden Deutschen Kontaktdaten - die will ich aber doch nicht alle sehen! Wenn, dann lasse ich mir z.B. nur die Handynummern aller Frauen zwischen 18 und 24 Jahren in Castrop-Rauxel anzeigen. Dann kommen nicht so enorme Datenmengen zustande, die ausgegeben werden müssen.
Ich lese so zwischen den Zeilen, dass du mit Javascript filterst. Baue diese Filter direkt in die Datenbankabfrage ein.
mfg
|
Ja, habe da ne coole alternative gefunden. Ich hab mich bisschen falsch ausgedrückt.
Hab das System komplett nochmal umgeschrieben und nutze nun auch asp.net dafür.
Zudem das Telerik Framework und da ist meine Anwendung simple umzusetzen.
Danke trotzdem an alle
|
|
|
 |
Similar Threads
|
Flyff V 17 Pvp Problem +Npc Füllen
07/20/2011 - Flyff Private Server - 0 Replies
Hey Ich Weiß Nicht Wie Mann die Pvp Einstellt oder Die Npc Füllt Mit Welchen Programm muss ich das machen könnt ihr mir das sagen :)
|
loch mit wasser füllen
07/13/2011 - Minecraft - 5 Replies
Hey ich hab eine frage ich habe neben dem meer ein großes loch gegraben und jetz habe ich eine verbindung zwischen meer und loch gemacht aber das loch wird nicht voll nur unten ist ein bisschen wasser. Was kann ich tun ein eimer hab ich leider nicht
|
Map mit Monstern füllen
01/22/2011 - Metin2 Private Server - 5 Replies
Hi und zwar hab ich nen eigenen p server und hab ne leere map wie füll ich die also das imemr wieder die mobs kommen ?
|
[TuT]Ps Cs5 Inhaltsensetives füllen
10/31/2010 - General Art - 5 Replies
Hallo heute will ich euch eine Funktion von Photoshop Cs5 vorstellen die mir
ganz besonders gefällt. Sie heißt inhaltsensetives füllen.
Als erstes makiert ihr den Teil im Bild den ihr nicht mögt bzw. einfach weg machen wollt.
Das ganze sollte dann in etwa so aus sehen:
http://img201.imageshack.us/img201/504/tut1n.th.j pg
Uploaded with ImageShack.us
|
All times are GMT +1. The time now is 05:22.
|
|