Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]pętle po stronie mysql a nie php
Forum PHP.pl > Forum > Przedszkole
azbest22
  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
CuteOne
  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);
azbest22
ciekawy pomysł ale mnie interesowało czy da się wykonać pętle bezpośrednio w mysql a tu robi pętle w php nadal.
Shili
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).
smietek
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.