Foros del Web » Programando para Internet » PHP »

Hacer UPDATE con PHP durante una consulta.

Estas en el tema de Hacer UPDATE con PHP durante una consulta. en el foro de PHP en Foros del Web. Tengo una consulta y disculpen si es muy tonta porque soy nuevo programando PHP y MySQL. Yo necesito ir haciendo UPDATE a una tabla dentro ...
  #1 (permalink)  
Antiguo 09/06/2014, 18:00
 
Fecha de Ingreso: octubre-2005
Mensajes: 40
Antigüedad: 18 años, 6 meses
Puntos: 0
Hacer UPDATE con PHP durante una consulta.

Tengo una consulta y disculpen si es muy tonta porque soy nuevo programando PHP y MySQL.

Yo necesito ir haciendo UPDATE a una tabla dentro de otra consulta… le explico mejor.
Ejemplo: quiero subir un 10% a un campo llamado “precio” en una tabla llamada productos.
Yo hacia

$vConsulta = "SELECT * FROM productos ";
$registros=mysqli_query($con,$vConsulta) or die(mysqli_error($con));
while ($reg=mysqli_fetch_array($registros))
{
$vPrecio = $reg['precio'];
$vPorcentaje = $vPrecio * 10 / 100;
$vNuevoPrecio = $vPrecio + $vPorcentaje;
//y aca me gustaría hacer un UPDATE, sin cerrar la otra consulta (se que esta mal como lo hice, pero se puede hacer?)
mysqli_query($con,"UPDATE productos SET precio= $vNuevoBruto WHERE id=$reg['id']") or die(mysqli_error($con));

}
Gracias por su tiempo!
  #2 (permalink)  
Antiguo 09/06/2014, 18:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Hacer UPDATE con PHP durante una consulta.

Claro que se puede hacer pero es excesivamente innecesario, es decir, dado que no hay datos externos para la operación se podría resolver con una sola consulta de SQL.

No hay necesidad de iterar ni de ir actualizando en cada vuelta, eso en definitiva está mal.

Revisa tu problema en el foro de SQL para que te orienten mejor.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/06/2014, 18:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Hacer UPDATE con PHP durante una consulta.

En realidad la primera consulta ya ha terminado, para cuando ejecutas los UPDATE. El hecho que estés iterando el resultado del SELECT es medio irrelevante, porque lo que en realidad estás leyendo es lo que MySQL ya devolvió. Como mucho podría estar en el buffer de consultas de MySQL, pero si no me equivoco ni siquiera eso.
No existe ninguna restricción a nivel de la base que impida hacer lo que dices, aunque el proceso en sí no tiene mucho sentido.
¿Por qué digo eso?
Porque si ese es el script real, como no estás haciendo ninguna comparación dentro del while(), en realidad estás enviando a actualizar todos y cada uno de los registros. Y en ese sentido lo que estás haciendo sería exactamente igual a enviar esto:
Código MySQL:
Ver original
  1. UPDATE productos SET precio= (precio * 1.1)
de esta forma:
Código PHP:
Ver original
  1. $vConsulta = "UPDATE productos SET precio= (precio * 1.1)";
  2. $result=mysqli_query($con,$vConsulta) or die(mysqli_error($con));
__________________
¿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 10/06/2014, 04:55
 
Fecha de Ingreso: octubre-2005
Mensajes: 40
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Hacer UPDATE con PHP durante una consulta.

Muchas gracias a los dos que me contestaron, como le dije estoy comenzando y bueno, a veces pregunto cosas que no tienen mucho sentido.
Ahora entendi que con el while solo muestro el contenido que YA me HABIA devuelto la consulta.

Lo que veo que me hace falta es aprender mucho mas de SQL para poder mejorar mi programacion.

UPDATE productos SET precio= (precio * 1.1)

(precio * 1.1) <-- esto multiplicaria el precio por 1.1? o algo asi?

GRACIAS muchas gracias.
  #5 (permalink)  
Antiguo 10/06/2014, 06:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Hacer UPDATE con PHP durante una consulta.

Cita:
(precio * 1.1) <-- esto multiplicaria el precio por 1.1? o algo asi?
Exactamente. Como en cualquier operación aritmétida de tasas y porcentajes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: durante, mysql, registro, select, sql, tabla, 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 13:33.