schneller machen. aber ohne Frames

Alles, was PHP betrifft, kann hier besprochen werden.

schneller machen. aber ohne Frames

Postby giraf » 28. August 2006 08:16

Hallo

Meine Seiten laufen langsam! Bin kein Fan von Frames, was gibt es anderes?

Habe eine Navigation die ich include, die sich aber auf jeder seite frisch aufbaut. Und das braucht seine Zeit!

Der Code geht, aber eben, wie kann ich es schneller machen?

Code: Select all
<table width="190" border="0" cellpadding="0" cellspacing="0">
<tr> <td  ><img src="lib/leer.gif" width="1" height="1"></td></tr>
 <tr>
    <td  class="nav2" height="20"><a href="produkte1.php"  class="nav2">Produkte</a></td>
  </tr>
<?
$arr_untergr_id = array();
$querya="SELECT untergr_id FROM produkte GROUP BY untergr_id";
$resulta = mysql_query($querya,$link);
while ($rowa = mysql_fetch_array($resulta))
   {
   $arr_untergr_id[] = $rowa[untergr_id];
   }

$arr_hauptgr_id = array();
$queryb="SELECT hauptgr_id,untergr_id FROM untergruppe
WHERE untergr_id  IN (" . implode(', ', $arr_untergr_id) . ")
GROUP BY hauptgr_id";
$resultb = mysql_query($queryb,$link);
while ($rowb = mysql_fetch_array($resultb))
   {
   $arr_hauptgr_id[]=$rowb[hauptgr_id];
   }

$query1="SELECT * FROM hauptgruppe
WHERE hauptgr_id  IN (" . implode(', ', $arr_hauptgr_id) . ")
ORDER BY hauptgr_reihe";$result1 = mysql_query($query1,$link);
while ($row1 = mysql_fetch_array($result1))
{
$hauptgr_id=$_GET[hauptgr_id];
if(($row1[hauptgr_id]==$hauptgr_id) or ($row1[hauptgr_id]==$hauptgr_id3))
      {
      ?>
      <tr>
         <td height="20" valign="middle" class='nav_hauptgr2'><p class="nav_hauptgr2" >
         <? echo"$row1[hauptgr_bez]";?></p></td>
      </tr>
        <?       
      $query2="SELECT * FROM untergruppe
      WHERE hauptgr_id='$hauptgr_id'
      and untergr_id  IN (" . implode(', ', $arr_untergr_id) . ")
      ORDER BY untergr_reihe";
      $result2 = mysql_query($query2,$link);
      while ($row2 = mysql_fetch_array($result2))
            {
            $untergr_id=$row2[untergr_id];
            $untergr_id_a=$_GET[untergr_id];
            
                  if($untergr_id==$untergr_id_a)
                  {
                  ?>
                     <tr>
                        <td class='nav_untergr2'><img src="lib/leer.gif" width="7" height="11"  class="nav_untergr2">
                        <a href="produkte.php?untergr_id=<? echo"$untergr_id";?>&hauptgr_id=<? echo"$row1[hauptgr_id]";?>" class='nav_untergr2'>
                        <? echo"$row2[untergr_bez]";?></a></td>
                     </tr>
                  <?
                  }
                  else
                  {
                  ?>   
                     <tr>
                        <td class='nav_untergr'><img src="lib/pfeil.gif" width="7" height="11" class="nav_untergr">
                        <a href="produkte.php?untergr_id=<? echo"$untergr_id";?>&hauptgr_id=<? echo"$row1[hauptgr_id]";?>" class='nav_untergr'>
                        <? echo"$row2[untergr_bez]";?></a>
                        </td>
                     </tr>
                  <?   
                  }
            } ?>
            <?
            }
            else
            {
            ?>
            <tr>
               <td><img src="lib/leer.gif" width="1" height="1"></td>
            </tr>
            <tr>
               <td height="20" valign="middle" class='nav_hauptgr'> <a href="produkt_hg.php?hauptgr_id=<? echo"$row1[hauptgr_id]";?>&hauptgr_bez=<? echo"$row1[hauptgr_bez]";?>" class='nav_hauptgr'>
               <? echo"$row1[hauptgr_bez]";?></a> </td>
            </tr>
            <?       
            }?>
       <?
      } ?> 
<tr>
   <td><img src="lib/leer.gif" width="1" height="1"></td>
</tr>
<tr>
   <td height="20" valign="middle"  class="nav2"><a href="preislisten.php" class="nav2">Preislisten</a></td>
</tr>
</table>
giraf
 
Posts: 12
Joined: 04. January 2006 10:25

Postby DJ DHG » 28. August 2006 13:42

Moin Moin

Schonmal an eine kompilierende Template Engine gedacht?

mfg DJ DHG
User avatar
DJ DHG
AF Moderator
 
Posts: 2455
Joined: 27. December 2002 13:50
Location: Kiel

Postby giraf » 28. August 2006 13:52

Nein, da ich das soeben zum ersten mal gehört habe.

Meinst du smarty? Das habe ich bei google gefunden.

Wo fange ich an?

Danke für einen Einsteigertipp
giraf
 
Posts: 12
Joined: 04. January 2006 10:25

Postby DJ DHG » 28. August 2006 13:58

Hoi!

Ja, sowas in der Richtung.
Smarty ist zum einen durch X Tutorials, Howto´s u.d.G.
gut Dokumentiert, ist aber auch nicht die leichteste
Template Egine.
Schau dir ein paar verschindene Engine´s an und such
dir die, für dich am besten geeignete, aus.

mfg DJ DHG
User avatar
DJ DHG
AF Moderator
 
Posts: 2455
Joined: 27. December 2002 13:50
Location: Kiel

Postby Mätes » 28. August 2006 14:26

was heißt denn 'langsam' ?

so wild sieht der code nicht aus, hast allerdings einige
GROUP BYs und WHERE xx IN (...) drin.

jenachdem, wie groß die tabellen, wie selten Indizes vergeben und wie lang der WHERE xx IN ([1.000 Elemente]) ist, kanns schon was dauern.

auf was für einem webspace bist du denn gehostet.
habe zwei verschiedene. auf einem dezidierten server gehts ab wie schmitz katz, auf einem standard-paket (beides strato) kann das je nach tageszeit mehrere sekunden dauern. Interessant dabei ist, das es nicht das skript, sondern der Download ist, der so lange dauert, obwohl relativ kleine HTML-Dateien dabei rausspringen (10k +/- bisl).

ma
User avatar
Mätes
 
Posts: 142
Joined: 13. April 2006 09:34
Location: kölle

Postby giraf » 29. August 2006 11:09

Konnte ein Group by zusammennehmen, das war doppelt. Aber sonst muss ich die lassen, ansonstenr kommen zuviele gleiche Vavigationspunkte.

Habe alles in iframe gepackt, jetzt ist die Seite ruhiger, wel das Bild und die Neuheuten auf der rechten Spalte konstant bleiben.

Bei der Navigation ist ein laden immer noch sichtbar.

Danke für die Hilfe und Gedankenanstösse
giraf
 
Posts: 12
Joined: 04. January 2006 10:25

Postby jakimo72 » 30. August 2006 18:00

Wenn wenn sich in einer Seite immer nur wenige Elemente ändern,
so kann auch die Verwendung eines AJAX-Frameworks wunder wirken.

Dabei wird nicht immer die ganze Webseite aufgebaut, sondern
nur einzelne HTML-Elemente mit Hilfe von Javascript ausgetauscht.
Die Daten dazu werden als XML übertragen.
User avatar
jakimo72
 
Posts: 151
Joined: 07. February 2005 13:25
Location: Hamburg-Barmbek


Return to PHP

Who is online

Users browsing this forum: No registered users and 1 guest