Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: [php] mala rada porzadana
Forum PHP.pl > Forum > PHP
Qspy
Witam,
Pisze skrypt php do crona/phpbb. Niemusicie znac tabel standardowej bazy phpbb, mam tu male zapytanie ktore nietyra. Jezeli wykonam samo zapytanie ze zmiennej $sql3 w bazie danych uzyskam 93500 okolo. Jednak niemoge tego przetworzyc tym skryptem aby ta uzyskana liczbe z $sql3 zapisac do byle jakiej zmiennej zeby potem ja sobie poprzez dzialajace $sql1 zapisac do bazy..

Co wiem ze jest dobrze? Zapytanie w $sql3, zapytanie w $sql1. Jedyna rzecz jaka jest zle to przetworzenie zapytania z $sql3 aby zostalo wykonane i zwrocilo do zwyklej zmiennej liczbe. Wtedy juz dzialajacym zapytaniem $sql1 ja sobie zapisze do bazy.

Dzieki z gory za pomoc.

  1. <?php
  2. $sql3 = "SELECT COUNT( user_id ) AS total
  3.  FROM phpbb_users
  4.  WHERE user_id <> -1";
  5. $result = $db->sql_query($sql3);
  6. $row = $db->sql_fetchrow($result);
  7.  
  8.  
  9. $sql1 = "UPDATE phpbb_config SET config_value = $row WHERE config_name = 'ilosc_userow'";
  10. $db->sql_query($sql1);
  11. ?>
SongoQ
$row = $db->sql_fetchrow($result); to jest przyczyna
Qspy
Jakas podpowiedz? winksmiley.jpg mogles dodac zdanie w ktorym bys mnie bardziej nakierowal.
NoiseMc
  1. <?php
  2. $row = $db->sql_fetchrow($result);
  3. ?>

zwraca caly wiersz a Ty potrzebujesz pojedyncza wartosc czyli zamiast:
  1. <?php
  2. $sql1 = "UPDATE phpbb_config SET config_value = $row WHERE config_name = 'ilosc_userow'";
  3. ?>

powinienes miec:
  1. <?php
  2. $sql1 = "UPDATE phpbb_config SET config_value = $row['total'] WHERE config_name = 'ilosc_userow'";
  3. ?>
Qspy
W ten sposob byl syntax ale zrobilem:

$row = $db->sql_fetchrow($result);
$row1 = $row['total'];

a potem updatowalem $row1
smile.gif i tyra. Dzieki wielkie, sporo przedemna winksmiley.jpg
NoiseMc
Popraw sobie jeszcze nazwy zmiennych na bardziej czytelne smile.gif

  1. <?php
  2. $sql = "SELECT COUNT( user_id ) AS total FROM phpbb_users WHERE user_id <> -1";
  3. $result = $db->sql_query($sql);
  4. $row = $db->sql_fetchrow($result);
  5.  
  6. // To mowi wiecej niz $row1
  7. $userCount = $row['ilosc'];
  8.  
  9. // Tu mozesz nadpisac $sql bo starej wartosci nie potrzebujesz
  10. $sql = "UPDATE phpbb_config SET config_value = $userCount WHERE config_name = 'ilosc_userow'";
  11. $db->sql_query($sql);
  12. ?>


Dobre nazewnictwo i formatowanie kodu to podstawa zeby sie potem nie zgubic.
Qspy
Racja, skrypt bedzie maly jednak dobrze prawisz lepiej sie tak uczyc pisac.

Zazwyczaj najpierw pisze tak aby dzialalo, a potem optymalizuje pod wzgledem szybkosci/czytelnosci.
To jest wersja lo-fi g³ównej zawarto¶ci. Aby zobaczyæ pe³n± wersjê z wiêksz± zawarto¶ci±, obrazkami i formatowaniem proszê kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.