Php/Mysql manchmal kein Ergebniss mit gleicher Abfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Jedimen
    antwortet
    Wurde geändert - Danke.

    Einen Kommentar schreiben:


  • ezkimo
    antwortet
    ... und wenn Du möchtest, dass jetzt noch jemand antwortet, verwende einfach die PHP BBCodes dieses Forums, um den PHP Code für jedermann lesbar zu machen. So wird Dir hier garantiert niemand antworten ...

    Einen Kommentar schreiben:


  • Jedimen
    antwortet
    Klar kann ich ihn schicken. Aber nochmal - ich glaube nicht das es an dem Script liegt. Das Script wird am Tag bestimmt 2000 mal ausgeführt und ca 20x kommt kein Result auch wenn keine Einschränkungen gemacht werden.
    Es sind auch keine Felder im Ergebniss (das prüfe ich mittlerweile).

    PHP-Code:
    $strQuery  "SELECT main.*,DATEDIFF(CURDATE(), date(erstellt)) AS zeit,
                ( select min(originalprice) from tbl_prices where main.id = tbl_prices.product_id) AS originalprice ,
                ( select min(price) from tbl_prices where main.id = tbl_prices.product_id) AS price,
                ( select count(*) from tbl_prices where main.id = tbl_prices.product_id) AS pricecounter from main
                where 1 "
    ;

    if (
    $CatID 0) {
        
    $strQuery .= " AND catid = ".$CatID;
        }
    if (
    strlen($mainCategory)>0) {
        
    $strQuery .= " AND cat1_convert = '".$mainCategory."' ";
        } 

    if (
    strlen($Category)>0) {
        
    $strQuery .= " AND cat2_convert = '".$Category."' ";
        }
    if (
    strlen($subCategory)>0) {
        
    $strQuery .= " AND cat3_convert = '".$subCategory."' ";
        }
    if (
    strlen($Color)>0) {
        
    $strQuery .= " AND color = '".$Color."' ";
        }
    if (
    strlen($searchtxt)>0) {    
        
    include(
    "include/searchtxt.inc.php");

    }  
    if (
    strlen($producer)>0) {
        
    $strQuery .= " AND nameconvert = '".addslashes($producer)."' ";
        }
    if ((
    _SHOWOFFERS==0) AND ($special==0)) {
        
    $strQuery .= " AND specialprice = 0 ";
        }
    if (
    $special==1) {
        
    $strQuery .= " AND specialprice = 1 ";
        }
    if (
    $news==1) {
        
    $strQuery .= " AND DATEDIFF(CURDATE(), date(erstellt)) < ".  _HOWOLDNEWS;
        } 

    if (
    $sizesearch 0) {
        
    $strQuery .= " AND id in (Select Artnr from tbl_gr left join tbl_sizecalc on tbl_sizecalc.size = tbl_gr.bezeichner where tbl_sizecalc.display ='$sizesearch' and tbl_gr.menge > 0) "// Nur mit bestand
    }            
    if (
    $highprice>0) {
                    
    $strQuery .= " AND id in (Select tbl_prices.product_id  from tbl_prices where price between ".$lowprice." and ".$highprice.")";
                }

    if (
    strlen($wide) > 0) {            
                    
    $strQuery .= " AND weite ='$wide' "// weite eingrenzen
    }
    if (
    strlen($heelform) > 0) {            
                    
    $strQuery .= " AND absatzform ='$heelform' "// absatz eingrenzen
    }
    if (
    strlen($heelsize) > 0) {
        
    $heelfrom = (int) substr($heelsize,0,strpos($heelsize,','));
        
    $heelto = (int) substr($heelsize,strpos($heelsize,',')+1,strlen($heelsize));
        
        if ((
    $heelfrom==0) or ($heelto==0)) {
            
                   if (
    $heelfrom==0$strQuery .= " AND absatz <= $heelto ";
                   if (
    $heelto==0$strQuery .= " AND absatz >= $heelfrom ";
            
            
        } else {
        
                    
    $strQuery .= " AND absatz between $heelfrom and $heelto "// absatz eingrenzen
    }
    }


        
    $strQuery .= "  group by  id";

      
    if (
    strlen($sortField)>0) { 
        
    $strQuery .= "  ORDER BY $sortField $sortOrder, ordernr"// nach Rang sortiert
    } else {
        
        
    $strQuery .= "  ORDER BY  erstellt,ordernr Desc"// nach Rang sortiert
        
    }

    //echo $strQuery;

    $dbAbfrage = @MysqlQuery($strQuery);

    if (
    mysql_num_rows($dbAbfrage)>0){

    while(
    $row = @mysql_fetch_object($dbAbfrage)) { 
        
    $arr_maincat[$row->maincategorytxt] = $row->maincat_convert;
        
    $arr_cat1[$row->categorytxt1] = $row->cat1_convert;
        
    $arr_cat2[$row->categorytxt2] = $row->cat2_convert;
        
    $arr_cat3[$row->categorytxt3] = $row->cat3_convert;
        
    $arr_producer[$row->name] =   $row->nameconvert;    
        
    $arr_colors[] = $row->color;
        
    $arr_prices[] = $row->price;
        
    $arr_absatz[] = $row->absatz;
        
    $arr_absatzform[] = $row->absatzform;
        
    $arr_weite[] = $row->weite;

    }

    uasort($arr_producer,'cmp');

    $arr_colors clean_array(array_unique($arr_colors));
    sort($arr_colors);

    $arr_prices array_unique($arr_prices);
    sort($arr_prices);

    $arr_absatz clean_array(array_unique($arr_absatz));
    sort($arr_absatz);


    $arr_absatzform clean_array(array_unique($arr_absatzform));
    sort($arr_absatzform);


    $arr_weite array_unique($arr_weite);
    $arr_weite clean_array($arr_weite);


    sort($arr_weite);



    mysql_data_seek($dbAbfrage0); 

         
    $intMaxRows mysql_num_rows($dbAbfrage); // Maximale Anzahl
         
    $intFieldcount mysql_num_fields($dbAbfrage);
          if (
    $intMaxRows 0) {
            
             
    $intPages = (floor(($intMaxRows 1) / $LISTLENGTH));
             
    $intCurrentPage = (int) $pg;
             
    $intPosition 0;
             
    $intCursor $intNavCursor = ($pg == 0) ? $pg $LISTLENGTH;
             
    // Navigation vorbereiten
             
    while($arrRS mysql_fetch_assoc($dbAbfrage)) {
                 
    $nItemID = (int) @mysql_result($dbAbfrage$intNavCursor 1"itemid");
                 
    $cItemID = (int) @mysql_result($dbAbfrage$intNavCursor"itemid");
                 
    $pItemID = (int) @mysql_result($dbAbfrage$intNavCursor 1"itemid");
                 
    $intNavCursor++;
                 if (
    $cItemID == 0) break; // letzte Reihe ausblenden
                 
    $arrNavigation[$cItemID] = array($pItemID$nItemID);
             }
               
    $strNavigation urlencode(serialize($arrNavigation));
             
    mysql_data_seek($dbAbfrage$intCursor); // Zeiger erneut setzen
             
    }

    $artikelcounter $intMaxRows;  


    Zuletzt geändert von Jedimen; 19.10.2012, 15:56.

    Einen Kommentar schreiben:


  • Kropff
    antwortet
    Code?

    Peter

    Einen Kommentar schreiben:


  • Jedimen
    hat ein Thema erstellt Php/Mysql manchmal kein Ergebniss mit gleicher Abfrage.

    Php/Mysql manchmal kein Ergebniss mit gleicher Abfrage

    Hallo miteinander?

    Ich logge (absicht war einem bot 404 zurück zugeben) auf unserem Webserver (Shop) Seitenaufrufe mit, wo die Seiten eventl. keinen Inhalt von der DB mehr haben /also nicht mehr existent sind und gebe dem Bot 404 zurück.

    Mittlerweile sind viel zu viele Seiten geloggt mit 404 die einen Inhalt haben.

    Folgendes passiert:

    Manchmal bringt die Query die die Seite mit Inhalt füllt keinen Result.
    Wenn ich die Seite gleich nochmal aufrufe funktioniert es.
    Die Datenmenge ist nicht klein aber wird normalerweise und 1 Sek. geschafft.



    Kann mir jemand helfen?


    Gruß
    Christian
Lädt...
X