Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/11/2013, 10:26
Avatar de DaHaSaMo
DaHaSaMo
 
Fecha de Ingreso: octubre-2011
Mensajes: 9
Antigüedad: 12 años, 6 meses
Puntos: 0
Problema con Ciclos PHP

Buenos días, después de buscar e intentar varias opciones sin
obtener resultados favorables, realizo la pregunta:

Tengo 2 tablas en MySql, que tienen un campo en común, digamos que es el "Id1" y un "Id2" y "Nombre2" que esta solo en una tabla, cada que se selecciona el
"Id2" en un proceso, la siguiente vez que se seleccione, deberá aumentarse en uno, para ser escogidos en orden.

Entonces, tomo los que tengan "Id1" y selecciono el primero y el ultimo, para saber cuando reiniciar el contador de Id.

Y todo anda bn, el problema surge cuando hago las condiciones, ya que no las realiza adecuadamente, si la hago con variables "$xxxxxx" no funciona, pero si yo lo hago directamente con un numero "20" si anda bn.

Creo que es un error de sintaxis, pero no logro decifrar, también creo que no entra al ultimo "if" porque el penultimo se cumple y se sale, o no se, agradeceria su ayuda, Gracias.

Sacar el primero:
$query1 = mysql_query("SELECT Id2 FROM tabla2 WHERE Id1= '$var' ORDER BY Id2 ASC LIMIT 1");
$fila1 = mysql_fetch_array($query1);
if(mysql_num_rows($query1)) { Id2Prim = $fila1['Id2']; }


Sacar el ultimo:
$query2 = mysql_query("SELECT Id2 FROM tabla2 WHERE Id1= '$var' ORDER BY Id2 DESC LIMIT 1");
$fila2 = mysql_fetch_array($query2);
if(mysql_num_rows($query2)) { Id2Ult = $fila2['Id2']; }


Seleccionar el ultimo usado:
$query3 = mysql_query("SELECT Id2 FROM tabla1WHERE Id1= '$var' ORDER BY Fecha DESC LIMIT 1");
$fila3 = mysql_fetch_array($query3);
if(mysql_num_rows($query3)) { Id2= $fila3['Id2']; }


Acá es donde empieza el problema:
if(Id2 == Id2Ult )
{
Id2New = Id2Prim ; Si el Id nuevo, es igual al ultimo, se ubica en el primero para volver a empezar
}

else
{
$Id2New = Id2 + 1; si no es el ultimo, aumentar en uno, para elegir el siguiente
}

Id2Prim = 18
Id2Ult = 20

Si Id2 = 18 --> Id2New = 19 (FUNCIONA) en teoria
Si Id2 = 19 --> Id2New = 20 (FUNCIONA) en teoria
Si Id2 = 20 --> Id2New = 21 (NO FUNCIONA) no esta entrando al if, pasa directo al else

---------------------------------------

Yo pense que el problema podria ser que como entraba en el if de la "query3" no pasaba al if de comparaciones, pero eso es ilógico, y para probarlo, hice esto manualmente:

Id2Prim = 18
Id2Ult = 20
Id2 = 18

if(Id2 == 20)
{
Id2New = Id2Prim ; Si el Id nuevo, es igual al ultimo, se ubica en el primero para volver a empezar
}

else
{
$Id2New = Id2 + 1; si no es el ultimo, aumentar en uno, para elegir el siguiente
}

Deja el Id2New en 19 (FUNCIONA)

------------------------------------------------

Id2Prim = 18
Id2Ult = 20
Id2 = 20

if(Id2 == 20)
{
Id2New = Id2Prim ; Si el Id nuevo, es igual al ultimo, se ubica en el primero para volver a empezar
}

else
{
$Id2New = Id2 + 1; si no es el ultimo, aumentar en uno, para elegir el siguiente
}

Deja el Id2New en 18 (FUNCIONA)

--------------------------------------------------

Muchas Gracias.

Última edición por DaHaSaMo; 08/11/2013 a las 11:42