Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Procedury w MySQL ?
Black-Berry
post
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Kiedyś chodziłem na kurs Oracle. Tam nas uczyli, że za pomocą oracla można tworzyć procedury. Niestety to było dawno i nie pamiętam jak to było a jakoś nie mogę się doszukać? Jest takie coś możliwe za pomocą mySQL?

Jeśli tak to jak przekształcić poniższą procedurę php na zapytanie mySQL ?
  1. <?php
  2. $query = "SELECT * FROM mytable ORDER BY succession";
  3. $result = mysql_query ( $query ) or die ( _SQL_ERROR_ . mysql_error() );
  4. $c = 0;
  5. while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  6. {
  7. $c = $c + 1;
  8. mysql_query( "UPDATE mytable SET succession = " .$c. " WHERE id = ".$row["id"]."" );
  9. }
  10. ?>
Serdecznie prosze o pomoc.

Ten post edytował Black-Berry 30.06.2007, 09:21:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wijet
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


Mysle ze duzo sie nie rozminolem z tym co chciales osiagnac,dopiero wstalem.
  1. delimiter //
  2. CREATE PROCEDURE zwieksz ()
  3. BEGIN DECLARE c INT;
  4. DECLARE last INT;
  5. DECLARE row_id INT;
  6. DECLARE k CURSOR FOR SELECT id FROM mytable ORDER BY succession;
  7. DECLARE CONTINUE HANDLER FOR NOT FOUND SET last=1;
  8. SET c = 0;
  9. SET last = 0;
  10. OPEN k;
  11. k_loop: LOOP
  12. SET c = c + 1;
  13. FETCH k INTO row_id; IF last = 1 THEN
  14. LEAVE k_loop;
  15. ELSE
  16. UPDATE mytable SET succession = c WHERE id = row_id;
  17. END IF;
  18. END LOOP k_loop;
  19. CLOSE k;
  20. END;
  21. //


Ten post edytował wijet 30.06.2007, 11:46:30
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 12:47