PHP - kilka słów odnośnie zapytania UPDATE
| DZIAŁANIE: | brak działania |
Kod:
brak kodu :P
Ewentualne Objaśnienia:
1). Tutaj chciałem króciutko nawiązać do wykorzystywania zapytania UPDATE - jak wiecie służącego do aktualizacji danych w bazie danych. Czasem na przykład używając znajej już wam klauzuli zapytania WHERE - LIKE - aktualizujemy w naszej bazie dużą ilość rekordów. Często przydatne jest to, aby się dowiedzieć, sprawdzić ile takich rekordów ( spełniających nasz warunek ) było. Do tego polecam użyć funkcji : mysql_affected_rows() .
Popatrzmy mamy taki fragment kodu :
<?
$query = "UPDATE nazwatabeli SET data='2007-09-27' WHERE tresc LIKE '%wybory%'";
$wynik = @mysql_query($query);
if ($wynik)
{
print 'Uaktualniono : '.mysql_affected_rows().'wierszy w
bazie danych!';
}
else
{
print 'Przykro mi wystąpił błąd podczas aktualizacji : '.mysql_error();
}
Jak widać mamy proste zapytanie UPDATE - gdzie chcemy we wszystkich
rekordach, w których w polu tresc znajdziemy słowo 'wybory' - zmienić wartość
pola data - na datę 2007-09-27.
Używamy znacznika @ - jak pamiętacie jest to tzw. operator supresji błędów -
dzięki niemu w razie błędy w zapytaniu nie zostanie on wyświetlony. No i mamy
instrukcję warunkową, która sprawdza pomyślność naszego zapytania - jeżeli się
ono powiodło - to poprzez funkcję mysql_affected_rows uzyskamy informacje ile
wierszy zostało zaktualizowanych. Jeżeli zapytanie się nie powiodło wyświetlamy
rodzaj błędu poprzez funkcję mysql_qrror() - zwraca ona ostatni komunikat
o błędzie wysłany przez serwer MySQL.
2. Pamiętacie jak używaliśmy funkcji now() aby wpisać do danego
pola przechowującego datę w bazie MySQL ?? No więc te raz tylko króciutko
powiem, że jest jeszcze przykładowo inna funkcja, która działa tak samo jest to
funkcja : CURDATE() , a na przykład CURTIME() - to bieżący czas .
Inne tego typu to : DAYOFMONTH() - numer dnia miesiąca ( liczba od 1 do
31 ), DAYOFWEEK() - numer dnia tygodnia ( 1 to niedziela, 7 to
sobota ), DAYOFYEAR() - numer dnia roku ( liczba od 1 do 365 )
3. Przypuśćmy, że w naszej bazie przechowujemy na przykład masę
artykułów. Chcemy gdzieś je sobie wyświetić - ale tak ajkby tylko ich krótki
kawałeczek - na przykład 20 znaków. Wiadomo można jak na przykład w systemie
newsów, który pokazywałem zrobić dodatkowe pole i przechowywać w nim krótki
opis. Ale jest też inne rozwiązanie mianowicie parametr LEFT - w zapytaniu
SELECT do bazy danych.
Na przykład :
$query = "SELECT LEFT(pole_artykulow,20) FROM
tabela_artykulow"; - czyli z naszej bazy, z tabeli "tabela_artykulow"
wybieramy pola o nazwie "pole_artykulow" ( one przechowują treść artykułów
oczywiście ) - a dzięki LEFT - wyświetlane jest jedynie pierwsze 20 znaków z
tego pola.
4. Ciekawą rzeczą chociaż nie związaną bezpośrednia z MySQL jest zmienna : $_SERVER['PHP_SELF'] - określa nam ona nazwę bieżącego pliku - przydatne na przykład w formularzach w określeniu parametru action.