Autor Zpráva
ato3
Profil
Ahoj, tuhle chybu mi vrací PHP.. mohu se optat co to znamená? moc jsem toho nevygooglil, ale chápu, že asi skriptem příliš zatěžuji server.. mám to tedy chápat, že by bylo vhodnější skript rozprostřít do více souborů? nebo co s tím?
Fatal error: Allowed memory size of 41943040 bytes exhausted (tried to allocate 14156705 bytes)
Davex
Profil
Skript se snaží zabrat příliš mnoho paměti. Nejčastěji se to stává při zpracování obrázků, pokud se neuvolní paměť pomocí imagedestroy().
ato3
Profil
Davex
s obrázky vůbec nepracuji, tahám data z databáze
a spojuji 3 tabulky - neřekl ybch, že to jsou nějak náročné skripty
Alphard
Profil
není v nich nějaká chyba? nekonečný cyklus, který by nestále zvyšoval nároky na pamět apod.?
ato3
Profil
$sql = "SELECT *
		FROM ucebnice
		INNER JOIN nakladatelstvi ON id_nakladatelstvi=nakladatelstvi.id
		WHERE id_uzivatele='".$_SESSION['id']."'";
$dtz = mysql_query($sql);
$cislo = mysql_num_rows($dtz);

if ($cislo != 0) {
$obsah .= "<table>";
}
$sql = "SELECT *
		FROM ucebnice
		WHERE id_uzivatele='".$_SESSION['id']."'";
$dtz = mysql_query($sql);
while ($r = mysql_fetch_array($dtz)) {
extract($r);
$obsah .= "<tr>";

$obsah .= "<td>$id</td>";
$obsah .= "<td>$nazev_uč</td>";
$sql = "SELECT * FROM nakladatelstvi WHERE id='$id_nakladatelstvi'";
$dtz = mysql_query($sql);
$result = mysql_fetch_array($dtz);
$obsah .= "<td>$result[nazev_nakladatelstvi]</td>";
$obsah .= "<td>$rok_vydani</td>";
$obsah .= "<td>$isbn</td>";
$obsah .= "<td>$cena</td>";
$obsah .= "<td>$komentar</td>";
$tok = strtok ($datum,"-");
while ($tok) {
    $date[] = "$tok";
    $tok = strtok ("-");
}
$obsah .= "<td>$date[2]. $date[1]. $date[0]</td>";
$sql = "SELECT *
		FROM ucebnice
		WHERE id_uzivatele='".$_SESSION['id']."'";
$dtz = mysql_query($sql);
$rr = mysql_fetch_array($dtz);
$obsah .= "<td><a href='/upravit-ucebnici/?id=$rr[id]'>Upravit</a></td>";
$obsah .= "<td>Odstranit</td>";

$obsah .= "</tr>";
}
if ($cislo != 0) {
$obsah .= "</table>";
}
}

tohle je kod, kterej to asi zaviňuje
nevidím tam, že by se něco cyklilo
djlj
Profil
Proč je tam několikrát stejnej dotaz do databáze?
Mastodont
Profil
ato3
Ten první select, který potřebuješ jen proto, abys zjistil počet řádků, to myslíš vážně? Co třeba Select count(*) ...
ato3
Profil
Díky, opravdu jsem moc zatěžoval server. Zjednodušel jsem to.
Jo a select count mi fakt pomohlo, nevedel jsem o tom. Díky
djlj
Profil
A pokud nemáš, přidej na vhodné sloupce i indexy -- třeba id_uzivatele v tabulce ucebnice.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: