Foros del Web » Programando para Internet » PHP »

Ayuda con php y seleccion de varios datos

Estas en el tema de Ayuda con php y seleccion de varios datos en el foro de PHP en Foros del Web. tengo una tabla usuarios donde uno de sus campos es tipo, y otro es bonus quiero seleccionar todos los usuarios de tipo A y sumar ...
  #1 (permalink)  
Antiguo 22/08/2008, 16:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Ayuda con php y seleccion de varios datos

tengo una tabla usuarios donde uno de sus campos es tipo, y otro es bonus


quiero seleccionar todos los usuarios de tipo A y sumar al bonus existente un nuevo bonus seleccionado al azar

probe con esto

$sql="select * from usuarios where tipo='A'";
$result=mysql_query($sql);
$row=mysql_result($result);
$bonus=$row["bonus"];

$bonusadicional=rand(3,10);

y con un boton que hacia esto

$sql="update usuarios set bonus=$bonus+$bonusadicional where tipo='A'";

esto funciona seleccionando un numero entre 3 y 10 por ejemplo 5 y le suma a todos los usuarios un 5 en el bonus.

Pero yo quisiera que a cada uno me seleccionara un numero y a cada usuario le agregara diferente numero

es esto posible?
  #2 (permalink)  
Antiguo 22/08/2008, 16:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Ayuda con php y seleccion de varios datos

En ese caso deberías hacer un bucle que recorra a cada usuario y hacer el rand cada vez que pasas por el bucle.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 22/08/2008, 16:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con php y seleccion de varios datos

me podrias decir como se hace un bucle?

te lo agradecere mucho
  #4 (permalink)  
Antiguo 22/08/2008, 16:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
De acuerdo Respuesta: Ayuda con php y seleccion de varios datos

Normalmente para estos casos usaremos un bucle while.

Véase la documentación de PHP: http://www.php.net/manual/es/control...ures.while.php
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 22/08/2008, 16:40
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con php y seleccion de varios datos

entendi que con el bucle while puedo dar una orden n numero de veces

entonces primero tendria que sacar cuantos usuarios cumplen con el requisito

y despues tendria que ordenar que en cada while eliga un rand y lo agregue a bonus

pero no entiendo como plantearlo en el lenguaje sql podrian hacerme el favor de plantearlo, recurro a ustedes como ultimo recuerso despeus de dias de busqueda en internet
  #6 (permalink)  
Antiguo 22/08/2008, 16:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
De acuerdo Respuesta: Ayuda con php y seleccion de varios datos

El SQL ya está bien planteado, no vas a necesitar cambiarlo, lo único que ahora vas a necesitas es recorrer todos los datos que obtiene la consulta.

Mira este ejemplo sencillo de las FAQ's:
http://www.forosdelweb.com/f18/faqs-...00/#post254361
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 22/08/2008, 16:59
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con php y seleccion de varios datos

segun el ejemplo que me hiciste el favor de mandarme seria el codigo asi, segun entiendo pero despues del while es donde no entiendo como poner el aleatorio.

$squery="Select * from usuarios where tipo='A'";
$iquery=mysql_query($squery);
if($iquery>0){
$irow=0;
$ilastrow=mysql_num_rows($iquery);
while($irow<$ilastrow){



$irow++;
}
}
  #8 (permalink)  
Antiguo 22/08/2008, 17:21
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con php y seleccion de varios datos

<?
$squery="Select * from usuarios where tipo='A'";
$iquery=mysql_query($squery);
if($iquery>0){
$irow=0;
$ilastrow=mysql_num_rows($iquery);
while($irow<$ilastrow){

$sql = "SELECT * FROM usuarios where tipo='A'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$bonus=$row["bonus"];

$bonusadicional=rand(3,10);

$query="update usuarios set bonus=$bonus+$bonusadicional where tipo='A'";
mysql_query($query) or die(mysql_error());

$irow++;
}
}?>
  #9 (permalink)  
Antiguo 22/08/2008, 17:40
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con php y seleccion de varios datos

<?
$squery="Select * from usuarios where tipo='A'";
$iquery=mysql_query($squery);
if($iquery>0){
$irow=0;
$ilastrow=mysql_num_rows($iquery);
while($irow<$ilastrow){

$sql = "SELECT * FROM usuarios where tipo='A'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$bonus=$row["bonus"];

$bonusadicional=rand(3,10);

$query="update usuarios set bonus=$bonus+$bonusadicional where tipo='A'";
mysql_query($query) or die(mysql_error());

$irow++;
}
}?>

esto no funciona :( me selecciona el numero aleatorio y me lo suma a todos los usuarios tipo A el mismo digito 10 para todos, 5 para todos, pero no aleatorio para cada uno :( no se si darme por vencida
  #10 (permalink)  
Antiguo 22/08/2008, 22:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con php y seleccion de varios datos

probe lo que les puse arriba y sigue sin funcionar :(
  #11 (permalink)  
Antiguo 23/08/2008, 10:15
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Respuesta: Ayuda con php y seleccion de varios datos

Que tal lizethtr3s410, prueba así tu código:

Código PHP:
<?php
$query 
"Select * from usuarios where tipo ='A'";
$result mysql_query($query) or die("Error en query $query:".mysql_error() );
while(
$row mysql_fetch_array($result) ){
$bonus $row["bonus"];
$bonusadicional rand(3,10);
$query_I "update usuarios set bonus=$bonus+$bonusadicional where tipo='A'";
$result_I mysql_query($query_I) or die("Error en query $query_I:".mysql_error() );}
?>

Saludos.
  #12 (permalink)  
Antiguo 23/08/2008, 12:08
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con php y seleccion de varios datos

gracias carlojas pero me sigue agregando la misma cantidad de bonus a todos los usuarios :(
  #13 (permalink)  
Antiguo 23/08/2008, 14:34
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 20 años, 2 meses
Puntos: 71
Respuesta: Ayuda con php y seleccion de varios datos

Si quieres asegurarte que el random sera de un numero diferente al siguiente, añade despues de esta linea:

Código PHP:
$bonusadicional rand(3,10); 
esto...:
Código PHP:
while($b == $bonusadicional){
  
$b=rand(3,10);
}
$bonusadicional $b
  #14 (permalink)  
Antiguo 24/08/2008, 13:12
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ayuda con php y seleccion de varios datos

tampoco funciona, sigue tomando solo los datos del primer user y poniendolo a todos es decir que si el primero tiene bonus 12 el segundo 23 y el tercero 4 y el aleatorio sale 9 todos me quedan con bonus 21, que es la suma del bonus del primero y el aleatorio
  #15 (permalink)  
Antiguo 24/08/2008, 14:33
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Respuesta: Ayuda con php y seleccion de varios datos

Que tal lizethtr3s410, debes de especificar el usuario al hacer la actualización me imagino que tu tabla tiene un IDUsuario por ejemplo

Código PHP:
$query_I "update usuarios set bonus=$bonus+$bonusadicional where id_usuario = '".$row['id_usuario']."'"
$result_I mysql_query($query_I) or die("Error en query $query_I:".mysql_error() ); 

Saludos.

Última edición por Carlojas; 25/08/2008 a las 14:38
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:06.