entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

update multiple con php

hola de antemano gracias si alguien me pudiera ayudar a ordenar mis ideas

necesito selecciona de una tabla varios usuarios a la vez y hacer un update en la bd
recibo los valores separados por coma, por ejemplo

$valor1="1,2,3";
las separo hasta aqui todo bien
$resource = explode(',',$resource1); 

hago un for e inserto en la base de datos
for($i=0;$i<sizeof($valor1);$i++){
// inserto datos todo bien
// el problema es que dentro del mismo for tengo que ejecutar otra consulta que conforme va cambiando el for cambian los valores

    $sqlsearch="SELECT * FROM tabla WHERE campo1='".$var1[$i]."' AND campo2='".$va2[$i]."'";
        $rs_=odbc_exec($connection,$sqlsearch);
        $mes= odbc_result($rs_,"mes1");
     if($numMes == 02)
        {
        $feb= $feb+1;
            / actualiza solo el mes de enero
    $sqlupdate="UPDATE tabla2 SET mes='".$feb."' WHERE campo1='".$var1[$i]."' AND campo2='".$var2."'";
    $rs=odbc_exec($connection,$sqlupdate);    //esto funciona solo con el primer valor seleccionado
    } 
}

necesito que se ejecute esa consulta cada que se corra el for aunque sea diferente la consulta, no se si me explique bien, pero si alguien pudiera ayudarme un poco se lo agradeceria mucho

1 Respuesta

2votos

morgooth Puntos2340

El parecer tienes muchos errores en tu código, en primer lugar estas haciendo un for sobre el size de $valor1 (este es 1), debes cambiarlo por $resource, pero tambien debes cambiar

$resource = explode(',',$resource1);

por

$resource = explode(',',$valor1); 

También veo que llamas a la variable $var1, donde esta definida ?

1voto

rach comentado

hola muchas gracias por responder dejo mi codigo ojala me puedan ayudar

for($i=0;$i<sizeof($resource);$i++){
            $numMes = date("m", strtotime($effecdate[$i])); 

$sqlAdd = "INSERT INTO tablerec VALUES ('".$unit."','".$terminology."','".$resource[$i]."','".$js[$i]."','".$jobrole[$i]."','".$gto[$i]."','".$location[$i]."','".$country[$i]."','".$comments[$i]."','".$effecdate[$i]."','".$numMes."')";
$rs_tar_add=odbc_exec($connection,$sqlAdd); //funciona bien

$sqlsearch="SELECT * FROM tablaB WHERE unit='".$unit."' AND [js]in('6','7') AND [job]in('Prof')";
                         $rs_=odbc_exec($connection,$sqlsearch);
            while (odbc_fetch_row($rs_))

                {
                $feb = odbc_result($rs_,"feb"); // necesito este valor para despues sumarle 1

// actualiza solo el mes de feb
    $tfeb=$feb+1;

$sqlupdate="UPDATE tablaB SET feb='".$tfeb."' WHERE js='".$js[$i]."' AND job='".$jobrole[$i]."'";
                                $rs=odbc_exec($connection,$sqlupdate);  
                                    echo $sqlupdate;    
    //este update solo hace el ultimo                           
                                }

        }

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta