Foros del Web » Programando para Internet » PHP »

Cargar los datos de la sentencia sql en un Array y luego realizar un update

Estas en el tema de Cargar los datos de la sentencia sql en un Array y luego realizar un update en el foro de PHP en Foros del Web. Buenos dias, un saludo a todos los de la comunidad, soy nuevo aca, aunq me he valido mucho de las preguntas de otros para resolver ...
  #1 (permalink)  
Antiguo 11/09/2012, 04:33
 
Fecha de Ingreso: septiembre-2012
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Cargar los datos de la sentencia sql en un Array y luego realizar un update

Buenos dias, un saludo a todos los de la comunidad, soy nuevo aca, aunq me he valido mucho de las preguntas de otros para resolver mis dudas, pero hasta ahora me registro porq no he encontrado respuesta ami duda, la cual es:
El sistema q estoy realizando es para un laboratorio clinico, agrego pacientes, les asigno una orden, a la orden le agrego un detalle de orden con una lista de analisis, pero a la hora de agregar valores a los analisis no se me da

Necesito guardar en un arreglo los campos claves de una consulta, para luego con ellos realizar un update, aca mi codigo

Código PHP:
function reportar(){
    
$valor1$_POST['valor']; //aca vienen los valores q insertaré
    
$con_comasimplode(","$valor1);
     
$final=$con_comas;
     
$resulcount($valor1);
    
    
$consul1="SELECT * FROM `orden` WHERE Cedula=".$_SESSION['paci'].""//con esta sentencia obtengo el numero de la orden del paciente
    
$a1=mysql_query($consul1)or die (mysql_error());
    
     
$codord1 mysql_fetch_assoc($a1);
     
   
$cod1 $codord1['cod_orden'];//este es el numero
        
        
$detalle="SELECT * FROM `detalleorden` WHERE cod_orden='$cod1' ORDER BY `detalleorden`.`cod_analisis` ASC LIMIT 0, 30 "// de esta consulta obtengo la lista de examen del paciente usando su codigo de orden, todo bien
    
$detalle1=mysql_query($detalle)or die (mysql_error());
    while (
$fila=mysql_fetch_row($detalle1)){//aca guardo la lista de examenes de la orden del paciente, pero me imprime la sentencia sql(la del update) dos veces y ademas no agrega nada a BD
        
    
for($i 0$i <$resul$i++){
    echo 
$reporte_result "UPDATE `biobacter`.`detalleorden` SET `valor` = '".$valor1[$i]."' WHERE `detalleorden`.`cod_orden` = '$cod1' AND `detalleorden`.`cod_analisis` ='".$fila['1']."' AND `detalleorden`.`valor` IS NULL LIMIT 1;";
    
    echo 
$ejemysql_query($detalle)or die (mysql_error());
    }
    }if(isset(
$i))
        echo
"<script>alert('analisis reportados');location.href='../vistas/principal.php'</script>";
    
    
    } 
Agradecería eternamente al que me sepa ayudar
  #2 (permalink)  
Antiguo 11/09/2012, 05:46
Avatar de antoniopol  
Fecha de Ingreso: agosto-2012
Ubicación: Valladolid
Mensajes: 114
Antigüedad: 11 años, 7 meses
Puntos: 21
Respuesta: Cargar los datos de la sentencia sql en un Array y luego realizar un updat

Realiza un echo $valor justo despues de recogerlo por que igual no estas recogiendo lo que estas esperando. Y nos dices que te muestra.
__________________
>> Blog de desarrollo web.
>> @antoniopol06 amante de la Web =D
  #3 (permalink)  
Antiguo 11/09/2012, 20:19
 
Fecha de Ingreso: septiembre-2012
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Cargar los datos de la sentencia sql en un Array y luego realizar un updat

si imprimo $valor1, me sale "array", pero cuando hago el implode me muestra lo q pedi en el formulario y me lo separa por comas ',' , así q el arreglo esta bien. esto es, le hice los echo
Código SQL:
Ver original
  1. Array 3,1 UPDATE `biobacter`.`detalleorden` SET `valor` = '3' WHERE `detalleorden`.`cod_orden` = '27' AND `detalleorden`.`cod_analisis` ='gluc' AND `detalleorden`.`valor` IS NULL LIMIT 1;1UPDATE `biobacter`.`detalleorden` SET `valor` = '1' WHERE `detalleorden`.`cod_orden` = '27' AND `detalleorden`.`cod_analisis` ='gluc' AND `detalleorden`.`valor` IS NULL LIMIT 1;1UPDATE `biobacter`.`detalleorden` SET `valor` = '3' WHERE `detalleorden`.`cod_orden` = '27' AND `detalleorden`.`cod_analisis` ='hem' AND `detalleorden`.`valor` IS NULL LIMIT 1;1UPDATE `biobacter`.`detalleorden` SET `valor` = '1' WHERE `detalleorden`.`cod_orden` = '27' AND `detalleorden`.`cod_analisis` ='hem' AND `detalleorden`.`valor` IS NULL LIMIT 1;1

El problema esta en los ciclos, en el while y el for, no se como hacer, ya q me esta haciendo doble cantidad de updates, en lo q imprimi debio hacer solo dos updatesm y me esta haciendo cuatro
  #4 (permalink)  
Antiguo 11/09/2012, 20:20
 
Fecha de Ingreso: septiembre-2012
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Cargar los datos de la sentencia sql en un Array y luego realizar un updat

y no me envía nada a la base de datos
  #5 (permalink)  
Antiguo 11/09/2012, 21:22
 
Fecha de Ingreso: septiembre-2012
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Cargar los datos de la sentencia sql en un Array y luego realizar un updat

ya vi uno de mis errores, el ultimo mysql_query lo esta haciendo a la sentencia equivocada, coloque "detalle", cuando en realidad es "reporte result", pero aun tengo el error de que me hace el doble de la cantidad de updates q necesito

Etiquetas: mysql, registro, sentencia, sql, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:05.