Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Ajutor pt. profan: selectie care merge ff incet!
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Subiectul anterior :: Subiectul următor  
Autor Mesaj
agazdaru



Data înscrierii: 03/Noi/2005
Mesaje: 5

Trimis: Vin Noi 11, 2005 11:53 am    Titlul subiectului: Ajutor pt. profan: selectie care merge ff incet!  

Am mare nevoie de ajutor in a diagnostica o problema. Aplicatia e facuta de altcineva (php+mysql) si in mare e o colectie de documente care se alimenteaza de catre niste utilizatori si se consulta de catre altii. Documentele se asigneaza mai multor categorii de produse (sunt manuale de utilizare, cataloage si se pot referi la unul sau mai multe produse). Modul de consultare e folosind un meniu arborescent (arborele de produse pe 4 nivele adancime); cand se face click pe o frunza apare lista documentelor aferente produsului respectiv. Aici e buba! Daca in baza de date exista multe documente (peste 10) aferente produsului respectiv timpul de afisare depaseste 1 minut si creste proportional cu nr. de documente. Ceea ce se afiseaza e doar lista de documente cu linkuri catre fisierele respective, deci nu ar trebui sa dureze atata.
Sper ca m-am facut inteleasa. Problema pare sa fie la query-ul respectiv, dar nu stiu in ce ar consta. Poate cineva sa ma ajute? Multumesc.
Sus  
ExcalIbvr



Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea

Trimis: Vin Noi 11, 2005 12:02 pm    Titlul subiectului:  

Intai posteaza si interogarea.
Sus  
agazdaru



Data înscrierii: 03/Noi/2005
Mesaje: 5

Trimis: Vin Noi 11, 2005 12:22 pm    Titlul subiectului:  

Am dat si afisarea pt ca nu stiu unde e pb:
multumesc!

an style="color: #000000"><?php $sqdoc  = "select distinct docu.docu_iden,docu_urll,docu_data,docu_desc,docu_lang,tdoc.tdoc_iden from tdoc,docu,r_docu_tipp,r_docu_fami where docu.docu_iden=r_docu_tipp.docu_iden and r_docu_fami.docu_iden=docu.docu_iden and tdoc.tdoc_iden=docu.tdoc_iden and r_docu_fami.fami_iden=".$HTTP_GET_VARS["id"]. " and tdoc.tdoc_iden=".$HTTP_GET_VARS["listid"]  ; $iqdoc=mysql_query($sqdoc) or die("cannot list docu for current type..."); $jk=0; $curdoc=0; $linie["docu_iden"]=-1; echo "<table cellpadding=\"1\" cellspacing=\"1\" border=\"0\" width=\"100%\">"; echo "\n<tr>"; echo "\n<td width='100%' class=\"head\">&nbsp;Document&nbsp;</td>"; echo "\n<td width='1%' class=\"head\">&nbsp;Limba&nbsp;</td>"; echo "\n<td width='1%' class=\"head\">&nbsp;Data&nbsp;plasare&nbsp;</td>"; echo "\n<td width='1%' class=\"head\" align=\"center\">&nbsp;Dim&nbsp;</td>"; echo "\n<tr>"; $clig=iif($clig==$bgcolorList1,$bgcolorList2,$bgcolorList1); $oo=0; while($jk<mysql_num_rows($iqdoc)) {     $linie = mysql_fetch_array($iqdoc) or die ("Fetch error n° ".mysql_errno()." : ".mysql_error());     $curdoc=$linie["docu_iden"];     $sqdd=mysql_query("select * from r_docu_tipp where docu_iden=".$linie["docu_iden"]) or die("cannot retrieve wri for docu");     $iik=0;$dw="";     $pos="not";      while($iik<mysql_num_rows($sqdd)) {         $lin=mysql_fetch_array($sqdd) or die ("Fetch error n° ".mysql_errno()." : ".mysql_error());         for($ii=0;$ii<$nsiz;$ii++) {              if($swork[$ii]==$lin["tipp_iden"])  {                  $pos="yes"; break;             }         }         $iik++;     }     if( $pos=="yes" ) {         $tf="";         $tf=substr($linie["docu_urll"],strrpos($linie["docu_urll"],".")+1,strlen($linie["docu_urll"]));         switch($tf) {             case "gif"  : $tf="tgif.gif"; break;             case "jpeg" : $tf="tgif.gif"; break;             case "pjpeg": $tf="tgif.gif"; break;             case "jpg"  : $tf="tgif.gif"; break;             case "jpe"  : $tf="tgif.gif"; break;             case "doc"  : $tf="tdoc.gif"; break;             case "rtf"  : $tf="tdoc.gif"; break;             case "htm":   $tf="thtm.gif"; break;             case "html":  $tf="thtm.gif"; break;             case "pdf"  : $tf="tpdf.gif"; break;             default     : $tf="tdvr.gif"; break;         }         $poz="<img src=\"imag/".$tf."\" width=\"18\" height=\"17\" border=0 alt=\"preview document...\">";                  echo "\n<tr>";         $clig=iif($clig==$bgcolorEdit,$bgcolorEdit,$bgcolorEdit); $cs="";$cl=""; $trimat=60;                  if(strlen($linie["docu_desc"])>$trimat) { $cs="...";} else {$cs="";}         echo "<td nowrap width=\"100%\" valign=\"top\" ".$smlt.$clig."';\""." class=\"listList\" bgcolor=\"".$bgcolorList2."\">"."&nbsp;<a href='javascript&#058;viewDoc(\"".$linie["docu_urll"]."\")'>".$poz."</a>";         echo "&nbsp;<a href='".$linie["docu_urll"]."' target='_blank'>".substr($linie["docu_desc"],0,$trimat).$cs."</a>&nbsp;</td>";         echo "<td nowrap align='center' width='1%' valign=\"top\" ".$smlt.$clig."';\""." class=\"listList\" bgcolor=\"".$bgcolorList2."\">";         echo "&nbsp;".substr($linie["docu_lang"],0,$trimat).$cs."&nbsp;</td>";         echo "<td nowrap align='center' width='1%' class=\"listList\">&nbsp;".date("d-m-y",strtotime($linie["docu_data"]))."&nbsp";         echo "</td>";                  $fs=  number_format (filesize($linie["docu_urll"])/1024 ,0 );         echo "<td nowrap width='1%' align='right' class=\"listList\">&nbsp;".$fs."&nbsp;K&nbsp;</td>";         echo "</tr>";     $oo++;     }     $jk++; } echo "</table>"; 
Sus  
ExcalIbvr



Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea

Trimis: Vin Noi 11, 2005 12:29 pm    Titlul subiectului:  

Eu nu citesc codu' ala, arata groaznic...
Interogarea imbina 4 tabele, ai cateva conditii pe-acolo... Ce configuratie are server-ul?
Da interogarea asta in phpMyAdmin sau ce folosesti pt. a administra bazele de date si vezi daca dureaza tot asa de mult. Daca dureaza cat ar trebui sa dureze (cateva milisecunde) inseamna ca problema e la codul de afisare.
Sus  
agazdaru



Data înscrierii: 03/Noi/2005
Mesaje: 5

Trimis: Vin Noi 11, 2005 1:37 pm    Titlul subiectului:  

Serverul e Apache 1.3.26.
Am sa incerc separat interogarea si revin.
Merci.
Sus  
agazdaru



Data înscrierii: 03/Noi/2005
Mesaje: 5

Trimis: Vin Noi 11, 2005 4:51 pm    Titlul subiectului:  

Deci e din php. Direct a durat 0.11 sec. Sa mut postul la "php code"?
Sus  
ExcalIbvr



Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea

Trimis: Vin Noi 11, 2005 4:59 pm    Titlul subiectului:  

Ar ajuta daca ai include codul intre tagurile [ php ] [ /php ] sau macar [ code ] [ /code ].
Sus  
ExcalIbvr



Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea

Trimis: Vin Noi 11, 2005 5:32 pm    Titlul subiectului:  

Vai... jalnic codul asta... teribil! Niste nume de variabile... pfoa!
1. Nu e nevoie sa pui \n cand faci un table.
2. In linia urmatoare, $linie["docu_iden"] nu-i cumva -1? A fost initializat asa mai sus.
an style="color: #000000"><?php $sqdd=mysql_query("select * from r_docu_tipp where docu_iden=".$linie["docu_iden"]) 
3. In linia urmatoare... cine ii $nsiz?
an style="color: #000000"><?php for($ii=0;$ii<$nsiz;$ii++) 

Ce ar trebui sa faca acest cod? :p O afisare in tabel? Te rog spune-mi ca e mai mult decat asta...
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community