Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]pętle po stronie mysql a nie php
azbest22
post 17.12.2011, 01:48:39
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

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


  1. for($i = 1; $i <= 10; $i++)
  2. {
  3. for($k = 1; $k <= 10; $k++)
  4. {
  5. mysql_query("INSERT INTO tabela(kol1,kol2) VALUES ('$i','$k')");
  6. }
  7. }

da się to przerobić tak żeby petle wykonywały się po stronie mysql-a a nie php?? jeśli tak to prosiłbym o jakiś przykład drobny bo nie mogę się doszukać nigdzie takich rozwiązań dla mysqla sad.gif

Ten post edytował azbest22 17.12.2011, 01:50:38
Go to the top of the page
+Quote Post
CuteOne
post 17.12.2011, 02:55:42
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. $query = '';
  2.  
  3. for($i = 1; $i <= 10; $i++)
  4. {
  5. for($k = 1; $k <= 10; $k++)
  6. {
  7. $query .= "INSERT INTO tabela(kol1,kol2) VALUES ('$i','$k');";
  8. }
  9. }
  10.  
  11. mysql_query($query);
Go to the top of the page
+Quote Post
azbest22
post 17.12.2011, 14:24:13
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 9.09.2010

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


ciekawy pomysł ale mnie interesowało czy da się wykonać pętle bezpośrednio w mysql a tu robi pętle w php nadal.
Go to the top of the page
+Quote Post
Shili
post 17.12.2011, 14:30:41
Post #4





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Możesz spróbować np. za pomocą procedur
http://www.java2s.com/Code/SQL/Procedure-F...atuntilloop.htm

Natomiast nie wiem jak wydajnościowo.
Podejrzewam, że z jakichś powodów w aplikacjach nie z przyzwyczajenia korzysta się ze składania zapytań (np. za pomocą php).
Go to the top of the page
+Quote Post
smietek
post 17.12.2011, 21:05:38
Post #5





Grupa: Zarejestrowani
Postów: 306
Pomógł: 32
Dołączył: 20.01.2008

Ostrzeżenie: (20%)
X----


Cytat(CuteOne @ 17.12.2011, 02:55:42 ) *
  1. $query = '';
  2.  
  3. for($i = 1; $i <= 10; $i++)
  4. {
  5. for($k = 1; $k <= 10; $k++)
  6. {
  7. $query .= "INSERT INTO tabela(kol1,kol2) VALUES ('$i','$k');";
  8. }
  9. }
  10.  
  11. mysql_query($query);


Twój kod nie zadziała, w PHP nie idzie wykonywać wielu zapytań w jednym wywołaniu mysql_query.
Trzeba to zrobić tak:

  1. $query = 'INSERT INTO tabela(kol1, kol2) VALUES ';
  2.  
  3. for($i = 1; $i <= 10; $i += 1)
  4. {
  5. for($k = 1; $k <= 10; $k += 1)
  6. {
  7. $QueryArray[]= "('{$i}','{$k}')";
  8. }
  9. }
  10.  
  11. mysql_query($query.implode(',', $QueryArray));

Teraz jest tylko jedno zapytanie - w tym wypadku nie ma co kombinować z pętlami czy funkcjami w MySQLu.

Ten post edytował smietek 17.12.2011, 21:07:28


--------------------
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: 24.07.2025 - 23:04