Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> POMOCY! Jak uniknąć 1000 SELECTów ???
Oscarro
post 21.10.2003, 09:19:41
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.04.2003

Ostrzeżenie: (0%)
-----


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]
Go to the top of the page
+Quote Post
zalew
post 21.10.2003, 11:34:46
Post #2





Grupa: Zarejestrowani
Postów: 407
Pomógł: 0
Dołączył: 24.10.2002
Skąd: warszawa

Ostrzeżenie: (0%)
-----


odwroc akcje. zrob jeden select i w jego wynikach szukaj ...


--------------------
Go to the top of the page
+Quote Post
Oscarro
post 21.10.2003, 12:08:34
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.04.2003

Ostrzeżenie: (0%)
-----


:? 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:
Go to the top of the page
+Quote Post
Oscarro
post 21.10.2003, 12:16:41
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.04.2003

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
delorian
post 21.10.2003, 21:52:25
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 23.08.2003
Skąd: Olsztyn, Polska

Ostrzeżenie: (0%)
-----


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:


--------------------
I've dropped something... oh my god, it's a database!!!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 16:13