Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja kodu, ereg_replace + mysql
Esc
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 22.03.2005

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


Schemat jest taki dany tekst naznaczam znacznikiem [OBRAZEK=nazwa.jpg][/OBRAZEK] Nastepnie sprawdzam ile jest takich obrazkow w tekscie - zapamietuje nazwe. Ta nazwe porownuje w bazie danych - jezeli istnieje to wyciagam reszte informacji o obrazku typu numer katalogowy, opis czy inne tam po czym dopiero w petli zamieszczam ereg_replace do podmiany znacznika na wszystkie opisy - czy to nie jest troche za duzo dla serverka ? Nie dalo by sie tego jakos zoptymalizowac ?

  1. <?php
  2.  
  3. $tekst = explode(&#092;"[OBRAZEK=\", $opis);
  4. for($x=1; $x < count($tekst); $x++){
  5. $slowo= explode(&#092;"][/OBRAZEK]\", $tekst[$x]);
  6. $szukane_slowo[$x]= $slowo[0];
  7. }
  8.  
  9. $table_name3 = &#092;"01_zdjecia\";
  10. $sql3 = &#092;"SELECT * FROM $table_name3\";
  11. $pyt3 = mysql_query($sql3,$connection);
  12. while ($rekord3 = mysql_fetch_array ($pyt3)) {
  13. $y++;
  14. if (($szukane_slowo[$y] == $rekord3[Nazwa]) or ($x > $y)) {
  15. $z_bazy[$y] = $rekord3[Nazwa];
  16. $z_bazy_opis[$y] = $rekord3[Opis];
  17. }}
  18.  
  19. for ($z=1; $z < $x; $z++) {
  20. $opis = ereg_replace(&#092;"[OBRAZEK=$z_bazy[$z]][/OBRAZEK]\", \"<BR><CENTER><a href =\"img/$z_bazy[$z]\">$z_bazy[$z]</A><BR>$z_bazy_opis[$z]</CENTER><BR>\", $opis);
  21. }
  22.  
  23. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
bendi
post
Post #2





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Ja bym to zrobil tak:
  1. <?
  2. //szukamy obrazkow
  3. preg_match_all( '%[OBRAZEK=\"(.*?)\"][/OBRAZEK]%s', $opis, $aSzukaneSlowo );
  4.  
  5. //tablica $aSzukaneSlowo[1] zawiera interesujace nas informacje
  6. //nastepnie pobieramy informacje o plikach z bazy
  7. $hRes = mysql_query( 'SELECT * FROM 01_zdjecia WHERE Nazwa IN (\"'. join( '\",\"', $aSzukaneSlowo[1] ) . '\")' );
  8.  
  9. //no i zamieniamy co trzeba korzystajac z str_replace zamiast ereg_replace, bo jes
  10.  szybsze
  11. while( ( $aRow = mysql_fetch_array( $hRes ) ) !== false ) {
  12.     $opis = str_replace('[OBRAZEK=\"' . $aRow['Nazwa'] . '][/OBRAZEK]', '<div style=\"text-align:center;\"><a href =\"img/' . $aRow['Nazwa'] . '\">' . $aRow['Nazwa'] . '</a><br >' . $aRow['Opis'] . '</div>', $opis);
  13. }
  14. ?>

Zastapilem tez znacznik <center> div'em, gdyz ten pierwszy zostal wycofany nawet ze specyfikacji HTML 4.0.

Ten post edytował bendi 22.03.2005, 15:09:52
Go to the top of the page
+Quote Post
Esc
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 22.03.2005

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


Dzieki serdeczne bendi po Twojemu znacznie sie przyspieszylo wykonywanie a dziala dokladnie tak samo jak powinno.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 00:03