Foros del Web » Programando para Internet » PHP »

No se que tiene de mal!:S:S

Estas en el tema de No se que tiene de mal!:S:S en el foro de PHP en Foros del Web. Buenas Noches,, miren, tengo esto que es muy simple, pero nose que es lo que esta mal que no me anda como quiero.. Código PHP: ...
  #1 (permalink)  
Antiguo 18/10/2007, 22:37
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
No se que tiene de mal!:S:S

Buenas Noches,,
miren, tengo esto que es muy simple, pero nose que es lo que esta mal que no me anda como quiero..

Código PHP:
$conn2 mysql_query("SELECT * FROM tabla WHERE iduser='Znajhsw245sa'");

if( 
mysql_num_rows($conn2) <= ){
echo 
'no tiene nada!!';
exit;
}else{ 
echo
''

Es Obvio, que ese valor de iduser no se encuentra en la tabla.. entonces porque no me imprime lo correcto que seria: no tiene nada...

que hay mal??

saludos y mil gracias!!


PD: el foro esta andando mal?? o me parece a mi.. porque estoy viendo siempre los mismo mensajes:P:P

MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #2 (permalink)  
Antiguo 19/10/2007, 00:05
 
Fecha de Ingreso: agosto-2007
Ubicación: En el lugar menos pensado
Mensajes: 83
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: No se que tiene de mal!:S:S

Hola
Bueno, me imagino que estas haciendo la consulta completa con la prelación de la conexión a la bd verdad?

es decir, algo como lo que esta aquí

http://www.php-es.com/function.mysql-data-seek.html

Que tipo de dato es iduser?
Haciendo la consulta directamente en la bd que muestra el rows affected??
revisa todo eso, suerte
  #3 (permalink)  
Antiguo 19/10/2007, 08:55
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
Re: No se que tiene de mal!:S:S

Mira, te digo concretamente cual es el problema,

iduser en un INT con ID's

si yo pongo iduser='111111111111000000' es onvio que no va a estar y bueno, me dice "no tiene nada" como debe ser..

pero si yo a iduser le pongo como valor iduser='14522as6sdmz'
osea le agrego caracteres de letras, me lo tomo como que esta, y no esta ese valor, menos si es un INT..

se entiende??

el probele esta en ponerle <= 0 ?? creeria que esta bien asi, si no arroja ningun registro....

Código PHP:
if( mysql_num_rows($conn2) <= ){ 
tambien pobre poner

Código PHP:
if( mysql_num_rows($conn2) == '' ){ 
pero tampoco funciono..

alguna idea??

gracias!!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #4 (permalink)  
Antiguo 19/10/2007, 09:08
 
Fecha de Ingreso: abril-2007
Mensajes: 213
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: No se que tiene de mal!:S:S

Yo creo que podrias hacer dos cosas:

Código PHP:
$registros = (mysql_num_rows($conn2);

if(
$registros == "0" ){ echo"No hay nada"?> 
La otra solución sería haciendo un select, y comprobando que estuviera vacio leyendo los datos con un array.

seria por ejemplo, despues de hacer la lectura y todo...

Código PHP:
if($lectura[campo] == "") {echo"No hay nada";} 
  #5 (permalink)  
Antiguo 19/10/2007, 09:15
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 125
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: No se que tiene de mal!:S:S

Estas preguntando por un texto, donde se guardan enteros.
En realidad yo validaria que se compare con enteros.
Para sacarte la duda pone.

Código PHP:

print (mysql_num_rows($conn2));//para ver que valor entrega cuando ingresas texto 
__________________
alquiler gesell
  #6 (permalink)  
Antiguo 19/10/2007, 09:42
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
Re: No se que tiene de mal!:S:S

Bueno haber.. les cuento..
probe las tres formas que me dijeron..

el problema esta en que si yo le doy como valor un numero "20" y esta te da el OK
si le pongo un numero "11111111111111000" que no esta. me da ERROR

si le pongo "ABC123" me da el ERROR como corresponde pero ahora si le pongo
"123ABC" me da el OK,

osea, me di cuenta que si el valor empieza con un numero, te lo toma como correcto :S si no empieza con numero y dps tiene lo que sea, te da el ERROR..

a que se debera??

ah y probando el print() cuando le pongo 123ABC me da como valor 1 :S no se porque tampoco..

alguna idea??

saludos!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #7 (permalink)  
Antiguo 19/10/2007, 09:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: No se que tiene de mal!:S:S

El problema es que tu campo es un entero (INT) entonces a la hora de pasarle tu consulta hace lo que se conoce como "casting" es decir: 123ABC lo convierte a 123 y si hay un registro pasa.

Este comportamiento es por defecto de MySQL, y creo lo puedes cambiar modificando tu instalacion de SQL.

Saludos.
  #8 (permalink)  
Antiguo 19/10/2007, 10:00
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
Re: No se que tiene de mal!:S:S

AH ok...
pero no quiero cambiarlo.. porque seria mucho lio.. y despues en el host tbm se tendria que cambiar..

otra opcion podria ser que si .php?id=X que si id contiene caracteres de letras, marque el error..
porque solo tendrian que ser numero...

con cual funcion puedo hacerlo??

saludos!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #9 (permalink)  
Antiguo 19/10/2007, 10:10
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 18 años
Puntos: 23
Re: No se que tiene de mal!:S:S

Bueno, lo puede solucionar ;);)

conla funcion ereg :D

saludos!
MC

muchas gracias a todos eh!
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
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 12:10.