Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nieskonczona petla..pomocy !
Forum PHP.pl > Forum > Przedszkole
cleaner
Zadanie polega na znormalizowaniu danych w tabeli 'danewyjsciowe' wg wzoru:

wart.norm=(wartosc wyjsciowa-minimum)/(maximum-minimum)


Mam dwie tabele:

1. dane wyjsciowe:
Kod
+----+------------+-----------+----------+----------+--------+---------+----------+----------+----------+
| ID | DN         | CSr       | OS       | CS       | CL     | CH      | futureSH | futureSL | futureCS |
+----+------------+-----------+----------+----------+--------+---------+----------+----------+----------+
|  1 | 2005-01-03 |         0 |  0.00975 | -0.00495 | 0.0064 | -0.0163 | -0.00065 | -0.03135 | -0.02645 |
|  2 | 2005-01-04 |  0.124716 |  0.01115 | -0.01045 | 0.0049 | -0.0258 | -0.00315 | -0.02045 | -0.01055 |
|  3 | 2005-01-05 | 0.0933306 |  0.00095 |  0.00125 | 0.0099 | -0.0074 |  0.00445 | -0.01205 | -0.00615 |
|  4 | 2005-01-06 | 0.0590543 |  0.00525 | -0.00235 | 0.0059 | -0.0106 |  0.00895 | -0.01315 | -0.00895 |
................................................................................
.........................


2. pobrane z tej tabeli wartosci minimalna i maxymalna dla kazdej kolumny, zapisane w nowej tabeli 'extrema':
Kod
+----------+---------+---------+-------+----------+--------+--------+---------+---------+
| minCSr   | maxOS   | minOS   | maxCS | minCS    | maxCL  | minCL  | maxCH   | minCH   | itd...............
+----------+---------+---------+-------+----------+--------+--------+---------+---------+
| -0.02744 | 0.01115 | -0.0103 | 0.009 | -0.01045 | 0.0213 | 0.0012 | -0.0007 | -0.0258 |
+----------+---------+---------+-------+----------+--------+--------+---------+---------+


Probuje to zrealizowac wg nastepujacego kodu:
  1. <?php
  2.  $Index=2;
  3.  for ($colIndex=0;$colIndex<mysql_num_fields($selExtremes);$colIndex+2)
  4.  {
  5.  mysql_data_seek($selExtremes, 0);
  6.  $obtExtremes=mysql_fetch_array($selExtremes);
  7.  $max=$obtExtremes[$colIndex];
  8.  $min=$obtExtremes[$colIndex+1];
  9. $fieldName=mysql_field_name( $selValues,$Index);
  10. for ($row=0;$row<=mysql_num_rows($selValues);$row++)
  11. {
  12.  mysql_data_seek($selValues,$row);
  13.  $colrowValue= mysql_fetch_array($selValues);
  14.  $normFunction=(($colrowValue[$Index]-$min)/($max-$min));
  15.  mysql_query("update CloseUpDown set $fieldName=$normFunction where ID=$row");
  16. }
  17. $Index++;
  18. }
  19.  
  20. ?>

Nikt się nie pokwapił więc ja poprawiam
---
nospor, Bakus - code
Cleaner
zmienna '$index' odnosi sie do kolumn tabeli 'closeupDown'- wartosci wyjsciowe

zmienna '$colIndex' do kolumn z wartosciami extremow
crash
1. Używaj odpowiedniego BBCode.
2. Gdzie masz $selExtremes, albo $selValues, bez tego te pętle są rzeczywiście nieskończone... A ta iteracja w pierwszej pętli? $colIndex+2 questionmark.gif Chodzi Ci może o: $colIndex += 2?
aleksander

popraw, inaczej zamkne.
cleaner
wartosc $ Index rosnie w "nieskonczonosc"
cleaner
  1. <?php
  2.  
  3. $selValues=mysql_query("select * from closeupDown");  
  4.  $selExtremes=mysql_query("select * from Extrema");
  5.  
  6. ?>


Sorka,poprawil bym tylko gdzie mozna edytowac wyslane posty questionmark.gif


---
oszzz kurde zapomnialem ze unregistered nie moga postow edytowac >_> biggrin.gif
aleksander
Guest
Cytat(crash @ 2005-09-05 19:10:24)
... A ta iteracja w pierwszej pętli? $colIndex+2 questionmark.gif Chodzi Ci może o: $colIndex += 2?

Rzeczywiscie chodzilo o ten drobny szczegol ...he he ja tego nawet nie widzialem i sie glowie dry.gif

A teraz inny problem dlaczego dostaje komunikat :
<b>Warning</b>: mysql_data_seek(): Offset 39 is invalid for MySQL result index 4

  1. <?php
  2.  for ($row=0;$row<=mysql_num_rows($selValues);$row++)
  3. ?>

gdy $row<= a przy $row< wiersz nie jest uaktualniany ?

Przepraszam za te proste pytania ..ale kto pyta nie bladzi winksmiley.jpg
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.