Article View: pl.comp.lang.php
Article #219833Re: Wolno dzialajacy skrypt
From: Lemat
Date: Thu, 23 Jul 2009 21:18
Date: Thu, 23 Jul 2009 21:18
36 lines
2227 bytes
2227 bytes
maYk wrote:
> Problem polega na tym ze wszystko to bardzo wolno dziala. Przy 1700
co do statusów, o pierwsza próba reanimacji wygląda tak:
$sql = "SELECT DISTINCT product_status FROM `_cms_groups_data WHERE `status`
= '3'";
while ($wynik = mysql_fetch_array($result)) {
$statuses .= $wynik['product_status'];
}
if (isset($statuses)){
$new_statuses = array_unique(explode(",",$statuses));
foreach($new_statuses as $statuses) {
if (!empty($statuses))
$list_statuses[$statuses]=$pull_up_product_status_info[$statuses];
}
if (isset($list_statuses))
$list_statuses = sort($list_statuses);
}
czyli najpierw stworzymy jednego długiego stringa, potem go podzielimy i
wybierzemy wartości unikalne
na końcu zamiast array_msort zróbmy sort - niech $list_statuses będzie
tablicą której kluczem jest id statusu a wartością jego nazwa.
druga próba reanimacji wymagałaby zmiany bazy danych - product_status nie
powinna być listą wartości oddzielonych przecinkami, bo to się koszmarnie
wolno (jak sam zauważyłeś) parsuje/przetwarza. Standardowo robi się
oddzielną tabelę na statusy i całą robotę z unikalnością znowu zwala na bazę
danych.
--
Pozdrawiam
Lemat
Technical Details
Message-ID:
<h4aklf$j41$1@nemesis.news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mailReferences:
<73ced6b9-b6ea-42c8-beb7-d3af06008365@26g2000yqk.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail From: Lemat <#@lemat.priv.pl> Newsgroups: pl.comp.lang.php Subject: Re: Wolno dzialajacy skrypt Followup-To: pl.comp.lang.php Date: Thu, 23 Jul 2009 23:18:39 +0200 Organization: lemat.priv.pl Lines: 38 Message-ID: <h4aklf$j41$1@nemesis.news.neostrada.pl> References: <73ced6b9-b6ea-42c8-beb7-d3af06008365@26g2000yqk.googlegroups.com> NNTP-Posting-Host: goblin.lemat.priv.pl Mime-Version: 1.0 X-Trace: nemesis.news.neostrada.pl 1248384495 19585 79.190.106.118 (23 Jul 2009 21:28:15 GMT) X-Complaints-To: usenet@news.neostrada.pl NNTP-Posting-Date: Thu, 23 Jul 2009 21:28:15 +0000 (UTC) User-Agent: KNode/0.99.01 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit