Foros del Web » Programando para Internet » PHP »

chequeo si existe

Estas en el tema de chequeo si existe en el foro de PHP en Foros del Web. tngo una formula donde antes de insertar necesito saber si existe en la BD un comercio con el mismo nombre, yo lo hago asi: $checkcTitle ...
  #1 (permalink)  
Antiguo 29/03/2003, 08:58
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
chequeo si existe

tngo una formula donde antes de insertar necesito saber si existe en la BD un comercio con el mismo nombre, yo lo hago asi:

$checkcTitle = mysql_query("select * from comercials were cTitle=".$title."");
if (!$checkcTitle)
echo "could not execute query";
if (mysql_num_rows($result)>0)
return "that Comercial Name (".$title.")is taken -go back and chose another one.";


aqui el insert.

}else{
echo " <script>document.location.href='/php/error.php?err=0'</script>";
//echo $query;
}

} // insertar


Pero me manda este error:
could not execute query
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /bdb3.php on line 70


qué pasa?

gracias!

  #2 (permalink)  
Antiguo 29/03/2003, 09:15
 
Fecha de Ingreso: diciembre-2002
Ubicación: Aquí
Mensajes: 192
Antigüedad: 21 años, 4 meses
Puntos: 0
a primera vista da la impresion de que te sale eso porque no has definido la variable $result
__________________
Nugar
  #3 (permalink)  
Antiguo 29/03/2003, 09:19
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
gracias, era cierto, pero lo acabo de cambiar
$checkcTitle = mysql_query("select * from comercials were cTitle=".$title."");
if (!$checkcTitle)
echo "could not execute query";
if (mysql_num_rows($checkcTitle)>0)
return "that Comercial Name (".$title.")is taken -go back and chose another one.";


y nada, me tira
could not execute query
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /bdb3.php on line 70


tonces?????
  #4 (permalink)  
Antiguo 29/03/2003, 09:48
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
hayyyyy
lo cambie bastante a ver que pasa, ahora verifico si existe medainte

$checkcTitle = "select * from comercials were cTitle=".$title."";
$result = mysql_query($checkcTitle);
if (!$result){

echo "that Comercial Name (".$title.")is taken -go back and chose another one.";
echo $checkcTitle;
}else{

hago el insert
}

pero siemre siempre, anque no exista un comercio con el nombre dado, me responde:
that Comercial Name (**8985654+68-*/8)is taken -go back and chose another one.

select * from comercials were cTitle=**8985654+68-*/8


que pasa. vamos gente apoyo!

  #5 (permalink)  
Antiguo 29/03/2003, 11:30
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
ahy donde esta el error, ahora lo hago asi:

$checkcTitle = "select COUNT(*) from comercials were cTitle=".$title."";
$result = mysql_query($checkcTitle);
if (mysql_result($result,0) > 0){

//if (!$result){

echo "that Comercial Name (".$title.")is taken -go back and chose another one.";
echo $checkcTitle;
}else{
inserto aqui
}

y me manda el mismo error de siempre>

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /bdb3.php on line 78

y en esta linea lo que tengo es:

if (mysql_result($result,0) > 0){


por ke no me correeeee?????
  #6 (permalink)  
Antiguo 29/03/2003, 12:00
 
Fecha de Ingreso: diciembre-2002
Ubicación: Aquí
Mensajes: 192
Antigüedad: 21 años, 4 meses
Puntos: 0
antes de seguir, esto que pones aca es copy/paste de tu codigo? si es asi, tienes were y debe ser where
__________________
Nugar
  #7 (permalink)  
Antiguo 29/03/2003, 12:03
 
Fecha de Ingreso: diciembre-2002
Ubicación: Aquí
Mensajes: 192
Antigüedad: 21 años, 4 meses
Puntos: 0
Si eso no era, intenta asi:


$consulta = "SELECT * FROM comercials WHERE `cTitle` = '$title'";
$result = mysql_query($consulta);
$rows = mysql_num_rows($result);

y a partir de eso, sigues con tu lógica
__________________
Nugar
  #8 (permalink)  
Antiguo 29/03/2003, 12:26
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
gracias ppor ese error en el where, era una falta de ortografia.

pero ahora lo tengo

$consulta = "SELECT * FROM comercials WHERE `cTitle` = '$title'";
$result = mysql_query($consulta);
$rows = mysql_num_rows($result);
if (mysql_num_rows($result,0) > 0){

//if (!$result){

echo "that Comercial Name (".$title.")is taken -go back and chose another one.";
echo $checkcTitle;
}else{


y me da error:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /bdb3.php on line 83

Warning: Wrong parameter count for mysql_num_rows() in bdb3.php on line 84

esas lkineas son:

$rows = mysql_num_rows($result);
if (mysql_num_rows($result,0) > 0){

tonces????????
  #9 (permalink)  
Antiguo 29/03/2003, 12:52
 
Fecha de Ingreso: diciembre-2002
Ubicación: Aquí
Mensajes: 192
Antigüedad: 21 años, 4 meses
Puntos: 0
Mientras aparece alguien que sepa mas PHP que yo, dale un echo a $consulta, $result y $rows a ver que te dicen?

También construye tu lógica utilizando $rows

if ($rows > 0)

Porque ya el valor de $rows debe ser la cantidad de filas que tienes que contienen $title, si es mayor que 0 ya está tomado el nombre.

¿Cual es exactamente la linea 83?
__________________
Nugar
  #10 (permalink)  
Antiguo 29/03/2003, 15:28
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El problema es que la consulta provoca un error en MySQL. Casi todas las funciones de MySQL devuelven false en caso de error. Y para ver el mensaje de error existe la funcion mysql_error(). COn todo esto puedes hacer:
Código PHP:
$result mysql_query($consulta) or die(mysql_error()); 
Asi te mostrara el mensaje de error.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 16:13.