Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> funkcja w MySQL, błąd - problem ze składnią
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


Witam,
próbuje dziś 1szą funkcję w MySQL. Chce sprawdzić czy tabela ma powiązanie z inna a dokładnie czy istnieją produkty w danej kategorii. Jednak już na początku mam problem. Dlaczego to się nie kompiluje?

  1. BEGIN DECLARE liczba INT;
  2.  
  3. SET liczba = COUNT(*) FROM `products` INNER JOIN `categories` ON `products`.`product_catId` = `categories`.`category_id`;
  4.  
  5. RETURN liczba;


W mssql zadziała. Dodałem też SELECT COUTN(*) ale też nie

pozdro

Ten post edytował john_doe 25.07.2009, 15:29:20
Go to the top of the page
+Quote Post
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


  1. CREATE FUNCTION HAS_REFFERENCE ()
  2. RETURNS INT
  3. BEGIN DECLARE retun INT;
  4. SET RETURN = "Twój kod SQL";
  5. RETURN RETURN;
  6. END|
Go to the top of the page
+Quote Post
john_doe
post
Post #3





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


dzięki ayeo,

  1. BEGIN DECLARE variablex INT;
  2.  
  3. SET variablex = "SELECT COUNT(*) FROM `products` INNER JOIN `categories` ON `products`.`product_catId` = `categories`.`category_id`";
  4.  
  5. RETURN variablex;


ogólnie to zapytanie zwraca "1", gdy wywołam funkcje dostaję zero
Go to the top of the page
+Quote Post
ayeo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


  1. SET RETURN = COUNT( "Twój kod SQL" );


Przyznaję się, że strzelam.
Go to the top of the page
+Quote Post
john_doe
post
Post #5





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


kula w płot (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
wiadomo, że można olać funkcję pod bazą i zrobić to zapytaniem. Ale ja tak chce ;]

Ten post edytował john_doe 25.07.2009, 15:59:19
Go to the top of the page
+Quote Post
ayeo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


  1. CREATE FUNCTION AYEO()
  2. RETURNS INT
  3. READS SQL DATA
  4. BEGIN DECLARE a INT;
  5. SELECT COUNT(*) INTO a FROM mod_account;
  6. RETURN(a);
  7. END


Hehe, nie dawało mi to spokoju (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Działa elegancko - testowane
Go to the top of the page
+Quote Post
john_doe
post
Post #7





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


dzięki Aeyo jesteś wielki ;]
funkcje, procedurki i wyzwalacze od tej pory zaczyna się mysql ;]

mam takie pytanko jeszcze apropo wyciągania danych

Jak robisz kiedy zapytanie zwraca zawsze jeden wiersz albo tak jak w tym przypadku jeden wiersz i jedna kolumnę.
Nie chce dojść do tej danej poprzez mysql_fetch_array i potem while......


pozdro

Ten post edytował john_doe 26.07.2009, 12:12:15
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 10:00