Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: POMOCY! Jak uniknąć 1000 SELECTów ???
Forum PHP.pl > Forum > Gotowe rozwiązania
Oscarro
Mam WIELKĄ PROŚBĘ.
Moze ktos zerknalby na ten skrypcik i podrzucil
mi pomysl jak uniknac tylu selectow do bazy??
Jest aplikacja (mapa) i ktos sobie na niej zaznacza
jakies obiekty (szkoly,dzialki itp.--10,100 nawet 1000 moze byc)
no i ta aplikacja przesyla wartości tych obiektów do tego skryptu .
Ale skrypt w takiej formie działa strasznie długo i wyskakuje mi błąd:
Fatal error: Maximum execution time of 30 seconds exceeded in G:WWWobject.php on line 19
Pozdrawiam Oscarro.
################################
[php:1:75b1f4a5d5]<?
echo "<html><head><meta http-equiv= Content-Type content= text/html; charset= iso-8859-2 ><link rel=stylesheet type=text/css href= CSS/css.css></head><body bgcolor=#ececec><center>";
if(!isset($_REQUEST['OBJ_KEYS']))
{
echo "Nie wybrano Object Keys";
exit;
}
else
{
$wynik = str_replace("'","",$_REQUEST['OBJ_KEYS']);
$tablica = split(",",$wynik);
echo "Wybrano następuj&plusmn;ce obiekty:<br><br>";
$mysql = @mysql_connect( "localhost", "root", "root" );
$mysql = @mysql_select_db( "dzialki" );
foreach($tablica as $tablica2 => $keys)
{
$query = "SELECT Pole2, numer_dzialki, powierzchnia, dzielnica, klucz, obreb FROM dzialki WHERE klucz IN ('$keys')";
$result = mysql_query($query);
$row =mysql_fetch_array($result);

$Pole2=$row['Pole2'];
$numer_dzialki=$row['numer_dzialki'];
$powierzchnia=$row['powierzchnia'];
$dzielnica=$row['dzielnica'];
$klucz=$row['klucz'];
$obreb=$row['obreb'];
echo " kod HTML ze zmiennymi $Pole2,$numer_dzialki itp.
}
mysql_close();
}
echo "</body></html>";
?>[/php:1:75b1f4a5d5]
zalew
odwroc akcje. zrob jeden select i w jego wynikach szukaj ...
Oscarro
:? A tak w ogóle to foreach jest potrzebny questionmark.gif?
Nie bardzo rozumiem o co Ci chodzi z tym odwróceniem akcji.
Moze juz za dlugo siedze przy kompie :cry:
Oscarro
Nie odwracalem akcji tylko pozbylem sie foreach'a. Nie wiem czy to byl dobry pomysl. :idea:
[php:1:c6c0bfa751]
<?
if(!isset($_REQUEST['OBJ_KEYS']))
{
echo "Nie wybrano obiektów";
exit;
}
else
{

$wynik = str_replace("'","'",$_REQUEST['OBJ_KEYS']);
$mysql = @mysql_connect( "localhost", "root", "root" );
$mysql = @mysql_select_db( "dzialki" );
$query = "SELECT numer_dzialki, powierzchnia, dzielnica, klucz, obreb FROM dzialki WHERE klucz IN ($wynik)";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result))
{
$numer_dzialki=$row['numer_dzialki'];
$powierzchnia=$row['powierzchnia'];
$dzielnica=$row['dzielnica'];
$klucz=$row['klucz'];
$obreb=$row['obreb'];
echo "wyniki szukania ";
}

mysql_close();
}
echo "</body></html>";
?>
[/php:1:c6c0bfa751]
Cytat
delorian
Cytat
Nie odwracalem akcji tylko pozbylem sie foreach'a. Nie wiem czy to byl dobry pomysl.  :idea:  


Jeśli działa to znaczy, że pomysł był dobry biggrin.gif . Zasada jest taka, że jeśli można użyć jednego zapytania zamiast iluśtam to trzeba tak zrobić :wink:
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.