Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapytanie złożone
jarmiar
post 5.04.2010, 12:21:18
Post #1





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

Ostrzeżenie: (0%)
-----


cześć
mam pytanie jak będzie wyglądało zapytanie, które zliczy ilosc rekordów w tabeli i jeśli będzie większa niż 1 wykona UPDATE

nie wiem jak to składniowo zapisać, proszę o jakieś przykłady ;]


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
Stef@n
post 6.04.2010, 08:31:54
Post #2





Grupa: Zarejestrowani
Postów: 191
Pomógł: 3
Dołączył: 14.08.2003

Ostrzeżenie: (0%)
-----


Możo o to chodzi smile.gif
  1. <?php
  2. $zapytanie = @mysql_query("SELECT * FROM tabela"); //Zapytanie do bazy
  3. if(mysql_num_rows($zapytanie) > 0) { //mysql_num_rows($zapytanie) pobiera ilość rekordów z tego zapytania
  4. while ($rekord = @mysql_fetch_array ($pobieranie)) { // Petla i wyświetlanie rekordów
  5. echo $rekord['pole'];
  6. }
  7. } else {
  8. echo "brak danych";
  9. }
  10. ?>
Go to the top of the page
+Quote Post
kitol
post 6.04.2010, 08:37:25
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 26
Dołączył: 19.01.2007

Ostrzeżenie: (0%)
-----


Można to zrobić w jednym zapytaniu UPDATE.
Nie podałeś szczegółów więc zapytanie jest ogólne. Pewnie będziesz musiał dodać jakieś WHERE:
  1. UPDATE nazwa_tabeli
  2. SET nazwa_pola=IF((SELECT COUNT(*) FROM nazwa_tabeli)>0, nowa_wartosc, nazwa_pola)


Osobiście wolałbym jednak napisać procedurę z selectem i updeatem zamkniętym w IF:

  1. SELECT count(*) FROM nazwa tabeli INTO @var;
  2. IF (@var>0) THEN
  3. UPDATE nazwa_tabeli SET nazwa_pola = nowa_wartosc;
  4. END IF;


Ten post edytował kitol 6.04.2010, 08:38:36
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 05:18