entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

"if" de un dato existente

Buenas.

Estoy armando un error mediante "if", busco hacer lo siguiente:

Si en la tabla Objetos, columna Nombre existe ya un item/objeto con el mismo nombre claramente mostraré el error. De lo que estoy seguro es que estoy planteando mal la query, ¿cómo podría hacer para hacerla bien y luego más abajo del código yo insertar mi mensaje de error?

$sql = mysql_query("SELECT * FROM objetos WHERE Nombre='".$_POST['NombreObj']."'");
if($existe_obj = mysql_fetch_array($sql))

Gracias.

1 Respuesta

3votos

cobasESP Puntos19650

La linea : "$existe_obj = mysql_fetch_array($sql)" te devuelve el array de datos, y como pones Select *, has recogido todos los datos, entonces $existe_obj será un array, y si nombre esta en la segunda columna debes acceder asi:

$existe_obj = mysql_fetch_array($sql);
if($existe_obj[1] = $_POST['NombreObj'])

o en su defecto.... cambiar la query asi:

$sql = mysql_query("SELECT count(*) as num FROM objetos WHERE Nombre='".$_POST['NombreObj']."'");
$existe_obj = mysql_fetch_object($sql);
if($existe_obj->num > 0){
}

De esta manera, hago que me cuente las filas que trae y me las agrupe llamando a la columna "num", ademas en vez de usar fetch_array, uso fetch_object, y asi puedo referirme a la columna como si fuera un objeto "$existe_obj->num".

Espero que te ayude, saludos.

1voto

Leonardo-Tadei comentado

La lógica que plantea @cobasESP es la que hace falta para resolver tu problema.

Como pequeño aporte, también podrías hacer el SELECT * y luego usar la función mysql_num_rows() para ver cuántas filas devuelve; si devuelve 1, entonces existe, si devuelve 0 entonces no existe.

Saludos!

1voto

erick comentado

Como ultimo dato deves cambiar por msqli o por PDO ya que mysql esta deprecado
y en versiones nuevas pude que ya no funcione tu codigo correctamente

$query = mysqli_query($con, "SELECT * FROM objetos WHERE Nombre='".$_POST['NombreObj']."'");

if(mysqli_num_rows($query) > 0){

echo "Nombre existente";

}else
{
// OTRAS ACCIONES
}

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta