Foros del Web » Programando para Internet » PHP »

Dónde está el error?

Estas en el tema de Dónde está el error? en el foro de PHP en Foros del Web. Buenas, Tengo este código: Código PHP: $query  =  mysql_query  ( "SELECT * FROM Pilots" ); $filas  =  mysql_num_rows ( $query ); for( $i  =  0 ;  $i  <  ...
  #1 (permalink)  
Antiguo 06/11/2012, 10:57
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Exclamación Dónde está el error?

Buenas,

Tengo este código:

Código PHP:
$query mysql_query ("SELECT * FROM Pilots");
$filas mysql_num_rows($query);

for(
$i 0$i $filas$i++){
    
$horas mysql_result($query0'Hours');
    
        if(
$horas 20){
        
mysql_query ("UPDATE Pilots SET Rango = 'IngenierodeVuelo'");
        }

        if(
$horas >= 20){
        
mysql_query ("UPDATE Pilots SET Rango = 'PrimerOficial'");
        }
 
        if(
$horas >= 75){
        
mysql_query ("UPDATE Pilots SET Rango = 'Comandante'");
        }

        if(
$horas >= 150){
        
mysql_query ("UPDATE Pilots SET Rango = 'ComandanteHelitt'");
        }
        
    

Lo que pretendo es crear unas comprobaciones para todas las entradas de la tabla Pilots.

Pero por algún motivo asigna mal el valor $horas. Le pone 99899899899899899899899899899899899899899899899899 8998998998. Este valor debería cambiar dependiendo del piloto.
  #2 (permalink)  
Antiguo 06/11/2012, 11:11
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Dónde está el error?

amigo con la info que das es como decir "tengo esta bolsa de agujas rojas, necesito encontrar una aguja azul" ahora, haciéndole al adivino intenta con esto
Código PHP:
Ver original
  1. $horas = mysql_result($query, $i, 'Hours');
cambia el 0 por $i

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 06/11/2012, 11:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dónde está el error?

¿Y cómo sabes que esos valores obtienes?

¿En tu base de datos están así?

Deberías imprimir dicho valor para ver que resulta.
Código PHP:
echo "|$horas|"
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 06/11/2012, 11:17
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Dónde está el error?

Hola, como ya te respondieron... tu error es que en todas las iteraciones colocas "0", mientras que debería ser "$i"... así:
Código PHP:
$horas mysql_result($query$i'Hours'); 
Aunque, te diría que en vez de usar un mysql_num_rows, un for y un mysql_result....
sería mucho mejor y mas practico, que solo uses un mysql_fetch_array.

Suerte ^^
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #5 (permalink)  
Antiguo 06/11/2012, 11:18
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Exclamación Respuesta: Dónde está el error?

Cita:
Iniciado por eits Ver Mensaje
amigo con la info que das es como decir "tengo esta bolsa de agujas rojas, necesito encontrar una aguja azul" ahora, haciéndole al adivino intenta con esto
Código PHP:
Ver original
  1. $horas = mysql_result($query, $i, 'Hours');
cambia el 0 por $i

saludos.
Ahora el problema es que le asigna a todos los pilotos el rango IngenierodeVuelo, independientemente de las horas. Supongo que será menor que 20, por el if.
  #6 (permalink)  
Antiguo 06/11/2012, 11:41
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Dónde está el error?

en primer lugar te sugiero que ya no uses mysql mejor usa el mysqli o pdo_mysql, dos te sugiero que hagas lo que dice pateketrueke con algo como esto
Código PHP:
Ver original
  1. $query = mysql_query ("SELECT Hours FROM Pilots");
  2. $filas = mysql_num_rows($query);
  3. if($query){
  4.     while($row=mysql_fetch_assoc($query)){
  5.         echo $row['Hours'].PHP_EOL;
  6.     }
  7. }else{
  8.     echo 'Error de consulta';
  9. }
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 06/11/2012, 11:46
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
Respuesta: Dónde está el error?

Cita:
Iniciado por carlosuc99 Ver Mensaje
Ahora el problema es que le asigna a todos los pilotos el rango IngenierodeVuelo, independientemente de las horas. Supongo que será menor que 20, por el if.
Eso es porque tus UPDATEs no tienen la clausula WHERE que es la que indica que row actualizar, sin el WHERE actualiza todas las filas...
  #8 (permalink)  
Antiguo 06/11/2012, 11:56
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Dónde está el error?

Cita:
Iniciado por GatorV Ver Mensaje
Eso es porque tus UPDATEs no tienen la clausula WHERE que es la que indica que row actualizar, sin el WHERE actualiza todas las filas...

no se como se me pudo pasar algo tan importante, pero en fin ya tienes la solucion.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #9 (permalink)  
Antiguo 06/11/2012, 13:44
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: Dónde está el error?

Pues gracias a todos. He ido a la piscina y dándole vueltas me he dado cuenta de lo del Where.

Oye pero para lo de mysqli es solo poner mysqli en vez de mysql?
  #10 (permalink)  
Antiguo 06/11/2012, 13:56
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
Respuesta: Dónde está el error?

No, son algunos cambios sobre todo en el orden de los parámetros entre mysql y mysqli...

Etiquetas: mysql, tabla
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 10:51.