Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: kakashi20 en 22 Abril 2013, 23:30 pm



Título: no entra en el if
Publicado por: kakashi20 en 22 Abril 2013, 23:30 pm
hola

me suscede algo raro o no se si este equivocado

tengo esta consulta

Código
  1. $result_hora = mysql_query("SELECT * FROM servicios WHERE ing ='".$_POST['ing']."' AND fecha_entrada='".$_POST['fecha']."'",$link)or die (mysql_error());
  2.  

la cual retorna tres fila con los valores numéricos: 15,16 y 17

y tengo el siguiente codigo:

Código
  1.  
  2. while($row = mysql_fetch_assoc($result_hora)){
  3.  
  4. echo $row['hora_entrada'];
  5.  
  6.  
  7. if ( $row['hora_entrada'] == 8  ){
  8.  
  9. $var1 = "1";
  10.  
  11. }else{
  12.  
  13. $var1 = "0";
  14. }
  15.  
  16. if ( $row['hora_entrada'] == 9  ){
  17.  
  18. $var11 = "1";
  19.  
  20. }else{
  21.  
  22. $var11 = "0";
  23. }
  24.  
  25. if ( $row['hora_entrada'] == 10 ){
  26.  
  27. $var2 = "1";
  28.  
  29. }else{
  30.  
  31. $var2 = "0";
  32. }
  33.  
  34. if ( $row['hora_entrada'] == 11 ){
  35.  
  36. $var22 = "1";
  37.  
  38. }else{
  39.  
  40. $var22 = "0";
  41. }
  42.  
  43. if ( $row['hora_entrada'] == 12  ){
  44.  
  45. $var3 = "1";
  46.  
  47. }else{
  48.  
  49. $var3 = "0";
  50. }
  51.  
  52. if ( $row['hora_entrada'] == 13  ){
  53.  
  54. $var33 = "1";
  55.  
  56. }else{
  57.  
  58. $var33 = "0";
  59. }
  60.  
  61. if ( $row['hora_entrada'] == 14 ){
  62.  
  63. $var4 = "1";
  64.  
  65. }else{
  66.  
  67. $var4 = "0";
  68. }
  69.  
  70. if ( $row['hora_entrada'] == "15" ){
  71.  
  72. $var44 = "si";
  73.  
  74. }else{
  75.  
  76. $var44 = "no";
  77. }
  78.  
  79.  
  80. if ( $row['hora_entrada'] == 16 ){
  81.  
  82. $var5 = "1";
  83.  
  84. }else{
  85.  
  86. $var5 = "0";
  87. }
  88.  
  89. if ( $row['hora_entrada'] == 17 ){
  90.  
  91. $var55 = "1";
  92.  
  93. }else{
  94.  
  95. $var55 = "0";
  96. }
  97.  
  98.  
  99.  
  100. }
  101.  
  102.  


mando a escribir los resultados de las variable asi:

Código
  1. echo"<br>";
  2. echo $var1;
  3. echo"<br>";
  4. echo $var2;
  5. echo"<br>";
  6. echo $var3;
  7. echo"<br>";
  8. echo $var4;
  9. echo"<br>";
  10. echo $var5;
  11. echo"<br>";
  12.  
  13. echo"<br>";
  14. echo $var11;
  15. echo"<br>";
  16. echo $var22;
  17. echo"<br>";
  18. echo $var33;
  19. echo"<br>";
  20. echo $var44;
  21. echo"<br>";
  22. echo $var55;
  23. echo"<br>";
  24.  
  25.  

y el problema es que no me entra en el if del 15 y 16, pero en el if del 17 si entra..

no se que pasa, no se si este haciendo algo mal..

si alguien me pudiese ayudar se lo agradecería.


Título: Re: no entra en el if
Publicado por: engel lex en 23 Abril 2013, 04:18 am
postea el codigo mas claro (un pedazo grande mas visible), que datos estás enviando, la estructura o datos de la db y si puedes has un print_r a $row para ver que está devolviendo el codigo... puede ser error en tus datos mas que en el codigo

por otro lado puedes
1- cambiar todas las variables por un solo array
2- igualar todas las variables 0 y eliminas todos los else

para que su codigo sea mas compacto y facil de manejar


Título: Re: no entra en el if
Publicado por: WHK en 24 Abril 2013, 22:25 pm
Utiliza === en ves de ==
Estas seguro que en la base de datos las columas son de tipo INT y no Vchar?


Título: Re: no entra en el if
Publicado por: Wofo en 25 Abril 2013, 12:10 pm
No tiene nada que ver con tu pergunta pero, por favor...

¡Usar mysqli (http://php.net/manual/en/book.mysqli.php)!


Título: Re: no entra en el if
Publicado por: engel lex en 25 Abril 2013, 16:27 pm
para que mysqli... es ganas de usar objetos en algo que ya esta explicito... y para eso me creo mi propia clase de manejo mas flexible y adaptada a necesidades -.- no se, solo digo es opinion personal


Título: Re: no entra en el if
Publicado por: WHK en 25 Abril 2013, 18:42 pm
porque mysql_query está obsoleto y va a desaparece de algunas versiones de php:

http://cl1.php.net/mysql_query
Citar
This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information.


Título: Re: no entra en el if
Publicado por: engel lex en 25 Abril 2013, 20:22 pm
wow! D:! que fastidio -.-

alguien conoce el por que queda obsoleta?


Título: Re: no entra en el if
Publicado por: WHK en 25 Abril 2013, 21:57 pm
porque la programación orientada a objeto es la manera mas ordenada y flexible de crear un software o script, la mayoría de los cambios en php5 fueron migrar varias funciones libres a objetos, de hecho si le das un vistazo a todos los frameworks existentes todos usan objetos.


Título: Re: no entra en el if
Publicado por: engel lex en 26 Abril 2013, 04:29 am
si, yo siempre uso objetos porque es comodo... pero me parece que si tienes funciones explicitas asi son mas comodas para crear los objetos que usar objetos para crear objetos (para no heredarlas porque estás sumando varias funciones)... bueh... sera adaptarse


Título: Re: no entra en el if
Publicado por: #!drvy en 26 Abril 2013, 04:35 am
Sigues pudiendo usar el modo "normal".. por ejemplo:

Código
  1. <?php $result = $mysqli->query("lalalal"); ?>

Código
  1. <?php $result = mysqli_query($link,'lalalal'); ?>

Saludos


Título: Re: no entra en el if
Publicado por: Wofo en 26 Abril 2013, 10:23 am
Y si quieres que el objeto se adapte a tus necesidades haces una clase que herede de mysqli. Es bastante sencillo.

Saludos,
Wofo.