Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/01/2010, 20:23
lennhix
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años
Puntos: 0
Bueno, deseo recuperar valores de un campo en MySQL

para que pasen por una función.

Está función:

Código PHP:
Ver original
  1. <?php
  2.  
  3. function magia ($valores, $cambia, $vcambia) {
  4.  
  5.         echo implode(",",$valores);
  6.  
  7.         echo " => ";
  8.  
  9.         $vresto= 100 - $valores[$cambia];
  10.         $nresto= 100 - $vcambia;
  11.  
  12.         $contribuciones= array();
  13.  
  14.         foreach ($valores as $key=>$val) if ($key != $cambia) $contribuciones[$key]= $val / $vresto;
  15.  
  16.         foreach ($valores as $key=>$val) if ($key != $cambia) $valores[$key]= $nresto * $contribuciones[$key];
  17.         $valores[$cambia]= $vcambia;
  18.  
  19.         echo implode(",",$valores);
  20.         echo '<br>';
  21.  
  22.         $total= 0;
  23.         foreach($valores as $val) $total+= $val;
  24.         echo " suma : $total\n";
  25.         echo '<br>';
  26. }
  27.  
  28. $valores= array(0=>50, 1=>20, 3=>30);
  29.  
  30. magia($valores,0,0);
  31. magia($valores,0,10);
  32. magia($valores,0,20);
  33. magia($valores,0,30);
  34. magia($valores,0,40);
  35. magia($valores,0,50);
  36. magia($valores,0,60);
  37. magia($valores,0,70);
  38. magia($valores,0,80);
  39. magia($valores,0,90);
  40. magia($valores,0,100);
  41.  
  42. ?>

Deseo que los valores de
Código PHP:
Ver original
  1. $valores= array(0=>50, 1=>20, 3=>30);
los recupere de un campo que tengo en mi base de datos

Gracias por responderme :D

Bueno mejor dejo mi codigo PHP.

Código PHP:
Ver original
  1. <?php
  2. require_once '../../../config/mysql.php';
  3. $dbCon = Conectarse();
  4.  
  5. // Capturamos los valores con $_GET[]
  6. $productor              = $_GET['productor'];           //Ej. : Agricola Saenz
  7. $especie                = $_GET['especie'];             //Ej. : Ciruela
  8. $variedad               = $_GET['variedad'];            //Ej. : Angeleno
  9. $etapa                  = $_GET['etapa'];               //Ej. : 2
  10. $calibre                = $_GET['calibre'];             //Ej. : 36
  11.  
  12. $porcentualReal         = $_GET['porcentualReal'];      //El Porcentaje de este calibre 36 es 1.9, esta variable guarda : 1.12
  13. $porcentual             = $_GET['campoPorcentual'];     //Lo que el usuario a ingresado en la casilla porcentual, Ej: 70.
  14.                            
  15.  
  16. // Actualizamos el valor porcentual con el valor que el usuario a ingresado.
  17. mysql_query("UPDATE criterio_calibres SET valor_porcentual = $porcentual WHERE `criterio_calibres`.`id_especie` = '$especie' AND `criterio_calibres`.`id_productor` = '$productor' AND `criterio_calibres`.`id_variedad` = '$variedad' AND `criterio_calibres`.`etapa` = $etapa AND `criterio_calibres`.`id_calibre` = $calibre LIMIT 1", $dbCon)or die(mysql_error());
  18.  
  19. // Sumamos la cantidad de valores porcentuales en total.
  20. $queryCriterioCalibre = mysql_query("SELECT SUM(valor_porcentual) as suma FROM criterio_calibres WHERE id_productor = '$productor' AND id_especie = '$especie' AND id_variedad = '$variedad' AND etapa = $etapa", $dbCon);
  21. $resultadoPorcentual = mysql_fetch_array($queryCriterioCalibre);
  22. $Suma = round($resultadoPorcentual['suma'],0);
  23. //Ej: $Suma = 162
  24.  
  25. $antiguo_valor= $porcentualReal;
  26. $nuevo_valor=   $porcentualReal;
  27.  
  28. $Cero = 0 ;
  29. $result=   mysql_query("select `id_especie`,`id_productor`,`id_variedad`,`etapa`,`id_calibre`, `valor_porcentual`  FROM criterio_calibres WHERE CONVERT(`criterio_calibres`.`id_especie` USING utf8) = '$especie' AND CONVERT(`criterio_calibres`.`id_productor` USING utf8) = '$productor' AND CONVERT(`criterio_calibres`.`id_variedad` USING utf8) = '$variedad' AND `criterio_calibres`.`etapa` = $etapa AND `criterio_calibres`.`id_calibre` != $calibre AND `criterio_calibres`.`valor_porcentual` != $porcentual AND `criterio_calibres`.`valor_porcentual` > $Cero", $dbCon)or die(mysql_error());
  30.  
  31. $valores =  Array();
  32.  
  33. while ($obj= mysql_fetch_object($result)){
  34.     $valores[implode("|",Array($obj->id_especie,$obj->id_productos, $obj->id_variedad, $obj->etapa, $obj->id_calibre))]= $obj->valor_procentual;
  35. }
  36.  
  37. foreach($valores as $key=>$val){
  38.     if($val == $antiguo_valor){
  39.         $vkey= $key;
  40.     }
  41. }
  42.  
  43. function magia (&$valores, $cambia, $vcambia) {
  44.    
  45.         echo implode(",",$valores);
  46.  
  47.         echo " => ";
  48.  
  49.         $vresto= 100 - $valores[$cambia];
  50.         $nresto= 100 - $vcambia;
  51.  
  52.         $contribuciones= array();
  53.  
  54.         foreach ($valores as $key=>$val) if ($key != $cambia) $contribuciones[$key]= $val / $vresto;
  55.  
  56.         foreach ($valores as $key=>$val) if ($key != $cambia) $valores[$key]= $nresto * $contribuciones[$key];
  57.         $valores[$cambia]= $vcambia;
  58.  
  59.         echo implode(",",$valores);
  60.  
  61.         $total= 0;
  62.         foreach($valores as $val) $total+= $val;
  63.         echo " suma : $total\n";
  64.  
  65.  
  66. }
  67.  
  68. magia($valores, $vkey, $nuevo_valor); // <= tienes que cambiar la definicion de magia a :   >>> function magia (&$valores, $cambia, $vcambia) <<< Para que se modifique el array
  69.  
  70.  
  71. foreach ($valores as $key=>$val) {
  72.  
  73.     $keys= explode("|",$key);
  74.     mysql_query("update `criterio_calibres` set  `valor_porcentual` = $val where `id_especie` = {$keys[0]} AND `id_productor`  = {$keys[1]} AND `id_variedad`  = {$keys[2]} AND `etapa`  = {$keys[3]} AND `id_calibre`  = {$keys[4]} limit 1");
  75.  
  76. }
  77. /* ++++++++++++++++++++ Fin +++++++++++++++++++++++*/

Gracias :D

Ya lo he solucionado :D

Última edición por GatorV; 26/01/2010 a las 10:43