Foros del Web » Programando para Internet » PHP »

Pequeña duda

Estas en el tema de Pequeña duda en el foro de PHP en Foros del Web. Hola a todos, Ayer estaba programando pero se me presento un problema que no pude resolver, en mi base de datos (mysql) tengo un campo ...
  #1 (permalink)  
Antiguo 25/03/2008, 10:18
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Pequeña duda

Hola a todos,

Ayer estaba programando pero se me presento un problema que no pude resolver, en mi base de datos (mysql) tengo un campo llamado ID con auto incremento.

Ahora cuando en ID yo tengo varias datos elimininados entonces tengo 35 campos ocupados en id, pero me falta el 14 17 20, y algun otro,

Entonces mi duda es:

Como le pido a la base de datos que me de los id pero solo de los usuarios existente para asi ponerlo en un look for


Ayuda!!!!!!!!!!

Sino se entendio lo explico mejor
  #2 (permalink)  
Antiguo 25/03/2008, 10:29
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Re: Pequeña duda

No entiendo tu problema. Si has eliminado el 14, 17 y 20 pues ya no existen en tu base de datos, si haces un select id pues aparecerán los id de los que existen, de los que has eliminado no aparecerán. Cuál es el problema?
  #3 (permalink)  
Antiguo 25/03/2008, 10:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Pequeña duda

Cita:
Iniciado por ElJavista Ver Mensaje
No entiendo tu problema. Si has eliminado el 14, 17 y 20 pues ya no existen en tu base de datos, si haces un select id pues aparecerán los id de los que existen, de los que has eliminado no aparecerán. Cuál es el problema?

Perdon no me exprese bien yo quiero hacer un look for que pase por todos los user existentes, como lo hago???
  #4 (permalink)  
Antiguo 25/03/2008, 10:39
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Re: Pequeña duda

Yo domino PHP pero no sé que a que te refieres con un look for.
  #5 (permalink)  
Antiguo 25/03/2008, 10:42
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Pequeña duda

Cita:
Iniciado por ElJavista Ver Mensaje
Yo domino PHP pero no sé que a que te refieres con un look for.
ejemplo de look for

Código PHP:
for($i=1;$i>=100;$i++)
{
echo 
$i;

$i se va a sumar hasta que llegue a 100 eso es un look for tambien hay look whilee switch y demas.
  #6 (permalink)  
Antiguo 25/03/2008, 10:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Pequeña duda

Eso que pones no se llama look for, se llama un ciclo for, o loop for en Ingles.

Lo que puedes hacer para ciclar es solamente pedirle los ids e irlos leyendo:
Código PHP:
$query "SELECT id FROM tabla";
$result mysql_query$query ) or die( mysql_error() );
$ids = array();
while( 
$row mysql_fetch_array$result ) ) {
        
$ids[] = $row['id'];
}

for( 
$i 0$i count$ids ); $i++ ) {
      echo 
$ids[$i];

Saludos.
  #7 (permalink)  
Antiguo 25/03/2008, 10:46
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Re: Pequeña duda

Eso un look for? y por qué look si yo solo veo for. En fin. Bueno, Ese código del "look for"está rarito, imprimirá solo cundo el $i sea mayor o igual a 100. Mira, no entiendo lo que quieres hacer, pero te diré lo que sé.

No entiendo porque tiene que ser con for. Lo más sensato y común es hacerlo con un while. e esta manera:

$ssi = "Select id from tabla";
$rsi = mysql_query($ssi);
while ($rsi = mysql_fetch_array($rsi)) {
echo $rsi["id"];
}

Eso imprimirá todos los id de los usuarios existentes. Eso es lo que necesitas?
  #8 (permalink)  
Antiguo 25/03/2008, 11:06
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Pequeña duda

Gracias,

eljavista , yo le digo a todo loop for pero no e que solo uso ese loop,gracias por tu respuesta, ahora tengo un problema mas, no me modifica la info en la bd. No se porque antes funcionaba bien, no voy a poner todo el code porque son casi 10.000 lineas, y es todo lo mismo pero cambiando el IF.

Código PHP:

 $db
=db_connect();
$query "SELECT * FROM user";
$result mysql_query$query ) or die( mysql_error() );



$ids = array();
while( 
$row mysql_fetch_array$result ) ) {
        
$ids[] = $row['id'];
}

for( 
$i 0$i count$ids ); $i++ ) 
{
      echo 
$ids[$i]."<br>";



 
$row=mysql_fetch_array($result);    
 
 
$id=25;    
echo  
$id;  
 
$query "select * from user where id='$id'" or die (mysql_error());
  
$resultado mysql_query($query,$db) or die (mysql_error());
 
$query="UPDATE `juego`.`entrenamiento_ayer` SET  `drive_a`= '".$row["drive"]."', 
                                                  `reves_a`= '"
.$row["reves"]."',
                                                  `voleas_d_a`= '"
.$row["voleas_d"]."',
                                                  `voleas_r_a`= '"
.$row["voleas_r"]."',
                                                  `saque_a`= '"
.$row["saque"]."',
                                                  `passing_a`= '"
.$row["passing"]."',
                                                  `smash_a`= '"
.$row["smash"]."',
                                                  `remates_a`= '"
.$row["remates"]."',
                                                  `rapidez_a`= '"
.$row["rapidez"]."',
                                                  `drop_a`= '"
.$row["drop"]."',
                                                  `slice_a`= '"
.$row["slice"]."',
                                                  `fuerza_a`= '"
.$row["fuerza"]."',
                                                  `precicion_a`= '"
.$row["precicion"]."',
                                                `inteligencia_a`= '"
.$row["inteligencia"]."',                                                   `condicion_a`= '".$row["condicion"]."',
                                                  `practica_a`= '"
.$row["practica"]."'                                                                WHERE id=$id"
 

      
$resultado mysql_query($query,$db) or die (mysql_error());
     
     
     
     
     
     if (
$row["ent_1"]=="drive")
     {
     if (
$row["drive"]<=20)     
     {
     
$agregar1=rand(4,3);         

     }
          elseif (
$row["drive"]<=35 && $row["drive"]>20)     
     {
     
$agregar1=3;         

     }
               elseif (
$row["drive"]<=50 && $row["drive"]>35)     
     {
     
$agregar1=rand(2,3);         

     }
              
                   elseif (
$row["drive"]<=75 && $row["drive"]>50)     
     {
     
$agregar1=2;         

     }
                        elseif (
$row["drive"]<=80 && $row["drive"]>75)     
     {
     
$agregar1=rand(1,2);         

     }
                            elseif (
$row["drive"]<=90 && $row["drive"]>80)     
     {
     
$agregar1=1;         

     }
                                 elseif (
$row["drive"]<=100 && $row["drive"]>90)     
     {
     
$agregar1=rand(0,1);         

     }
     
                                      elseif (
$row["drive"]>=100)     
     {
     
$agregar1=rand(-2,-8);         

     }
    
    else
     {
    
$agregar1=rand(10,11);    
    }
     
$agregar=$row["drive"] + $agregar1;
     
     if (
$agregar>100)
   {
    
$numero=rand(-2,-3);
   
$agregar=$agregar+$numero;    
    
   }
   
    
$query="UPDATE `juego`.`user` SET `drive` = '$agregar' WHERE `user`.`id` ='$id'";
    
$resultado mysql_query($query,$db) or die (mysql_error());      
      } 
Donde me confundo que no me guarda la info en la bd. No me tira error ni nada, simplemente no me o guarda
  #9 (permalink)  
Antiguo 25/03/2008, 13:42
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Re: Pequeña duda

Pues no puedo ayudarte a decirte cual es el error pero si te puedo aconsejar que imprimias la consulta de actualización para que sepas donde está el problema. Suerte!
  #10 (permalink)  
Antiguo 25/03/2008, 15:20
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Pequeña duda

Así como lo veo hay unos cuantos errores.

Primero:
Código PHP:
while( $row mysql_fetch_array$result ) ) { 
        
$ids[] = $row['id']; 

 
for( 
$i 0$i count$ids ); $i++ )  

NO tiene sentido, pues el while ya ejecuta un bucle (loop) con los registros devueltos por la consulta, por lo tanto no es necesario guardar los datos a un array para luego, con el for volver a recorrer el mismo array.

Ahora, no se entiende bien tu duda. Tienes problemas con los ids? o con el update a la base de datos?. Si es con los ids, bastaria hacer:

Código PHP:
$query "SELECT id FROM user"
$aql mysql_query($query,$db);
 
while(
$datos mysql_fetch_row($sql)) {
    echo 
$datos[0]."<br>";

Si el problema es el UPDATE, cuál de los dos que haces es? En el primero no defines una claúsula WHERE, es ahi el problema?

Un saludo,
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 20:27.