Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Modificar un solo resultado de varios

Estas en el tema de Modificar un solo resultado de varios en el foro de PHP en Foros del Web. Buenas! Tengo un problema a la hora de modificar con php. Hago un SELECT para que me muestre una serie de resultados con una condición, ...
  #1 (permalink)  
Antiguo 11/01/2016, 06:15
Avatar de Morod0  
Fecha de Ingreso: julio-2015
Ubicación: Valencia
Mensajes: 63
Antigüedad: 9 años, 4 meses
Puntos: 1
Modificar un solo resultado de varios

Buenas!

Tengo un problema a la hora de modificar con php. Hago un SELECT para que me muestre una serie de resultados con una condición, después de eso mi idea es poder modificar un resultado en concreto..

Lo que he hecho hasta ahora es que los resultados me los muestre dentro de un input, pero obviamente a la hora de modificar, intento dar el valor a las variables que manejo con las modificaciones, pero claro, se guardan los valores del ultimo resultado mostrado..

Mi pregunta es, ¿como puedo modificar un resultado de entre varios?, no sé por donde ir, si por js si con php unicamente... no lo sé

Alguien tiene alguna idea o a superado el mismo problema?
  #2 (permalink)  
Antiguo 11/01/2016, 06:48
Avatar de Morod0  
Fecha de Ingreso: julio-2015
Ubicación: Valencia
Mensajes: 63
Antigüedad: 9 años, 4 meses
Puntos: 1
Respuesta: Modificar un solo resultado de varios

nadie? si entras y decides salir porque no entiendes nada, dímelo para hacérmelo saber!! y así me intento explicar mejor!
  #3 (permalink)  
Antiguo 11/01/2016, 06:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Modificar un solo resultado de varios

Postea código. Las descripciones no suelen ser la mejor ayuda, porque es común que lo hagan de una forma poco técnica y con información muy incompleta.

En tu caso, la descripción es muy genérica. Se necesita VER lo que hiciste para entender lo que falla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 11/01/2016, 07:01
Avatar de Morod0  
Fecha de Ingreso: julio-2015
Ubicación: Valencia
Mensajes: 63
Antigüedad: 9 años, 4 meses
Puntos: 1
Respuesta: Modificar un solo resultado de varios

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Postea código. Las descripciones no suelen ser la mejor ayuda, porque es común que lo hagan de una forma poco técnica y con información muy incompleta.

En tu caso, la descripción es muy genérica. Se necesita VER lo que hiciste para entender lo que falla.
Tienes razón.


Aqui hago el proceso para mostrar resultados:
Código PHP:
Ver original
  1. /*Busqueda para mostrar empresas disponibles*/ 
  2. $consultaDisponibles = "SELECT * FROM tramitacion WHERE tecnico = 'disponible'";
  3. $arrayDisponibles = $mysqli->query($consultaDisponibles) ;

Aquí muestro los resultados que cumplen la condición:
Código PHP:
Ver original
  1. while($listaDisponibles = $arrayDisponibles->fetch_array() ){              
  2.                         echo "                         
  3.                                 <tr>
  4.                                     <td style='padding:0.5rem;border:1px solid;'>$listaDisponibles[fecha]</td>
  5.                                     <td style='padding:0.5rem;border:1px solid;'><input name='emp' value='$listaDisponibles[nombre]'></input></td>
  6.                                     <td style='padding:0.5rem;border:1px solid;'><select name='tecnicoModificar'><option>$listaDisponibles[tecnico]</option><option>Mariela</option><option>Jorge</option></select></td>
  7.                                     <td style='padding:0.5rem;border:1px solid;'>$listaDisponibles[situacion]</td>
  8.                                     <td style='padding:0.5rem;'><input type='submit' value='Modificar'></input></td>
  9.                                 </tr>"



Aquí inserto los valores por POST en las siguientes variables:
Código PHP:
Ver original
  1. $tecnomodif = $_POST["tecnicoModificar"];
  2.                 $empremodif = $_POST["emp"];
  3.                 if($tecnomodif){
  4.                     echo $tecnomodif ;
  5.                     echo $empremodif ;     
  6.                    
  7.                 }


El problema es que en esas variables se insertan siempre los valores del último resultado, es algo totalmente lógico y lo entiendo ya que el " name='' " de los input o select son iguales y obviamente se guarda el último..

Visto esto que debería hacer? como diferencio entre un resultado y otro para poder hacer el update del resultado en concreto que quiero?
  #5 (permalink)  
Antiguo 11/01/2016, 07:26
 
Fecha de Ingreso: enero-2016
Mensajes: 71
Antigüedad: 8 años, 10 meses
Puntos: 14
Respuesta: Modificar un solo resultado de varios

Tienes varias opciones pero si siempre quieres modificar un solo registro puedes poner un solo formulario por cada fila.
Otra opcion es que cada fila tenga un ID (el de la BBDD) en un campo oculto y ademas el nombre de cada input de cada fila sea un array con esta clave.

Ok, esto suena a WTF!?

Ejemplo, para el primer caso:
Código PHP:
while($listaDisponibles $arrayDisponibles->fetch_array() ) {
    echo 
"
    <tr>
        <form .... >
        <td style='padding:0.5rem;border:1px solid;'>$listaDisponibles[fecha]</td>
        <td style='padding:0.5rem;border:1px solid;'><input name='emp' value='$listaDisponibles[nombre]'></input></td>
        <td style='padding:0.5rem;border:1px solid;'><select name='tecnicoModificar'><option>$listaDisponibles[tecnico]</option><option>Mariela</option><option>Jorge</option></select></td>
        <td style='padding:0.5rem;border:1px solid;'>$listaDisponibles[situacion]</td>
        <td style='padding:0.5rem;'><input type='submit' value='Modificar'></input></td>
        </form>
    </tr>"


Para la segunda opcion:

Código PHP:
while($listaDisponibles $arrayDisponibles->fetch_array() ) {
    echo 
"
    <tr>
        <td style='padding:0.5rem;border:1px solid;'>$listaDisponibles[fecha]<input type='hidden' value='$listaDisponibles[id]'</td>
        <td style='padding:0.5rem;border:1px solid;'><input name='emp[$listaDisponibles[id]]' value='$listaDisponibles[nombre]'></input></td>
        <td style='padding:0.5rem;border:1px solid;'><select name='tecnicoModificar[$listaDisponibles[id]]'><option>$listaDisponibles[tecnico]</option><option>Mariela</option><option>Jorge</option></select></td>
        <td style='padding:0.5rem;border:1px solid;'>$listaDisponibles[situacion]</td>
        <td style='padding:0.5rem;'><input type='submit' value='Modificar'></input></td>
    </tr>"
;

En el segundo caso, tu _POST quedara algo asi:
Código PHP:
$_POST[emp][id]; // Aqui tienes el valor de EMP para el id ID
$_POST[tecnicoModificar][id]; // Aqui el nombre del tecnico 
Esto te podría servir para modificarlos todos de golpe...
  #6 (permalink)  
Antiguo 11/01/2016, 08:03
Avatar de Morod0  
Fecha de Ingreso: julio-2015
Ubicación: Valencia
Mensajes: 63
Antigüedad: 9 años, 4 meses
Puntos: 1
Respuesta: Modificar un solo resultado de varios

Cita:
Iniciado por x_atrix Ver Mensaje
Tienes varias opciones pero si siempre quieres modificar un solo registro puedes poner un solo formulario por cada fila.
Otra opcion es que cada fila tenga un ID (el de la BBDD) en un campo oculto y ademas el nombre de cada input de cada fila sea un array con esta clave.

Ok, esto suena a WTF!?

Ejemplo, para el primer caso:
Código PHP:
while($listaDisponibles $arrayDisponibles->fetch_array() ) {
    echo 
"
    <tr>
        <form .... >
        <td style='padding:0.5rem;border:1px solid;'>$listaDisponibles[fecha]</td>
        <td style='padding:0.5rem;border:1px solid;'><input name='emp' value='$listaDisponibles[nombre]'></input></td>
        <td style='padding:0.5rem;border:1px solid;'><select name='tecnicoModificar'><option>$listaDisponibles[tecnico]</option><option>Mariela</option><option>Jorge</option></select></td>
        <td style='padding:0.5rem;border:1px solid;'>$listaDisponibles[situacion]</td>
        <td style='padding:0.5rem;'><input type='submit' value='Modificar'></input></td>
        </form>
    </tr>"


Para la segunda opcion:

Código PHP:
while($listaDisponibles $arrayDisponibles->fetch_array() ) {
    echo 
"
    <tr>
        <td style='padding:0.5rem;border:1px solid;'>$listaDisponibles[fecha]<input type='hidden' value='$listaDisponibles[id]'</td>
        <td style='padding:0.5rem;border:1px solid;'><input name='emp[$listaDisponibles[id]]' value='$listaDisponibles[nombre]'></input></td>
        <td style='padding:0.5rem;border:1px solid;'><select name='tecnicoModificar[$listaDisponibles[id]]'><option>$listaDisponibles[tecnico]</option><option>Mariela</option><option>Jorge</option></select></td>
        <td style='padding:0.5rem;border:1px solid;'>$listaDisponibles[situacion]</td>
        <td style='padding:0.5rem;'><input type='submit' value='Modificar'></input></td>
    </tr>"
;

En el segundo caso, tu _POST quedara algo asi:
Código PHP:
$_POST[emp][id]; // Aqui tienes el valor de EMP para el id ID
$_POST[tecnicoModificar][id]; // Aqui el nombre del tecnico 
Esto te podría servir para modificarlos todos de golpe...
Comiendo se me ha ocurrido hacer un form por cada fila... no sé como no se me ha ocurrido antes..

Muchisimas gracias por tu respuesta, te doy el punto y me guardo la segunda opción.

Gracias de nuevo

Etiquetas: modificar, resultado, select, variable
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:12.