Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pętla-'dynamiczne zmienne'
My4tic
post
Post #1





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

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


Jak zapisać taki kod w pętli:

  1. <?php
  2.  
  3. $aSQL = "SELECT date FROM dates WHERE id ='1' ";
  4. $aQResult = mysql_query( $aSQL );
  5. $aRow = mysql_fetch_array( $aQResult );
  6. $day1 = $aRow["date"];
  7.  
  8. $aSQL = "SELECT date FROM dates WHERE id ='2' ";
  9. $aQResult = mysql_query( $aSQL );
  10. $aRow = mysql_fetch_array( $aQResult );
  11. $day2 = $aRow["date"];
  12.  
  13. $aSQL = "SELECT date FROM dates WHERE id ='3' ";
  14. $aQResult = mysql_query( $aSQL );
  15. $aRow = mysql_fetch_array( $aQResult );
  16. $day3 = $aRow["date"];
  17. .
  18. .
  19. .
  20.  
  21. ?>

Chodzi głównie o to aby na koncu powstało 10 zmiennych 'day1,2,3...' zawierających daty z pol o ID od 1 do 10.

ID nie jest problemem ale chodzi o tworzenie zmiennych. Próbowałem coś z $$day ale jakoś mi nie wychodziłp (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

A moze lepiej to zrobić na tablicach?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
My4tic
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

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


Dzięki za rady.

Narazie funkcja wygląda tak:

  1. <?php
  2.  
  3. function change_index () {  
  4. $aSQL = "SELECT date FROM dates";
  5. $aQResult = mysql_query( $aSQL );
  6.  
  7. $day = array();
  8. $i=1;
  9. while ($aRow = mysql_fetch_array( $aQResult )) {
  10.  $day[$i] = $aRow["date"];
  11.  $i++;
  12. }
  13.  
  14. $k=1;
  15. for ($i=1; $i<11; $i++) {
  16.  $k++;
  17.  $aSQL = "UPDATE dates SET date = '$day[$k]' WHERE id='$i'";
  18.  $aQResult = mysql_query( $aSQL ); echo mysql_error();
  19. }
  20.  
  21. $pieces = explode(".", $day[10]);
  22. $i=1;
  23. $timestamp = mktime (0,0,0,$pieces[1], $pieces[0]+$i, $pieces[2]);
  24. $weekday = date('w', $timestamp); 
  25. $data1 = date('d.m.Y', $timestamp);
  26.  
  27. while ($weekday == "6" || $weekday == "0") {  
  28. $pieces = explode(".", $day[10]);
  29. $i++;
  30. $timestamp = mktime (0,0,0,$pieces[1], $pieces[0]+$i, $pieces[2]);
  31. $weekday = date('w', $timestamp);
  32. $data1 = date('d.m.Y', $timestamp); 
  33. }
  34. $aSQL = "UPDATE dates SET date = '$data1' WHERE id='10';";
  35. $aQResult = mysql_query( $aSQL ); echo mysql_error();
  36. }
  37.  
  38. ?>


Funkcja przesuwa daty z 'ID + 1' do ID a do powstałej na końcu wolnej komórki wpisuje kolejną date powstałą z dodania do ID10 jednego dnia. Uwzględnia tylko dni robocze.

Pewnie troche nieoptymalnie napisałem ;-) ale działa :-)

Na szybkości w tym mi za bardzo nie zależy bo bedzie to uruchamiane raz dziennie przez crona.
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: 25.12.2025 - 21:26