Reklama

Poniższy fragment kodu rozpieprza cały portal. To jest blok dotyczący “ostatnich odpowiedzi” z tym, że najprawdopodobniej nie cały ale ten fragment, który dotyczy ignorowania trolli.

Poniższy fragment kodu rozpieprza cały portal. To jest blok dotyczący “ostatnich odpowiedzi” z tym, że najprawdopodobniej nie cały ale ten fragment, który dotyczy ignorowania trolli. Jeśli jest na sali Phapowiec i potrafi wskazać “byka” w tym skrypcie, który zapętla bazę, będę wdzięczny za podpowiedź. Jeśli jest taki co widzi, ale chciałby na tym zarobić, to proszę o kontakt na kontrowersje@kontrowersje.net. Póki co musiałem wyłączyć ten blok, ponieważ nieustanie idą zapytania do bazy, które rozkładają portal.

‘, $right);
$right=ereg_replace(‘{img ‘, ‘‘, $right);

Reklama

$right=ereg_replace(‘

‘, ‘

‘, $right);

$right=ereg_replace(“December”, “Grudzień”, $right);
$right=ereg_replace(“November”, “Listopad”, $right);
$right=ereg_replace(“September”, “Wrzesień”, $right);
$right=ereg_replace(“October”, “Październik”, $right);
$right=ereg_replace(“January”, “Styczeń”, $right);
$right=ereg_replace(“February”, “Luty”, $right);
$right=ereg_replace(“March”, “Marzec”, $right);
$right=ereg_replace(“April”, “Kwiecień”, $right);

$right=ereg_replace(“May”, “Maj”, $right);
$right=ereg_replace(“Juni”, “Czerwiec”, $right);
$right=ereg_replace(“July”, “Lipiec”, $right);
$right=ereg_replace(“August”, “Sierpień”, $right);

$right=ereg_replace(‘

ndz.

‘, ‘

ndz.

‘,$right);

$right=ereg_replace(‘

‘, ‘

‘,$right);

$right=ereg_replace(‘

‘, ‘

‘,$right);

$right=ereg_replace(‘Ostatnio dodane odpowiedzi’, ”,$right);
$right=ereg_replace(‘zaktualizowany’, ”,$right);
$right=ereg_replace(‘Szybka odpowiedź’, ”,$right);

if (!$user->roles[2]) $right=ereg_replace(‘Mój blog

  • Pisz bloga
  • ‘, ”,$right);

    print $right;

    $profile = profile_load_profile($user);

    $ostatnie_odpowiedzi = $user->profile_ostatnie_odpowiedzi;
    if($ostatnie_odpowiedzi < 5) $ostatnie_odpowiedzi = 5; $ignorowani = ''; $ignorowani .= " AND (UPPER(comments.name) != UPPER('Lustro')) "; $ignorowani .= " AND (UPPER(comments.name) != UPPER('MaciekS')) "; $ignorowani .= " AND (UPPER(comments.name) != UPPER('Leyte')) "; //$ignorowani .= " AND (UPPER(comments.name) != UPPER('zlotousty_klamca')) "; $query = "SELECT node.nid AS nid, node.uid as uid FROM {node} node LEFT JOIN {term_node} term_node_174 ON node.vid = term_node_174.vid AND term_node_174.tid = 174 WHERE (term_node_174.tid = 174) and node.nid >50″;

    $queryResult = db_query($query);

    while ($nodescount = db_fetch_object($queryResult)) {

    $comments_priv .= ” and comments.nid<>“.$nodescount->nid.” “;

    }

    $query=”SELECT comments.cid AS cid,
    comments.subject AS comments_subject,
    comments.nid AS comments_nid,
    comments.pid As comments_pid,
    comments.timestamp AS comments_timestamp,
    comments.name AS comments_name,
    comments.uid AS comments_uid,
    comments.homepage AS comments_homepage,
    comments.comment AS comments_comment,
    comments.format AS comments_format,
    history_user.timestamp AS history_user_timestamp,
    history_user.nid AS history_user_nid,
    node_comments.created AS node_comments_created,
    node_comments.changed AS node_comments_changed,
    node_comments__node_comment_statistics.last_comment_timestamp AS node_comments__node_comment_statistics_last_comment_timestamp,
    node_comments.nid AS node_comments_nid
    FROM root_comments comments
    LEFT JOIN root_node node_comments ON comments.nid = node_comments.nid
    LEFT JOIN root_history history_user ON node_comments.nid = history_user.nid AND history_user.uid = “.$user->uid.”
    LEFT JOIN root_node_comment_statistics node_comments__node_comment_statistics ON node_comments.nid = node_comments__node_comment_statistics.nid and last_comment_uid<>519
    WHERE (node_comments.status <> 0 OR node_comments.uid = “.$user->uid.”)”.$ignorowani.$comments_priv.”
    ORDER BY comments_timestamp DESC limit “.$ostatnie_odpowiedzi.””;

    $queryResult = db_query($query);

    ?>

    Reklama

    93 KOMENTARZE

    1. Nie jestem PHPowcem
      ale mam postulat jak najbardziej on-topic, połączony z ankietą. Otóż – jak napisałem już u siebie – dla mnie ten blok “ostatnie odpowiedzi” (prawa strona layoutu, w zakładce “Portal”) mógłby nie istnieć – i tu pytanie: Czy ktokolwiek dotkliwie czuje jego brak?

      Bo jeżeli nie, to można z niego zrezygnować, przynajmniej tymczasowo, do czasu znalezienia (się) fachowca od PHP. A wszystkim, którzy lubią być na bieżąco z wpisami i komentarzami, polecam podstronę http://kontrowersje.net/tracker, posortowaną wg prawej kolumny “ostatni wpis”, od najnowszych do najstarszych.

      Natomiast z uporem maniaka postulowałbym przywrócenie ustawialności widoku (ilości i kolejności) komentarzy POD WPISEM oraz znaczników “New”. A jeżeli nie, bo provider…, to czy można spróbować chociaż na chwilę i zobaczyć, jak to faktycznie wpłynie na portal. Bo jeżeli problem był z blokiem, wspólnym dla wszystkich layoutów, a nie z ustawialnością komentarzy, to może jednak jej przywrócenie nie namiesza? Czy też może jest to związane jedno z drugim (ustawialność i znaczniki z blokiem po prawej)???

      Jeżeli okaże się, że od tego portal znowu zacznie mulić, obiecuję uroczyście zamknąć buzię i nie wracać do sprawy. Przez jakiś czas.

      • Odpowiedzi mogę spróbować
        Odpowiedzi mogę spróbować przywrócić, ale ten blok jest istotny, to był prosty w obsłudze wskaźnik tętna na portalu. Z tym “new” nie mam pojęcia o co chodzi, bo w tym nic nie grzebałem, skoro znikło, to pewnie jest z czymś powiązane. Tak czy siak PHP-owiec jest niezbędny, sam Drupal daję rade nie z takimi portalami jak Kontrowersje, problem polega na tym, że “magik” od zabaw z trollami nadbudował oryginalne skrypty, aby zaimponować humanitarną zabawką, a to się teraz odzywa i to w kilku miejscach. Po wyłączeniu bloku portal hula, aż miło. Ale to jeszcze nie jest to co powinno, jeszcze się odzywają jakieś odwołania do tego skryptu w czerwonych komunikatach na stronie.

        • O?
          A ja nie. Może jakiś restart przeglądarki… albo kompa… być może na chwilę zniknę…

          Edit: przeglądarka chyba nie. Może inna. Albo komputer.

          Edit2: Jestem po restarcie, edytuję, żeby przetestować…

          Edit3: Nie bangla. Dam sobie spokój.

          Edit 4: Osz kurde. Pod Chromem widać znaczniki! Chyba zmienię przeglądarkę…

    2. Nie jestem PHPowcem
      ale mam postulat jak najbardziej on-topic, połączony z ankietą. Otóż – jak napisałem już u siebie – dla mnie ten blok “ostatnie odpowiedzi” (prawa strona layoutu, w zakładce “Portal”) mógłby nie istnieć – i tu pytanie: Czy ktokolwiek dotkliwie czuje jego brak?

      Bo jeżeli nie, to można z niego zrezygnować, przynajmniej tymczasowo, do czasu znalezienia (się) fachowca od PHP. A wszystkim, którzy lubią być na bieżąco z wpisami i komentarzami, polecam podstronę http://kontrowersje.net/tracker, posortowaną wg prawej kolumny “ostatni wpis”, od najnowszych do najstarszych.

      Natomiast z uporem maniaka postulowałbym przywrócenie ustawialności widoku (ilości i kolejności) komentarzy POD WPISEM oraz znaczników “New”. A jeżeli nie, bo provider…, to czy można spróbować chociaż na chwilę i zobaczyć, jak to faktycznie wpłynie na portal. Bo jeżeli problem był z blokiem, wspólnym dla wszystkich layoutów, a nie z ustawialnością komentarzy, to może jednak jej przywrócenie nie namiesza? Czy też może jest to związane jedno z drugim (ustawialność i znaczniki z blokiem po prawej)???

      Jeżeli okaże się, że od tego portal znowu zacznie mulić, obiecuję uroczyście zamknąć buzię i nie wracać do sprawy. Przez jakiś czas.

      • Odpowiedzi mogę spróbować
        Odpowiedzi mogę spróbować przywrócić, ale ten blok jest istotny, to był prosty w obsłudze wskaźnik tętna na portalu. Z tym “new” nie mam pojęcia o co chodzi, bo w tym nic nie grzebałem, skoro znikło, to pewnie jest z czymś powiązane. Tak czy siak PHP-owiec jest niezbędny, sam Drupal daję rade nie z takimi portalami jak Kontrowersje, problem polega na tym, że “magik” od zabaw z trollami nadbudował oryginalne skrypty, aby zaimponować humanitarną zabawką, a to się teraz odzywa i to w kilku miejscach. Po wyłączeniu bloku portal hula, aż miło. Ale to jeszcze nie jest to co powinno, jeszcze się odzywają jakieś odwołania do tego skryptu w czerwonych komunikatach na stronie.

        • O?
          A ja nie. Może jakiś restart przeglądarki… albo kompa… być może na chwilę zniknę…

          Edit: przeglądarka chyba nie. Może inna. Albo komputer.

          Edit2: Jestem po restarcie, edytuję, żeby przetestować…

          Edit3: Nie bangla. Dam sobie spokój.

          Edit 4: Osz kurde. Pod Chromem widać znaczniki! Chyba zmienię przeglądarkę…

    3. Nie jestem PHPowcem
      ale mam postulat jak najbardziej on-topic, połączony z ankietą. Otóż – jak napisałem już u siebie – dla mnie ten blok “ostatnie odpowiedzi” (prawa strona layoutu, w zakładce “Portal”) mógłby nie istnieć – i tu pytanie: Czy ktokolwiek dotkliwie czuje jego brak?

      Bo jeżeli nie, to można z niego zrezygnować, przynajmniej tymczasowo, do czasu znalezienia (się) fachowca od PHP. A wszystkim, którzy lubią być na bieżąco z wpisami i komentarzami, polecam podstronę http://kontrowersje.net/tracker, posortowaną wg prawej kolumny “ostatni wpis”, od najnowszych do najstarszych.

      Natomiast z uporem maniaka postulowałbym przywrócenie ustawialności widoku (ilości i kolejności) komentarzy POD WPISEM oraz znaczników “New”. A jeżeli nie, bo provider…, to czy można spróbować chociaż na chwilę i zobaczyć, jak to faktycznie wpłynie na portal. Bo jeżeli problem był z blokiem, wspólnym dla wszystkich layoutów, a nie z ustawialnością komentarzy, to może jednak jej przywrócenie nie namiesza? Czy też może jest to związane jedno z drugim (ustawialność i znaczniki z blokiem po prawej)???

      Jeżeli okaże się, że od tego portal znowu zacznie mulić, obiecuję uroczyście zamknąć buzię i nie wracać do sprawy. Przez jakiś czas.

      • Odpowiedzi mogę spróbować
        Odpowiedzi mogę spróbować przywrócić, ale ten blok jest istotny, to był prosty w obsłudze wskaźnik tętna na portalu. Z tym “new” nie mam pojęcia o co chodzi, bo w tym nic nie grzebałem, skoro znikło, to pewnie jest z czymś powiązane. Tak czy siak PHP-owiec jest niezbędny, sam Drupal daję rade nie z takimi portalami jak Kontrowersje, problem polega na tym, że “magik” od zabaw z trollami nadbudował oryginalne skrypty, aby zaimponować humanitarną zabawką, a to się teraz odzywa i to w kilku miejscach. Po wyłączeniu bloku portal hula, aż miło. Ale to jeszcze nie jest to co powinno, jeszcze się odzywają jakieś odwołania do tego skryptu w czerwonych komunikatach na stronie.

        • O?
          A ja nie. Może jakiś restart przeglądarki… albo kompa… być może na chwilę zniknę…

          Edit: przeglądarka chyba nie. Może inna. Albo komputer.

          Edit2: Jestem po restarcie, edytuję, żeby przetestować…

          Edit3: Nie bangla. Dam sobie spokój.

          Edit 4: Osz kurde. Pod Chromem widać znaczniki! Chyba zmienię przeglądarkę…

    4. Na początek:
      pierwsze i trzecie wywołanie funkcji ereg_replace jest niedomknięte ( wymagane są trzy argumenty i nawias zamykający, a po nim średnik).
      Wywołania ereg_replace pomiędzy :
      ereg_replace(“August”, “Sierpień”, $right);
      a
      ereg_replace(‘Ostatnio dodane odpowiedzi’, ”,$right);
      są bezużyteczne, mogą być usunięte – dla pewności na początek zakomentuj stawiając // na początku każdej linii lub obejmij je /* i */

      Jeżeli zmienna $comments_priv nie jest wcześniej inicjalizowana, błędem jest inicjalizacja przez .= ; w takiej sytuacji powinno być = bez kropki.

      Jakiej wersji PHP używasz?
      c.d.n.(b.m.)

      • Niestety nie mam pojęcia o
        Niestety nie mam pojęcia o czym do mnie mówisz. Znacznie prościej po prostu poprawić te znaczniki i wkleić w komentarzu poprawiony kod. Ale to co piszesz to jest chyba kosmetyka, bo do bazy cały czas idą zapytania dotyczące tego fragmentu, co kasuje wpisy trolli z SG. Z tą wersją PHP nie wiem gdzie tego szukać, ale coś takiego znalazłem Wersja klienta MySQL: 5.0.84

        • Raczej faktycznie kosmetyka
          edytor graficzny popieprzył mi poprawki. :(((
          Ale popieprzone nawiasy mogą zakłócić następujący po nich kod…
          Spróbuj tak:

          ‘, $right);

          /*$right=ereg_replace(‘
          ‘, ‘
          ‘, $right);
          */
          $right=ereg_replace(“December”, “Grudzień”, $right);
          $right=ereg_replace(“November”, “Listopad”, $right);
          $right=ereg_replace(“September”, “Wrzesień”, $right);
          $right=ereg_replace(“October”, “Październik”, $right);
          $right=ereg_replace(“January”, “Styczeń”, $right);
          $right=ereg_replace(“February”, “Luty”, $right);
          $right=ereg_replace(“March”, “Marzec”, $right);
          $right=ereg_replace(“April”, “Kwiecień”, $right);

          $right=ereg_replace(“May”, “Maj”, $right);
          $right=ereg_replace(“Juni”, “Czerwiec”, $right);
          $right=ereg_replace(“July”, “Lipiec”, $right);
          $right=ereg_replace(“August”, “Sierpień”, $right);

          /*$right=ereg_replace(‘ ndz.

          ‘, ‘ ndz.

          ‘,$right);

          $right=ereg_replace(‘
          ‘, ‘
          ‘,$right);

          $right=ereg_replace(‘
          ‘, ‘
          ‘,$right);
          */
          $right=ereg_replace(‘Ostatnio dodane odpowiedzi’, ”,$right);
          $right=ereg_replace(‘zaktualizowany’, ”,$right);
          $right=ereg_replace(‘Szybka odpowiedź’, ”,$right);

          if (!$user->roles[2]) $right=ereg_replace(‘Mój blog
          # Pisz bloga

          ‘, ”,$right);

          print $right;

          $profile = profile_load_profile($user);

          $ostatnie_odpowiedzi = $user->profile_ostatnie_odpowiedzi;
          if($ostatnie_odpowiedzi < 5) $ostatnie_odpowiedzi = 5; $ignorowani = ''; $ignorowani .= " AND (UPPER(comments.name) != UPPER('Lustro')) "; $ignorowani .= " AND (UPPER(comments.name) != UPPER('MaciekS')) "; $ignorowani .= " AND (UPPER(comments.name) != UPPER('Leyte')) "; //$ignorowani .= " AND (UPPER(comments.name) != UPPER('zlotousty_klamca')) "; $query = "SELECT node.nid AS nid, node.uid as uid FROM {node} node LEFT JOIN {term_node} term_node_174 ON node.vid = term_node_174.vid AND term_node_174.tid = 174 WHERE (term_node_174.tid = 174) and node.nid >50″;

          $queryResult = db_query($query);

          $comments_priv = ”;
          while ($nodescount = db_fetch_object($queryResult)) {

          $comments_priv .= ” and comments.nid<>“.$nodescount->nid.” “;

          }

          $query=”SELECT comments.cid AS cid,
          comments.subject AS comments_subject,
          comments.nid AS comments_nid,
          comments.pid As comments_pid,
          comments.timestamp AS comments_timestamp,
          comments.name AS comments_name,
          comments.uid AS comments_uid,
          comments.homepage AS comments_homepage,
          comments.comment AS comments_comment,
          comments.format AS comments_format,
          history_user.timestamp AS history_user_timestamp,
          history_user.nid AS history_user_nid,
          node_comments.created AS node_comments_created,
          node_comments.changed AS node_comments_changed,
          node_comments__node_comment_statistics.last_comment_timestamp AS node_comments__node_comment_statistics_last_comment_timestamp,
          node_comments.nid AS node_comments_nid
          FROM root_comments comments
          LEFT JOIN root_node node_comments ON comments.nid = node_comments.nid
          LEFT JOIN root_history history_user ON node_comments.nid = history_user.nid AND history_user.uid = “.$user->uid.”
          LEFT JOIN root_node_comment_statistics node_comments__node_comment_statistics ON node_comments.nid = node_comments__node_comment_statistics.nid and last_comment_uid<>519
          WHERE (node_comments.status <> 0 OR node_comments.uid = “.$user->uid.”)”.$ignorowani.$comments_priv.”
          ORDER BY comments_timestamp DESC limit “.$ostatnie_odpowiedzi.””;

          $queryResult = db_query($query);

          ?>

    5. Na początek:
      pierwsze i trzecie wywołanie funkcji ereg_replace jest niedomknięte ( wymagane są trzy argumenty i nawias zamykający, a po nim średnik).
      Wywołania ereg_replace pomiędzy :
      ereg_replace(“August”, “Sierpień”, $right);
      a
      ereg_replace(‘Ostatnio dodane odpowiedzi’, ”,$right);
      są bezużyteczne, mogą być usunięte – dla pewności na początek zakomentuj stawiając // na początku każdej linii lub obejmij je /* i */

      Jeżeli zmienna $comments_priv nie jest wcześniej inicjalizowana, błędem jest inicjalizacja przez .= ; w takiej sytuacji powinno być = bez kropki.

      Jakiej wersji PHP używasz?
      c.d.n.(b.m.)

      • Niestety nie mam pojęcia o
        Niestety nie mam pojęcia o czym do mnie mówisz. Znacznie prościej po prostu poprawić te znaczniki i wkleić w komentarzu poprawiony kod. Ale to co piszesz to jest chyba kosmetyka, bo do bazy cały czas idą zapytania dotyczące tego fragmentu, co kasuje wpisy trolli z SG. Z tą wersją PHP nie wiem gdzie tego szukać, ale coś takiego znalazłem Wersja klienta MySQL: 5.0.84

        • Raczej faktycznie kosmetyka
          edytor graficzny popieprzył mi poprawki. :(((
          Ale popieprzone nawiasy mogą zakłócić następujący po nich kod…
          Spróbuj tak:

          ‘, $right);

          /*$right=ereg_replace(‘
          ‘, ‘
          ‘, $right);
          */
          $right=ereg_replace(“December”, “Grudzień”, $right);
          $right=ereg_replace(“November”, “Listopad”, $right);
          $right=ereg_replace(“September”, “Wrzesień”, $right);
          $right=ereg_replace(“October”, “Październik”, $right);
          $right=ereg_replace(“January”, “Styczeń”, $right);
          $right=ereg_replace(“February”, “Luty”, $right);
          $right=ereg_replace(“March”, “Marzec”, $right);
          $right=ereg_replace(“April”, “Kwiecień”, $right);

          $right=ereg_replace(“May”, “Maj”, $right);
          $right=ereg_replace(“Juni”, “Czerwiec”, $right);
          $right=ereg_replace(“July”, “Lipiec”, $right);
          $right=ereg_replace(“August”, “Sierpień”, $right);

          /*$right=ereg_replace(‘ ndz.

          ‘, ‘ ndz.

          ‘,$right);

          $right=ereg_replace(‘
          ‘, ‘
          ‘,$right);

          $right=ereg_replace(‘
          ‘, ‘
          ‘,$right);
          */
          $right=ereg_replace(‘Ostatnio dodane odpowiedzi’, ”,$right);
          $right=ereg_replace(‘zaktualizowany’, ”,$right);
          $right=ereg_replace(‘Szybka odpowiedź’, ”,$right);

          if (!$user->roles[2]) $right=ereg_replace(‘Mój blog
          # Pisz bloga

          ‘, ”,$right);

          print $right;

          $profile = profile_load_profile($user);

          $ostatnie_odpowiedzi = $user->profile_ostatnie_odpowiedzi;
          if($ostatnie_odpowiedzi < 5) $ostatnie_odpowiedzi = 5; $ignorowani = ''; $ignorowani .= " AND (UPPER(comments.name) != UPPER('Lustro')) "; $ignorowani .= " AND (UPPER(comments.name) != UPPER('MaciekS')) "; $ignorowani .= " AND (UPPER(comments.name) != UPPER('Leyte')) "; //$ignorowani .= " AND (UPPER(comments.name) != UPPER('zlotousty_klamca')) "; $query = "SELECT node.nid AS nid, node.uid as uid FROM {node} node LEFT JOIN {term_node} term_node_174 ON node.vid = term_node_174.vid AND term_node_174.tid = 174 WHERE (term_node_174.tid = 174) and node.nid >50″;

          $queryResult = db_query($query);

          $comments_priv = ”;
          while ($nodescount = db_fetch_object($queryResult)) {

          $comments_priv .= ” and comments.nid<>“.$nodescount->nid.” “;

          }

          $query=”SELECT comments.cid AS cid,
          comments.subject AS comments_subject,
          comments.nid AS comments_nid,
          comments.pid As comments_pid,
          comments.timestamp AS comments_timestamp,
          comments.name AS comments_name,
          comments.uid AS comments_uid,
          comments.homepage AS comments_homepage,
          comments.comment AS comments_comment,
          comments.format AS comments_format,
          history_user.timestamp AS history_user_timestamp,
          history_user.nid AS history_user_nid,
          node_comments.created AS node_comments_created,
          node_comments.changed AS node_comments_changed,
          node_comments__node_comment_statistics.last_comment_timestamp AS node_comments__node_comment_statistics_last_comment_timestamp,
          node_comments.nid AS node_comments_nid
          FROM root_comments comments
          LEFT JOIN root_node node_comments ON comments.nid = node_comments.nid
          LEFT JOIN root_history history_user ON node_comments.nid = history_user.nid AND history_user.uid = “.$user->uid.”
          LEFT JOIN root_node_comment_statistics node_comments__node_comment_statistics ON node_comments.nid = node_comments__node_comment_statistics.nid and last_comment_uid<>519
          WHERE (node_comments.status <> 0 OR node_comments.uid = “.$user->uid.”)”.$ignorowani.$comments_priv.”
          ORDER BY comments_timestamp DESC limit “.$ostatnie_odpowiedzi.””;

          $queryResult = db_query($query);

          ?>

    6. Na początek:
      pierwsze i trzecie wywołanie funkcji ereg_replace jest niedomknięte ( wymagane są trzy argumenty i nawias zamykający, a po nim średnik).
      Wywołania ereg_replace pomiędzy :
      ereg_replace(“August”, “Sierpień”, $right);
      a
      ereg_replace(‘Ostatnio dodane odpowiedzi’, ”,$right);
      są bezużyteczne, mogą być usunięte – dla pewności na początek zakomentuj stawiając // na początku każdej linii lub obejmij je /* i */

      Jeżeli zmienna $comments_priv nie jest wcześniej inicjalizowana, błędem jest inicjalizacja przez .= ; w takiej sytuacji powinno być = bez kropki.

      Jakiej wersji PHP używasz?
      c.d.n.(b.m.)

      • Niestety nie mam pojęcia o
        Niestety nie mam pojęcia o czym do mnie mówisz. Znacznie prościej po prostu poprawić te znaczniki i wkleić w komentarzu poprawiony kod. Ale to co piszesz to jest chyba kosmetyka, bo do bazy cały czas idą zapytania dotyczące tego fragmentu, co kasuje wpisy trolli z SG. Z tą wersją PHP nie wiem gdzie tego szukać, ale coś takiego znalazłem Wersja klienta MySQL: 5.0.84

        • Raczej faktycznie kosmetyka
          edytor graficzny popieprzył mi poprawki. :(((
          Ale popieprzone nawiasy mogą zakłócić następujący po nich kod…
          Spróbuj tak:

          ‘, $right);

          /*$right=ereg_replace(‘
          ‘, ‘
          ‘, $right);
          */
          $right=ereg_replace(“December”, “Grudzień”, $right);
          $right=ereg_replace(“November”, “Listopad”, $right);
          $right=ereg_replace(“September”, “Wrzesień”, $right);
          $right=ereg_replace(“October”, “Październik”, $right);
          $right=ereg_replace(“January”, “Styczeń”, $right);
          $right=ereg_replace(“February”, “Luty”, $right);
          $right=ereg_replace(“March”, “Marzec”, $right);
          $right=ereg_replace(“April”, “Kwiecień”, $right);

          $right=ereg_replace(“May”, “Maj”, $right);
          $right=ereg_replace(“Juni”, “Czerwiec”, $right);
          $right=ereg_replace(“July”, “Lipiec”, $right);
          $right=ereg_replace(“August”, “Sierpień”, $right);

          /*$right=ereg_replace(‘ ndz.

          ‘, ‘ ndz.

          ‘,$right);

          $right=ereg_replace(‘
          ‘, ‘
          ‘,$right);

          $right=ereg_replace(‘
          ‘, ‘
          ‘,$right);
          */
          $right=ereg_replace(‘Ostatnio dodane odpowiedzi’, ”,$right);
          $right=ereg_replace(‘zaktualizowany’, ”,$right);
          $right=ereg_replace(‘Szybka odpowiedź’, ”,$right);

          if (!$user->roles[2]) $right=ereg_replace(‘Mój blog
          # Pisz bloga

          ‘, ”,$right);

          print $right;

          $profile = profile_load_profile($user);

          $ostatnie_odpowiedzi = $user->profile_ostatnie_odpowiedzi;
          if($ostatnie_odpowiedzi < 5) $ostatnie_odpowiedzi = 5; $ignorowani = ''; $ignorowani .= " AND (UPPER(comments.name) != UPPER('Lustro')) "; $ignorowani .= " AND (UPPER(comments.name) != UPPER('MaciekS')) "; $ignorowani .= " AND (UPPER(comments.name) != UPPER('Leyte')) "; //$ignorowani .= " AND (UPPER(comments.name) != UPPER('zlotousty_klamca')) "; $query = "SELECT node.nid AS nid, node.uid as uid FROM {node} node LEFT JOIN {term_node} term_node_174 ON node.vid = term_node_174.vid AND term_node_174.tid = 174 WHERE (term_node_174.tid = 174) and node.nid >50″;

          $queryResult = db_query($query);

          $comments_priv = ”;
          while ($nodescount = db_fetch_object($queryResult)) {

          $comments_priv .= ” and comments.nid<>“.$nodescount->nid.” “;

          }

          $query=”SELECT comments.cid AS cid,
          comments.subject AS comments_subject,
          comments.nid AS comments_nid,
          comments.pid As comments_pid,
          comments.timestamp AS comments_timestamp,
          comments.name AS comments_name,
          comments.uid AS comments_uid,
          comments.homepage AS comments_homepage,
          comments.comment AS comments_comment,
          comments.format AS comments_format,
          history_user.timestamp AS history_user_timestamp,
          history_user.nid AS history_user_nid,
          node_comments.created AS node_comments_created,
          node_comments.changed AS node_comments_changed,
          node_comments__node_comment_statistics.last_comment_timestamp AS node_comments__node_comment_statistics_last_comment_timestamp,
          node_comments.nid AS node_comments_nid
          FROM root_comments comments
          LEFT JOIN root_node node_comments ON comments.nid = node_comments.nid
          LEFT JOIN root_history history_user ON node_comments.nid = history_user.nid AND history_user.uid = “.$user->uid.”
          LEFT JOIN root_node_comment_statistics node_comments__node_comment_statistics ON node_comments.nid = node_comments__node_comment_statistics.nid and last_comment_uid<>519
          WHERE (node_comments.status <> 0 OR node_comments.uid = “.$user->uid.”)”.$ignorowani.$comments_priv.”
          ORDER BY comments_timestamp DESC limit “.$ostatnie_odpowiedzi.””;

          $queryResult = db_query($query);

          ?>

    7. Witam
      Nie da się rozwinąć listy wątkowej w dziale portal poleca. W pozostałych działach działa rozwijanie listy wątkowej. Mam nadzieję, że uda się ponaprawiać to wszystko.
      Pozdr.

      Dodane
      Ps. Dziwne – po wpisaniu tego komentarza lista wątków się automatycznie rozwinęla.

    8. Witam
      Nie da się rozwinąć listy wątkowej w dziale portal poleca. W pozostałych działach działa rozwijanie listy wątkowej. Mam nadzieję, że uda się ponaprawiać to wszystko.
      Pozdr.

      Dodane
      Ps. Dziwne – po wpisaniu tego komentarza lista wątków się automatycznie rozwinęla.

    9. Witam
      Nie da się rozwinąć listy wątkowej w dziale portal poleca. W pozostałych działach działa rozwijanie listy wątkowej. Mam nadzieję, że uda się ponaprawiać to wszystko.
      Pozdr.

      Dodane
      Ps. Dziwne – po wpisaniu tego komentarza lista wątków się automatycznie rozwinęla.

    10. Kod który przedstawiłeś ma masę blędów składniowych.
      Największym jednak problemem jest to, że skrypt jest tylko fragmentem , więc tak naprawdę nie wiele można wywnioskowć. Wiem, że to zabrzmi zbyt technicznie dla Ciebie ale widzę, że w przykładzie wykorzystane zostały “klasy” i “funkcje”, bez których zapoznania sie, przyczynę trudno odkryć.
      Również kompozycje SQL mogą powiedzieć coś wiecej o problemie, ale bez wglądu do bazy danych można tylko się domyślać.
      Inna sprawa to ‘ereg_replace’, która została już wycofana z ostaniej wersji PHP bo muli serwer. Należałoby użyć ‘preg_replace’.
      W podsumowaniu:
      – sprawdź skrypt i wyświetl go w całości (może to być jednak nie bardzo bezpieczne dla twojego portalu !).
      – odnajdź funkcje i klasy również załącz do skrtyptu (również bezpieczeństwo !).
      – sprawdź bazę danych i skrypt SQL
      – na czas naprawy zablokuj stronę używając filtra IP w .htaccess. Również włącz “Errors i Warnings” w .htaccess

      Na razie załączam poprawiony skrypt z użyciem ‘preg_replace’:

      ‘, $right);
      $right=preg_replace(“/December/”, “Grudzień”, $right);
      $right=preg_replace(“/November/”, “Listopad”, $right);
      $right=preg_replace(“/September/”, “Wrzesień”, $right);
      $right=preg_replace(“/October/”, “Październik”, $right);
      $right=preg_replace(“/January/”, “Styczeń”, $right);
      $right=preg_replace(“/February/”, “Luty”, $right);
      $right=preg_replace(“/March/”, “Marzec”, $right);
      $right=preg_replace(“/April/”, “Kwiecień”, $right);
      $right=preg_replace(“/May/”, “Maj”, $right);
      $right=preg_replace(“/Juni/”, “Czerwiec”, $right);
      $right=preg_replace(“/July/”, “Lipiec”, $right);
      $right=preg_replace(“/August/”, “Sierpień”, $right);

      $right=preg_replace(‘/Ostatnio dodane odpowiedzi/’, ”,$right);
      $right=preg_replace(‘/zaktualizowany/’, ”,$right);
      $right=preg_replace(‘/Szybka odpowiedź/’, ”,$right);
      if (!$user->roles[2]) $right=preg_replace(‘/Mój blog Pisz bloga/’, ”,$right);
      print $right;
      $profile = profile_load_profile($user);
      $ostatnie_odpowiedzi = $user->profile_ostatnie_odpowiedzi;
      if($ostatnie_odpowiedzi < 5) $ostatnie_odpowiedzi = 5; $ignorowani = " AND (UPPER(comments.name) != UPPER('Lustro')) AND (UPPER(comments.name) != UPPER('MaciekS')) AND (UPPER(comments.name) != UPPER('Leyte')) AND (UPPER(comments.name) != UPPER('zlotousty_klamca')) "; $query = "SELECT node.nid AS nid, node.uid as uid FROM {node} node LEFT JOIN {term_node} term_node_174 ON node.vid = term_node_174.vid AND term_node_174.tid = 174 WHERE (term_node_174.tid = 174) and node.nid >50″;

      $queryResult = db_query($query);
      while ($nodescount = db_fetch_object($queryResult)) {$comments_priv .= ” and comments.nid<>“.$nodescount->nid.” “;}

      $query=”SELECT comments.cid AS cid,
      comments.subject AS comments_subject,
      comments.nid AS comments_nid,
      comments.pid As comments_pid,
      comments.timestamp AS comments_timestamp,
      comments.name AS comments_name,
      comments.uid AS comments_uid,
      comments.homepage AS comments_homepage,
      comments.comment AS comments_comment,
      comments.format AS comments_format,
      history_user.timestamp AS history_user_timestamp,
      history_user.nid AS history_user_nid,
      node_comments.created AS node_comments_created,
      node_comments.changed AS node_comments_changed,
      node_comments__node_comment_statistics.last_comment_timestamp AS node_comments__node_comment_statistics_last_comment_timestamp,
      node_comments.nid AS node_comments_nid
      FROM root_comments comments
      LEFT JOIN root_node node_comments ON comments.nid = node_comments.nid
      LEFT JOIN root_history history_user ON node_comments.nid = history_user.nid AND history_user.uid = “.$user->uid.”
      LEFT JOIN root_node_comment_statistics node_comments__node_comment_statistics ON node_comments.nid = node_comments__node_comment_statistics.nid and last_comment_uid<>519
      WHERE (node_comments.status <> 0 OR node_comments.uid = “.$user->uid.”)”.$ignorowani.$comments_priv.”
      ORDER BY comments_timestamp DESC limit “.$ostatnie_odpowiedzi.””;

      $queryResult = db_query($query);
      ?>

    11. Kod który przedstawiłeś ma masę blędów składniowych.
      Największym jednak problemem jest to, że skrypt jest tylko fragmentem , więc tak naprawdę nie wiele można wywnioskowć. Wiem, że to zabrzmi zbyt technicznie dla Ciebie ale widzę, że w przykładzie wykorzystane zostały “klasy” i “funkcje”, bez których zapoznania sie, przyczynę trudno odkryć.
      Również kompozycje SQL mogą powiedzieć coś wiecej o problemie, ale bez wglądu do bazy danych można tylko się domyślać.
      Inna sprawa to ‘ereg_replace’, która została już wycofana z ostaniej wersji PHP bo muli serwer. Należałoby użyć ‘preg_replace’.
      W podsumowaniu:
      – sprawdź skrypt i wyświetl go w całości (może to być jednak nie bardzo bezpieczne dla twojego portalu !).
      – odnajdź funkcje i klasy również załącz do skrtyptu (również bezpieczeństwo !).
      – sprawdź bazę danych i skrypt SQL
      – na czas naprawy zablokuj stronę używając filtra IP w .htaccess. Również włącz “Errors i Warnings” w .htaccess

      Na razie załączam poprawiony skrypt z użyciem ‘preg_replace’:

      ‘, $right);
      $right=preg_replace(“/December/”, “Grudzień”, $right);
      $right=preg_replace(“/November/”, “Listopad”, $right);
      $right=preg_replace(“/September/”, “Wrzesień”, $right);
      $right=preg_replace(“/October/”, “Październik”, $right);
      $right=preg_replace(“/January/”, “Styczeń”, $right);
      $right=preg_replace(“/February/”, “Luty”, $right);
      $right=preg_replace(“/March/”, “Marzec”, $right);
      $right=preg_replace(“/April/”, “Kwiecień”, $right);
      $right=preg_replace(“/May/”, “Maj”, $right);
      $right=preg_replace(“/Juni/”, “Czerwiec”, $right);
      $right=preg_replace(“/July/”, “Lipiec”, $right);
      $right=preg_replace(“/August/”, “Sierpień”, $right);

      $right=preg_replace(‘/Ostatnio dodane odpowiedzi/’, ”,$right);
      $right=preg_replace(‘/zaktualizowany/’, ”,$right);
      $right=preg_replace(‘/Szybka odpowiedź/’, ”,$right);
      if (!$user->roles[2]) $right=preg_replace(‘/Mój blog Pisz bloga/’, ”,$right);
      print $right;
      $profile = profile_load_profile($user);
      $ostatnie_odpowiedzi = $user->profile_ostatnie_odpowiedzi;
      if($ostatnie_odpowiedzi < 5) $ostatnie_odpowiedzi = 5; $ignorowani = " AND (UPPER(comments.name) != UPPER('Lustro')) AND (UPPER(comments.name) != UPPER('MaciekS')) AND (UPPER(comments.name) != UPPER('Leyte')) AND (UPPER(comments.name) != UPPER('zlotousty_klamca')) "; $query = "SELECT node.nid AS nid, node.uid as uid FROM {node} node LEFT JOIN {term_node} term_node_174 ON node.vid = term_node_174.vid AND term_node_174.tid = 174 WHERE (term_node_174.tid = 174) and node.nid >50″;

      $queryResult = db_query($query);
      while ($nodescount = db_fetch_object($queryResult)) {$comments_priv .= ” and comments.nid<>“.$nodescount->nid.” “;}

      $query=”SELECT comments.cid AS cid,
      comments.subject AS comments_subject,
      comments.nid AS comments_nid,
      comments.pid As comments_pid,
      comments.timestamp AS comments_timestamp,
      comments.name AS comments_name,
      comments.uid AS comments_uid,
      comments.homepage AS comments_homepage,
      comments.comment AS comments_comment,
      comments.format AS comments_format,
      history_user.timestamp AS history_user_timestamp,
      history_user.nid AS history_user_nid,
      node_comments.created AS node_comments_created,
      node_comments.changed AS node_comments_changed,
      node_comments__node_comment_statistics.last_comment_timestamp AS node_comments__node_comment_statistics_last_comment_timestamp,
      node_comments.nid AS node_comments_nid
      FROM root_comments comments
      LEFT JOIN root_node node_comments ON comments.nid = node_comments.nid
      LEFT JOIN root_history history_user ON node_comments.nid = history_user.nid AND history_user.uid = “.$user->uid.”
      LEFT JOIN root_node_comment_statistics node_comments__node_comment_statistics ON node_comments.nid = node_comments__node_comment_statistics.nid and last_comment_uid<>519
      WHERE (node_comments.status <> 0 OR node_comments.uid = “.$user->uid.”)”.$ignorowani.$comments_priv.”
      ORDER BY comments_timestamp DESC limit “.$ostatnie_odpowiedzi.””;

      $queryResult = db_query($query);
      ?>

    12. Kod który przedstawiłeś ma masę blędów składniowych.
      Największym jednak problemem jest to, że skrypt jest tylko fragmentem , więc tak naprawdę nie wiele można wywnioskowć. Wiem, że to zabrzmi zbyt technicznie dla Ciebie ale widzę, że w przykładzie wykorzystane zostały “klasy” i “funkcje”, bez których zapoznania sie, przyczynę trudno odkryć.
      Również kompozycje SQL mogą powiedzieć coś wiecej o problemie, ale bez wglądu do bazy danych można tylko się domyślać.
      Inna sprawa to ‘ereg_replace’, która została już wycofana z ostaniej wersji PHP bo muli serwer. Należałoby użyć ‘preg_replace’.
      W podsumowaniu:
      – sprawdź skrypt i wyświetl go w całości (może to być jednak nie bardzo bezpieczne dla twojego portalu !).
      – odnajdź funkcje i klasy również załącz do skrtyptu (również bezpieczeństwo !).
      – sprawdź bazę danych i skrypt SQL
      – na czas naprawy zablokuj stronę używając filtra IP w .htaccess. Również włącz “Errors i Warnings” w .htaccess

      Na razie załączam poprawiony skrypt z użyciem ‘preg_replace’:

      ‘, $right);
      $right=preg_replace(“/December/”, “Grudzień”, $right);
      $right=preg_replace(“/November/”, “Listopad”, $right);
      $right=preg_replace(“/September/”, “Wrzesień”, $right);
      $right=preg_replace(“/October/”, “Październik”, $right);
      $right=preg_replace(“/January/”, “Styczeń”, $right);
      $right=preg_replace(“/February/”, “Luty”, $right);
      $right=preg_replace(“/March/”, “Marzec”, $right);
      $right=preg_replace(“/April/”, “Kwiecień”, $right);
      $right=preg_replace(“/May/”, “Maj”, $right);
      $right=preg_replace(“/Juni/”, “Czerwiec”, $right);
      $right=preg_replace(“/July/”, “Lipiec”, $right);
      $right=preg_replace(“/August/”, “Sierpień”, $right);

      $right=preg_replace(‘/Ostatnio dodane odpowiedzi/’, ”,$right);
      $right=preg_replace(‘/zaktualizowany/’, ”,$right);
      $right=preg_replace(‘/Szybka odpowiedź/’, ”,$right);
      if (!$user->roles[2]) $right=preg_replace(‘/Mój blog Pisz bloga/’, ”,$right);
      print $right;
      $profile = profile_load_profile($user);
      $ostatnie_odpowiedzi = $user->profile_ostatnie_odpowiedzi;
      if($ostatnie_odpowiedzi < 5) $ostatnie_odpowiedzi = 5; $ignorowani = " AND (UPPER(comments.name) != UPPER('Lustro')) AND (UPPER(comments.name) != UPPER('MaciekS')) AND (UPPER(comments.name) != UPPER('Leyte')) AND (UPPER(comments.name) != UPPER('zlotousty_klamca')) "; $query = "SELECT node.nid AS nid, node.uid as uid FROM {node} node LEFT JOIN {term_node} term_node_174 ON node.vid = term_node_174.vid AND term_node_174.tid = 174 WHERE (term_node_174.tid = 174) and node.nid >50″;

      $queryResult = db_query($query);
      while ($nodescount = db_fetch_object($queryResult)) {$comments_priv .= ” and comments.nid<>“.$nodescount->nid.” “;}

      $query=”SELECT comments.cid AS cid,
      comments.subject AS comments_subject,
      comments.nid AS comments_nid,
      comments.pid As comments_pid,
      comments.timestamp AS comments_timestamp,
      comments.name AS comments_name,
      comments.uid AS comments_uid,
      comments.homepage AS comments_homepage,
      comments.comment AS comments_comment,
      comments.format AS comments_format,
      history_user.timestamp AS history_user_timestamp,
      history_user.nid AS history_user_nid,
      node_comments.created AS node_comments_created,
      node_comments.changed AS node_comments_changed,
      node_comments__node_comment_statistics.last_comment_timestamp AS node_comments__node_comment_statistics_last_comment_timestamp,
      node_comments.nid AS node_comments_nid
      FROM root_comments comments
      LEFT JOIN root_node node_comments ON comments.nid = node_comments.nid
      LEFT JOIN root_history history_user ON node_comments.nid = history_user.nid AND history_user.uid = “.$user->uid.”
      LEFT JOIN root_node_comment_statistics node_comments__node_comment_statistics ON node_comments.nid = node_comments__node_comment_statistics.nid and last_comment_uid<>519
      WHERE (node_comments.status <> 0 OR node_comments.uid = “.$user->uid.”)”.$ignorowani.$comments_priv.”
      ORDER BY comments_timestamp DESC limit “.$ostatnie_odpowiedzi.””;

      $queryResult = db_query($query);
      ?>

    13. error
      Mi właśnie wyskoczył taki warning:


      user warning: in /home/admin/domains/kontrowersje.net/public_html/modules/commentrss/commentrss.pages.inc on line 181.

      Poza tym zauwazylem, ze jak nie jestem zalogowany to smiga, a po zalogowaniu , to kaplia – teraz też z resztą tak było.
      Znaczy czekanie na otworzenie strony, czy tam mozliwość dodania komentarza, to “ruski miesiąc”

      A na czym toto w ogóle jest postawione?

      Ktoś Ci to napisał, czy jakiś istniejący szablon dostosował?

      pzdr

    14. error
      Mi właśnie wyskoczył taki warning:


      user warning: in /home/admin/domains/kontrowersje.net/public_html/modules/commentrss/commentrss.pages.inc on line 181.

      Poza tym zauwazylem, ze jak nie jestem zalogowany to smiga, a po zalogowaniu , to kaplia – teraz też z resztą tak było.
      Znaczy czekanie na otworzenie strony, czy tam mozliwość dodania komentarza, to “ruski miesiąc”

      A na czym toto w ogóle jest postawione?

      Ktoś Ci to napisał, czy jakiś istniejący szablon dostosował?

      pzdr

    15. error
      Mi właśnie wyskoczył taki warning:


      user warning: in /home/admin/domains/kontrowersje.net/public_html/modules/commentrss/commentrss.pages.inc on line 181.

      Poza tym zauwazylem, ze jak nie jestem zalogowany to smiga, a po zalogowaniu , to kaplia – teraz też z resztą tak było.
      Znaczy czekanie na otworzenie strony, czy tam mozliwość dodania komentarza, to “ruski miesiąc”

      A na czym toto w ogóle jest postawione?

      Ktoś Ci to napisał, czy jakiś istniejący szablon dostosował?

      pzdr

    16. Dość szybko przejrzałem
      Dość szybko przejrzałem komentarze powyżej i z kosmetyką oczywiście się zgadzam, ale według mnie przyczyną “mulenia” serwera jest to ostatnie zapytanie w kodzie.

      Niezależnie od przypadku zapytanie do relacyjnej bazy, w której łączy się 5 tabel jest zapytaniem z kategorii ciężkich i należy ich unikać. Jeśli aplikacja (portal) wykonuje je często, to niestety oznacza, że schemat bazy mógłby być troszkę inny.

      I teraz, co można z tym zrobić. Stosując inżynierskie podejście najpierw trzeba potwierdzić (albo znegować), że wspomniane zapytanie jest problemem. W pierwszym etapie najlepiej zobaczyć, czy to proces bazy danych zajmuje dużo zasobów, jak się serwer muli (CPU i RAM i ewentualnie liczba odczytów z dysku). Na Windowsie wiesz pewnie ja, a na linuxie użyj polecenia ‘top’ – na początek wystarczy.

      Jeśli okaże się, że problemem jest baza – możesz spróbować na boku wykonać kilka takich zapytań, jak z kodu i zobaczyć, jak szybko się wykonują. Trzeba tylko pamiętać, że to samo zapytanie wykonywane kilka razy pod rząd nie jest miernikiem, bo bazy (nawet MYSQL) potrafią sobie trzymać w cache’u.

      Dotąd myślę, że poradzisz sobie sam i nie zajmie Ci to dłużej niż pół godziny.

      Zgaduje, że okaże się, że to zapytanie trwa relatywnie długo i należałoby je zoptymalizować. Nie ma sensu, żebym się rozpisywał, o co chodzi, ale tak dla “lepszego poznania świata”: skoro łączysz pięć tabel po jakichś warunkach (warunek np.: comments.nid = node_comments.nid) to tak, jakbyś mnożył przez siebie 2 zbiory. W najgorszym przypadku powstaje produkt kartezjański. I jeśli to zrobisz 5 razy i warunki połączenia są mało selektywne (jest dużo wierszy spełniających kryteria) może się na końcu okazać, że masz olbrzymi zbiór, z którego ostatecznie wybierasz tylko 5 wpisów – w cholerę roboty, a mało rezultatów.
      Żeby stwierdzić, czy tak się dzieje niestety trzeba się trochę pobawić zapytaniami. Chętnie pomogę, ale obawiam się, że ciągu najbliższych kilku dni mogę nie mieć zbyt wiele czasu. Później – chętnie.

    17. Dość szybko przejrzałem
      Dość szybko przejrzałem komentarze powyżej i z kosmetyką oczywiście się zgadzam, ale według mnie przyczyną “mulenia” serwera jest to ostatnie zapytanie w kodzie.

      Niezależnie od przypadku zapytanie do relacyjnej bazy, w której łączy się 5 tabel jest zapytaniem z kategorii ciężkich i należy ich unikać. Jeśli aplikacja (portal) wykonuje je często, to niestety oznacza, że schemat bazy mógłby być troszkę inny.

      I teraz, co można z tym zrobić. Stosując inżynierskie podejście najpierw trzeba potwierdzić (albo znegować), że wspomniane zapytanie jest problemem. W pierwszym etapie najlepiej zobaczyć, czy to proces bazy danych zajmuje dużo zasobów, jak się serwer muli (CPU i RAM i ewentualnie liczba odczytów z dysku). Na Windowsie wiesz pewnie ja, a na linuxie użyj polecenia ‘top’ – na początek wystarczy.

      Jeśli okaże się, że problemem jest baza – możesz spróbować na boku wykonać kilka takich zapytań, jak z kodu i zobaczyć, jak szybko się wykonują. Trzeba tylko pamiętać, że to samo zapytanie wykonywane kilka razy pod rząd nie jest miernikiem, bo bazy (nawet MYSQL) potrafią sobie trzymać w cache’u.

      Dotąd myślę, że poradzisz sobie sam i nie zajmie Ci to dłużej niż pół godziny.

      Zgaduje, że okaże się, że to zapytanie trwa relatywnie długo i należałoby je zoptymalizować. Nie ma sensu, żebym się rozpisywał, o co chodzi, ale tak dla “lepszego poznania świata”: skoro łączysz pięć tabel po jakichś warunkach (warunek np.: comments.nid = node_comments.nid) to tak, jakbyś mnożył przez siebie 2 zbiory. W najgorszym przypadku powstaje produkt kartezjański. I jeśli to zrobisz 5 razy i warunki połączenia są mało selektywne (jest dużo wierszy spełniających kryteria) może się na końcu okazać, że masz olbrzymi zbiór, z którego ostatecznie wybierasz tylko 5 wpisów – w cholerę roboty, a mało rezultatów.
      Żeby stwierdzić, czy tak się dzieje niestety trzeba się trochę pobawić zapytaniami. Chętnie pomogę, ale obawiam się, że ciągu najbliższych kilku dni mogę nie mieć zbyt wiele czasu. Później – chętnie.

    18. Dość szybko przejrzałem
      Dość szybko przejrzałem komentarze powyżej i z kosmetyką oczywiście się zgadzam, ale według mnie przyczyną “mulenia” serwera jest to ostatnie zapytanie w kodzie.

      Niezależnie od przypadku zapytanie do relacyjnej bazy, w której łączy się 5 tabel jest zapytaniem z kategorii ciężkich i należy ich unikać. Jeśli aplikacja (portal) wykonuje je często, to niestety oznacza, że schemat bazy mógłby być troszkę inny.

      I teraz, co można z tym zrobić. Stosując inżynierskie podejście najpierw trzeba potwierdzić (albo znegować), że wspomniane zapytanie jest problemem. W pierwszym etapie najlepiej zobaczyć, czy to proces bazy danych zajmuje dużo zasobów, jak się serwer muli (CPU i RAM i ewentualnie liczba odczytów z dysku). Na Windowsie wiesz pewnie ja, a na linuxie użyj polecenia ‘top’ – na początek wystarczy.

      Jeśli okaże się, że problemem jest baza – możesz spróbować na boku wykonać kilka takich zapytań, jak z kodu i zobaczyć, jak szybko się wykonują. Trzeba tylko pamiętać, że to samo zapytanie wykonywane kilka razy pod rząd nie jest miernikiem, bo bazy (nawet MYSQL) potrafią sobie trzymać w cache’u.

      Dotąd myślę, że poradzisz sobie sam i nie zajmie Ci to dłużej niż pół godziny.

      Zgaduje, że okaże się, że to zapytanie trwa relatywnie długo i należałoby je zoptymalizować. Nie ma sensu, żebym się rozpisywał, o co chodzi, ale tak dla “lepszego poznania świata”: skoro łączysz pięć tabel po jakichś warunkach (warunek np.: comments.nid = node_comments.nid) to tak, jakbyś mnożył przez siebie 2 zbiory. W najgorszym przypadku powstaje produkt kartezjański. I jeśli to zrobisz 5 razy i warunki połączenia są mało selektywne (jest dużo wierszy spełniających kryteria) może się na końcu okazać, że masz olbrzymi zbiór, z którego ostatecznie wybierasz tylko 5 wpisów – w cholerę roboty, a mało rezultatów.
      Żeby stwierdzić, czy tak się dzieje niestety trzeba się trochę pobawić zapytaniami. Chętnie pomogę, ale obawiam się, że ciągu najbliższych kilku dni mogę nie mieć zbyt wiele czasu. Później – chętnie.

    19. Na zwyczajowym różowym tle
      widzę coś takiego (w miejscu pomiędzy zakładką “Wszystkie ostatnio dodane” a listą wpisów):

      user warning: Nieznana kolumna ‘node_comments__node_comment_statistics.last_comment_timestamp’ w field list query: SELECT comments.cid AS cid, comments.subject AS comments_subject, comments.nid AS comments_nid, comments.pid As comments_pid, comments.timestamp AS comments_timestamp, comments.name AS comments_name, comments.uid AS comments_uid, comments.homepage AS comments_homepage, comments.comment AS comments_comment, comments.format AS comments_format, history_user.timestamp AS history_user_timestamp, history_user.nid AS history_user_nid, node_comments.created AS node_comments_created, node_comments.changed AS node_comments_changed, node_comments__node_comment_statistics.last_comment_timestamp AS node_comments__node_comment_statistics_last_comment_timestamp, node_comments.nid AS node_comments_nid FROM root_comments comments LEFT JOIN root_node node_comments ON comments.nid = node_comments.nid LEFT JOIN root_history history_user ON node_comments.nid = history_user.nid AND history_user.uid = 279 ORDER BY comments_timestamp DESC limit 5 in /home/admin/domains/kontrowersje.net/public_html/themes/kontrowersje/page.tpl.php on line 911.

      To samo albo coś bardzo podobnego jest NAD tytułem niniejszego wpisu.

    20. Na zwyczajowym różowym tle
      widzę coś takiego (w miejscu pomiędzy zakładką “Wszystkie ostatnio dodane” a listą wpisów):

      user warning: Nieznana kolumna ‘node_comments__node_comment_statistics.last_comment_timestamp’ w field list query: SELECT comments.cid AS cid, comments.subject AS comments_subject, comments.nid AS comments_nid, comments.pid As comments_pid, comments.timestamp AS comments_timestamp, comments.name AS comments_name, comments.uid AS comments_uid, comments.homepage AS comments_homepage, comments.comment AS comments_comment, comments.format AS comments_format, history_user.timestamp AS history_user_timestamp, history_user.nid AS history_user_nid, node_comments.created AS node_comments_created, node_comments.changed AS node_comments_changed, node_comments__node_comment_statistics.last_comment_timestamp AS node_comments__node_comment_statistics_last_comment_timestamp, node_comments.nid AS node_comments_nid FROM root_comments comments LEFT JOIN root_node node_comments ON comments.nid = node_comments.nid LEFT JOIN root_history history_user ON node_comments.nid = history_user.nid AND history_user.uid = 279 ORDER BY comments_timestamp DESC limit 5 in /home/admin/domains/kontrowersje.net/public_html/themes/kontrowersje/page.tpl.php on line 911.

      To samo albo coś bardzo podobnego jest NAD tytułem niniejszego wpisu.

    21. Na zwyczajowym różowym tle
      widzę coś takiego (w miejscu pomiędzy zakładką “Wszystkie ostatnio dodane” a listą wpisów):

      user warning: Nieznana kolumna ‘node_comments__node_comment_statistics.last_comment_timestamp’ w field list query: SELECT comments.cid AS cid, comments.subject AS comments_subject, comments.nid AS comments_nid, comments.pid As comments_pid, comments.timestamp AS comments_timestamp, comments.name AS comments_name, comments.uid AS comments_uid, comments.homepage AS comments_homepage, comments.comment AS comments_comment, comments.format AS comments_format, history_user.timestamp AS history_user_timestamp, history_user.nid AS history_user_nid, node_comments.created AS node_comments_created, node_comments.changed AS node_comments_changed, node_comments__node_comment_statistics.last_comment_timestamp AS node_comments__node_comment_statistics_last_comment_timestamp, node_comments.nid AS node_comments_nid FROM root_comments comments LEFT JOIN root_node node_comments ON comments.nid = node_comments.nid LEFT JOIN root_history history_user ON node_comments.nid = history_user.nid AND history_user.uid = 279 ORDER BY comments_timestamp DESC limit 5 in /home/admin/domains/kontrowersje.net/public_html/themes/kontrowersje/page.tpl.php on line 911.

      To samo albo coś bardzo podobnego jest NAD tytułem niniejszego wpisu.

    22. user warning: Nieznana kolumna
      Czepia się prawdopodobnie literówki w nazwie wyspecyfikowanej kolumny; niesposób określić bez dostępu do tablic MySQLa. Na intuicję : nie podoba mi się podwójne podkreślenie w aliasie “node_comments__node_comment_statistics” – ale to oczywiście zgadywanka.
      Ponoć to ( czy może podobne ?) wyciąłeś po poprzedniej dyskusji; może zakres wykomentowania nieprawidłowy? Lepiej byłoby chyba wyciąć cały segment “Ostatnie odpowiedzi” (wraz z tytułem) niż tylko ich zawartość.

    23. user warning: Nieznana kolumna
      Czepia się prawdopodobnie literówki w nazwie wyspecyfikowanej kolumny; niesposób określić bez dostępu do tablic MySQLa. Na intuicję : nie podoba mi się podwójne podkreślenie w aliasie “node_comments__node_comment_statistics” – ale to oczywiście zgadywanka.
      Ponoć to ( czy może podobne ?) wyciąłeś po poprzedniej dyskusji; może zakres wykomentowania nieprawidłowy? Lepiej byłoby chyba wyciąć cały segment “Ostatnie odpowiedzi” (wraz z tytułem) niż tylko ich zawartość.

    24. user warning: Nieznana kolumna
      Czepia się prawdopodobnie literówki w nazwie wyspecyfikowanej kolumny; niesposób określić bez dostępu do tablic MySQLa. Na intuicję : nie podoba mi się podwójne podkreślenie w aliasie “node_comments__node_comment_statistics” – ale to oczywiście zgadywanka.
      Ponoć to ( czy może podobne ?) wyciąłeś po poprzedniej dyskusji; może zakres wykomentowania nieprawidłowy? Lepiej byłoby chyba wyciąć cały segment “Ostatnie odpowiedzi” (wraz z tytułem) niż tylko ich zawartość.

    25. Nie wiem czy ta informacja
      Nie wiem czy ta informacja się przyda i czy jest tak u wszystkich. Sławna różowa tabelka pokazuje mi się nad tekstem E_Krakowskiego, tutaj nie. Było tego dużo, teraz pozostało tylko:
      user warning: in /home/admin/domains/kontrowersje.net/public_html/modules/block/block.module on line 407.

    26. Nie wiem czy ta informacja
      Nie wiem czy ta informacja się przyda i czy jest tak u wszystkich. Sławna różowa tabelka pokazuje mi się nad tekstem E_Krakowskiego, tutaj nie. Było tego dużo, teraz pozostało tylko:
      user warning: in /home/admin/domains/kontrowersje.net/public_html/modules/block/block.module on line 407.

    27. Nie wiem czy ta informacja
      Nie wiem czy ta informacja się przyda i czy jest tak u wszystkich. Sławna różowa tabelka pokazuje mi się nad tekstem E_Krakowskiego, tutaj nie. Było tego dużo, teraz pozostało tylko:
      user warning: in /home/admin/domains/kontrowersje.net/public_html/modules/block/block.module on line 407.