Verfasst: 21.11.2004 00:10
also ich denke der Fehler liegt daran, dass die Daten aus der Datenbank so groß sind, dass dadurch meine 8 MB gesprengt werden.
Soweit so gut.
Wie kann ich denn die Datenbankabfrage reduzieren.
Hier brauche ich jemanden, der PHP kann.
Also das er nur die ersten 100 Ergebnisse anzeigt. Das würde ja auch vollkommen reichen.
Hier die Bereiche, die ich denke, wo man was machen müsste:
oder hier:
Soweit so gut.
Wie kann ich denn die Datenbankabfrage reduzieren.
Hier brauche ich jemanden, der PHP kann.

Also das er nur die ersten 100 Ergebnisse anzeigt. Das würde ja auch vollkommen reichen.
Hier die Bereiche, die ich denke, wo man was machen müsste:
Code: Alles auswählen
case 'pages': $typ = $typen[$HTTP_GET_VARS['extensive']];
$table = $GLOBALS['chC']['dbconfig']['table_pages'];
$field = 'seite';
$field2 = 'titel';
$where = '';
break;
Code: Alles auswählen
# seiten
$config['url_hp'] = preg_replace("#/$#", "", $config['url_hp']);
if($config['stats_ignore_counterfiles'] == "1")
{
$bedingung = "WHERE `seite` NOT LIKE '".$config['verzeichnis']."%' ";
}
elseif($config['stats_ignore_counterfile'] == "1")
{
$bedingung = "WHERE '".$config['verzeichnis']."/counter.php' NOT IN (seite)";
}
else
{
$bedingung = "";
}
$seiten = $db->query("SELECT seite, titel, anzahl FROM `".$GLOBALS['chC']['dbconfig']['table_pages']."` $bedingung ORDER BY anzahl DESC LIMIT 0, ".$config['anzahl_stats_seiten']);
$seiten = $db->fetch_assoc($seiten, 'multiple');
if(count($seiten) > 0)
{
$max_length = 100;
$seiten_gesamt = $db->query("SELECT SUM(anzahl) as anzahl_gesamt, COUNT(anzahl) AS anzahl_seiten FROM `".$GLOBALS['chC']['dbconfig']['table_pages']."`");
$seiten_gesamt = $db->fetch_assoc($seiten_gesamt);
$verz = str_replace("http://".$GLOBALS['chC']['env']['server_name'], "", $config['url_hp']);
$output_seiten = '';
for($i=0;$i<count($seiten);$i++)
{
$seiten[$i]['seite'] = htmlspecialchars($seiten[$i]['seite']);
$rowclass = (!(1 & $i)) ? "row1" : "row2";
if(empty($seiten[$i]['titel']))
$seiten[$i]['titel'] = $seiten[$i]['seite'];
$seiten[$i]['seite'] = str_replace($verz, "", $seiten[$i]['seite']);
$prozent = number_format(round((($seiten[$i]['anzahl']) / $seiten_gesamt['anzahl_gesamt'])*100, 2), 2, $dec_seperator, $thousands_seperator);
$width = @round(($seiten[$i]['anzahl'] / $seiten_gesamt['anzahl_gesamt']) * $max_length);
$output_seiten .= " <tr class=\"$rowclass\">\n";
$output_seiten .= " <td align=\"left\">".($i+1)."</td>\n";
$output_seiten .= " <td align=\"left\"><a href=\"".$config['url_hp'].$seiten[$i]['seite']."\" target=\"_blank\">".$seiten[$i]['titel']."</a></td>\n";
$output_seiten .= " <td align=\"right\">".$seiten[$i]['anzahl']."</td>\n";
$output_seiten .= " <td align=\"right\">".$prozent."%</td>\n";
$output_seiten .= " <td align=\"left\" style=\"width: ".$max_length."px\"><img src=\"images/graph1.png\" width=\"".$width."\" height=\"10\" alt=\"".$prozent."%\"></td>\n";
$output_seiten .= " </tr>\n";
}
$output_seiten .= " <tr class=\"row4\">\n <td> </td>\n <td align=\"left\"><b>".$chC_lang['allgemein']['gesamt'].": ".$seiten_gesamt['anzahl_seiten']."</b></td>\n <td align=\"right\">".$seiten_gesamt['anzahl_gesamt']."</td>\n <td align=\"right\">100%</td>\n <td> </td>\n </tr>\n";
}
else
{
$output_seiten = "<tr class=\"row1\"><td colspan=\"5\" align=\"center\">".$chC_lang['allgemein']['keine_seiten_in_db']."</td></tr>";
}
$tpl->assign("STATISTICS_PAGES", $output_seiten);