hallo,
ich habe ein sehr seltsames problem,
bei meinem script habe ich laut aussage über 800 abfragen gehabt, was aber nicht möglich ist. ich setzte adodb mit dem mysqlt driver ein.
ach ja es werden wirklich über 800 querys ausgefürt, bei phpmyadmin konnte ich es sehen, mysql neu gestartet, 1 mal script gestartet, und dann stand da bei abfragestatistik, insgesamt ca 800.
ich habe beim mysql driver folgende function editirt:
dadurch zähle ich die ausgeführten sql querys und die benötigte zeit.
ich habe herausgefunden das folgende für schliffe die 800 querys macht, ich weiss aber nicht warum, adodb macht da irgend einen grossen fehler oder so, der code ist gegenüber dem original gekürtzt auf die wichtigsten stellen:
mfg Roland
ich habe ein sehr seltsames problem,
bei meinem script habe ich laut aussage über 800 abfragen gehabt, was aber nicht möglich ist. ich setzte adodb mit dem mysqlt driver ein.
ach ja es werden wirklich über 800 querys ausgefürt, bei phpmyadmin konnte ich es sehen, mysql neu gestartet, 1 mal script gestartet, und dann stand da bei abfragestatistik, insgesamt ca 800.
ich habe beim mysql driver folgende function editirt:
PHP-Code:
function _query($sql,$inputarr)
{
$GLOBALS['sql_anzahl']++;
zeit_messen('sql_zeit');
$query = mysql_query($sql,$this->_connectionID);
zeit_messen('sql_zeit');
return $query;
}
ich habe herausgefunden das folgende für schliffe die 800 querys macht, ich weiss aber nicht warum, adodb macht da irgend einen grossen fehler oder so, der code ist gegenüber dem original gekürtzt auf die wichtigsten stellen:
PHP-Code:
$sql = "SELECT * FROM gebaeude ORDER BY `art`";
$row = $db->Execute($sql);
for (; !$row->EOF; $row->MoveNext())
{
$gebaeude = spliti("[,]", $row->fields["g_voraussetzung"]);
for($g = 0; $g < count($gebaeude_voraussetzung); $g++)
{
if($gebaeude_voraussetzung[$g] >= $gebaeude[$g]){ $k++; }
}
$forschung = spliti("[,]", $row->fields["f_voraussetzung"]);
for($h = 0; $h < count($forschungs_voraussetzung); $h++)
{
if($forschungs_voraussetzung[$h] >= $forschung[$h]){ $l++; }
}
// anzahl der bereits gebauter gebäude holen
$sql = "SELECT anzahl FROM stadt_gebaeude WHERE stadt_id = '".$_SESSION['user']['hs_id']."'
AND gebaeude_id = '".$row->fields['id']."'";
$row_anzahl = $db->Execute($sql);
$geb_anzahl = $row_anzahl->fields["anzahl"];
$tmp_eisen = ($row->fields["eisen"] * pow($row->fields["kostensteigerung"], $geb_anzahl));
$tmp_beton = ($row->fields["beton"] * pow($row->fields["kostensteigerung"], $geb_anzahl));
$tmp_kapital = ($row->fields["baukosten"] * pow($row->fields["kostensteigerung"], $geb_anzahl));
$sql = "SELECT stadt_gebaeude.anzahl FROM stadt_gebaeude, user WHERE user.id = '".$_SESSION['user']['id']."'
AND stadt_gebaeude.gebaeude_id = '".$row->fields['id']."' AND stadt_gebaeude.stadt_id = user.hs_id";
$row_max = $db->Execute($sql);
if($row_max->fields["anzahl"] >= 1 && $_SESSION['user']["hauptstadt"] == $_SESSION['user']["hs_id"])
{
$rad_baubar = " ";
$txt_baubar = "(Nur 1x in der Hauptstadt baubar)";
} elseif($_SESSION['user']["hauptstadt"] == $_SESSION['user']["hs_id"])
{
$rad_baubar = "<INPUT TYPE=\"RADIO\" NAME=\"rd_bau\" VALUE=\"".$row->fields["id"]."\">";
$txt_baubar = "(Nur 1x in der Hauptstadt baubar)";
}
// anzahl der gebäude und forschungen holen, nicht stadt, sondern global
$row_tmp_gebaeude = $db->Execute("SELECT count(*) as num FROM gebaeude");
$gebaeude_anzahl = $row_tmp_gebaeude->fields['num'];
$row_tmp_forschung = $db->Execute("SELECT count(*) as num FROM forschung");
$forschunganzahl_anzahl = $row_tmp_forschung->fields['num'];
}
Kommentar