Hi Leute,
Hab die SuFu benutzt und Google ohne Ende. Aber vielleicht kann mir ja jemand helfen.
Leider hab ich die Sachen net Online daher versuch ich es so gut wie möglich zu beschreiben.
***EDIT***
PHP und MYSQL
***EDIT***
Problem 1:
In einer Datenbank werden insgesamt 8 Werte gespeichert.
"date, id,name,city, usw."
Gut dazu hab ich eine Funktion geschrieben die mir mithilfe der ID den Namen des Users ausgibt. Klappt perfekt, dachte ich zumindest.
Nun rufe ich extern eine xml ab, speicher diese mit der PHP funktion file() in einen Array.
Soweit so gut. Danach geh ich mit foreach($lienes as $line) vor und teile sie nochmal so dass ich halt immer Index für Index durch gehen kann.
Als nächstes hole ich mir mit explode("," , $line); die Array Elemente.
bekomme dann natürlich mit Hilfe von
$wert1 = $nextline['0'];
$wert2 = $nextline['1'];
$wert3 = $nextline['2'];
$wert4 = $nextline['3'];
raus.
Gut passt perfekt Aber jetzt zum Problem.
Jetzt gebe ich Zeile für Zeile halt aus. Der erste Wert ist ein timestemp der funktioniert immer mit dem Umwandeln usw.
Der Zweite Wert ist eine Aktions ID. Diese ruf ich auch mit einer Funktion und anderen Tabelle ab und die gibt mir den Namen aus. Klappt auch in allen Zeilen.
Der dritte Wert gibt von einem User die ID von der ersten Tabelle aus.
Gut, Funktion geschrieben die mir den Namen zurück gibt. Klappt immer.
So nun zum Problem.
Der 4 Wert und letzte ist ebenfalls ein User bzw. die ID von dem. Jetzt verwende ich die Selbe Funktion wie beim Wert 3 und er gibt mir nur das erste Mal den User zurück aber danach nichtmehr. (Oder den letzten je wie ich die Array sortiere).
So nun zu meiner Frage kennt wer eine Lösung für das Problem. Wenn ich auf Platz 4 z.B. einfach den Wert 3 nutze klappt das mit den Namen auch. Wenn ich die funktion weglasse und einfach die ID ausgebe, klappts auch.
Nur wenn ich die Funktion nutze wobei der Wert4 auch 0 bzw. leer sein kann was ich allerdings überprüfe und einfach mithilfe von
if($nextline['3']!='' OR $nextline['3']!='') nimm funktion
else ist halt das.
kennt wer dafür ein Problem Lösung warum es hin und wieder geht und hin und wieder net. Bin echt schon Ratlos.
hier noch eine Funktion so wie ich sie schreibe. Die halt mit Wert 3 Immer Funktioniert aber mit Wert 4 nichtmehr
Problem 2:
Ich hab in einer Datenbank derzeit 30 Einträge pro Seite und knapp 14.000Seiten (könnte auch die 40fache menge sein).
So ich brauch aus dieser Tabelle aber verschiedene Werte immer und immer wieder.
Hab auch hier wieder verschieden funktionen die halt immer mit
"SELECT name TABELE ..." usw. Arbeiten. Ich Versuch mit GROUP BY, ORDER BY, WHERE usw immer soviel wie möglich auszuschliesen was nur geht.
So das kann aber stellen weise bei 20Einträge (Ausgabe pro Seite) pro Seite ewig dauern bis die geladen sind. Stellen weise bis zu 20sec.
Gibts irgendwie ne möglichkeit solche Abfragen zu beschleunigen oder Tabellen zu optimieren mit z.B. views oder dergleichen?
Oder hat man bei so einer Datenmenge einfach pech.
mfg he1OO
Hab die SuFu benutzt und Google ohne Ende. Aber vielleicht kann mir ja jemand helfen.
Leider hab ich die Sachen net Online daher versuch ich es so gut wie möglich zu beschreiben.
***EDIT***
PHP und MYSQL
***EDIT***
Problem 1:
In einer Datenbank werden insgesamt 8 Werte gespeichert.
"date, id,name,city, usw."
Gut dazu hab ich eine Funktion geschrieben die mir mithilfe der ID den Namen des Users ausgibt. Klappt perfekt, dachte ich zumindest.
Nun rufe ich extern eine xml ab, speicher diese mit der PHP funktion file() in einen Array.
Soweit so gut. Danach geh ich mit foreach($lienes as $line) vor und teile sie nochmal so dass ich halt immer Index für Index durch gehen kann.
Als nächstes hole ich mir mit explode("," , $line); die Array Elemente.
bekomme dann natürlich mit Hilfe von
$wert1 = $nextline['0'];
$wert2 = $nextline['1'];
$wert3 = $nextline['2'];
$wert4 = $nextline['3'];
raus.
Gut passt perfekt Aber jetzt zum Problem.
Jetzt gebe ich Zeile für Zeile halt aus. Der erste Wert ist ein timestemp der funktioniert immer mit dem Umwandeln usw.
Der Zweite Wert ist eine Aktions ID. Diese ruf ich auch mit einer Funktion und anderen Tabelle ab und die gibt mir den Namen aus. Klappt auch in allen Zeilen.
Der dritte Wert gibt von einem User die ID von der ersten Tabelle aus.
Gut, Funktion geschrieben die mir den Namen zurück gibt. Klappt immer.
So nun zum Problem.
Der 4 Wert und letzte ist ebenfalls ein User bzw. die ID von dem. Jetzt verwende ich die Selbe Funktion wie beim Wert 3 und er gibt mir nur das erste Mal den User zurück aber danach nichtmehr. (Oder den letzten je wie ich die Array sortiere).
So nun zu meiner Frage kennt wer eine Lösung für das Problem. Wenn ich auf Platz 4 z.B. einfach den Wert 3 nutze klappt das mit den Namen auch. Wenn ich die funktion weglasse und einfach die ID ausgebe, klappts auch.
Nur wenn ich die Funktion nutze wobei der Wert4 auch 0 bzw. leer sein kann was ich allerdings überprüfe und einfach mithilfe von
if($nextline['3']!='' OR $nextline['3']!='') nimm funktion
else ist halt das.
kennt wer dafür ein Problem Lösung warum es hin und wieder geht und hin und wieder net. Bin echt schon Ratlos.
hier noch eine Funktion so wie ich sie schreibe. Die halt mit Wert 3 Immer Funktioniert aber mit Wert 4 nichtmehr
PHP:
function func_playername($id, $area, $world) {
$db = mysql_fetch_array(mysql_query("SELECT name FROM ".dbname."xx_".$area."".$world."_player WHERE id='$id' ORDER BY date"));
$name = $db['name'];
$name = func_clearname($name);
return $name;
}
Problem 2:
Ich hab in einer Datenbank derzeit 30 Einträge pro Seite und knapp 14.000Seiten (könnte auch die 40fache menge sein).
So ich brauch aus dieser Tabelle aber verschiedene Werte immer und immer wieder.
Hab auch hier wieder verschieden funktionen die halt immer mit
"SELECT name TABELE ..." usw. Arbeiten. Ich Versuch mit GROUP BY, ORDER BY, WHERE usw immer soviel wie möglich auszuschliesen was nur geht.
So das kann aber stellen weise bei 20Einträge (Ausgabe pro Seite) pro Seite ewig dauern bis die geladen sind. Stellen weise bis zu 20sec.
Gibts irgendwie ne möglichkeit solche Abfragen zu beschleunigen oder Tabellen zu optimieren mit z.B. views oder dergleichen?
Oder hat man bei so einer Datenmenge einfach pech.
mfg he1OO