PHP - prblema con un switch

 
Vista:
sin imagen de perfil

prblema con un switch

Publicado por alan alberto wiesse (58 intervenciones) el 22/05/2006 07:44:24
hola gente, me surgio un problema a la hora de comprar lo siguiente...

/////////////////////////////////////////////////////////////-CODIGO-/////////////////////////////////////////////////////////////
$query = "SELECT SUM(monto) FROM saldos WHERE id_cliente = 19";
$result = mysql_query ($query);
$row = mysql_fetch_array ($result);

switch ($row[0]){
case $row[0] < '0' : echo 'DEBE ' . abs($row[0]) . ' PESOS'; break;
case $row[0] > '0' : echo 'TIENE EN SU HABER ' . abs($row[0]) . ' PESOS'; break;
case $row[0] == '0' : echo 'CUENTA SALDADA '; break;
}
/////////////////////////////////////////////////////////////////-FIN-/////////////////////////////////////////////////////////////////

resulta que entra perfecto cuando el valor en $row[0] es menor o mayor a cero
pero cuando es igal a creo, entra en: case $row[0] < '0' : echo 'DEBE ' . abs($row[0]) . ' PESOS'; break;

que puede ser que este pasando ??? la verdad que me tiene desconecrtado ya que creo estar haciendo lo correcto .... verdad ???
desde ya muchas gracias al que desee contestarme algo
saludos desde corrientes argentina

P/D: el siguiente codigo si anda... pero con el afan de usar lo correcto en cada caso me surgio el problemita...

/////////////////////////////////////////////////////////////-CODIGO-/////////////////////////////////////////////////////////////
$query = "SELECT SUM(monto) FROM saldos WHERE id_cliente = 19";
$result = mysql_query ($query);
$row = mysql_fetch_array ($result);

if ($row[0]==0) echo 'CUENTA SALDADA ';
elseif($row[0]<0) echo 'DEBE ' . abs($row[0]) . ' PESOS';
elseif($row[0]>0) echo 'TIENE EN SU HABER ' . abs($row[0]) . ' PESOS';
/////////////////////////////////////////////////////////////////-FIN-/////////////////////////////////////////////////////////////////
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:prblema con un switch

Publicado por julio (10 intervenciones) el 23/05/2006 21:49:17
amigo pon distinto de cero, porque siempre te dara mal el rsultado ya que menor que cero no puede ser.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:prblema con un switch

Publicado por alan alberto wiesse (58 intervenciones) el 23/05/2006 23:37:42
agradezco tu interes y ganas por responderme pero no es la solucion,,,,
debiado a que entra antes de llegar al != "distinto"
tamb probe usando eso pero no pasa nada !!
gracias otra vez

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:prblema con un switch

Publicado por novato (1 intervención) el 25/05/2006 10:06:54
He probado tu codigo, y lo unico que he cambiado a sido:
- Poner entre comillas simples el identificador del cliente.
- En los case el 0 no tiene porque ir entre comillas simples ya que se trata de un numero y lo que tu estas comparando es un numero.
- Para el ultimo caso de los SWITCH no hace falta poner un break.

$query = "SELECT SUM(monto) FROM saldos WHERE id_cliente = '19'";
$result = mysql_query ($query);
$row = mysql_fetch_array ($result);

switch ($row[0]){
case $row[0] < 0 : echo 'DEBE ' . abs($row[0]) . ' PESOS'; break;
case $row[0] > 0 : echo 'TIENE EN SU HABER ' . abs($row[0]) . ' PESOS'; break;
case $row[0] == 0 : echo 'CUENTA SALDADA ';
}

Espero que te funcione.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar