Foros del Web » Programando para Internet » PHP »

Verificar si existe un campo en una tabla

Estas en el tema de Verificar si existe un campo en una tabla en el foro de PHP en Foros del Web. Hola a todos. Estoy aprendiendo php + mysql, poco a poco. Pero ahora mismo tengo un proyecto y necesito vuestra ayuda. Se trata de verificar ...
  #1 (permalink)  
Antiguo 12/09/2005, 06:37
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 4 meses
Puntos: 1
Verificar si existe un campo en una tabla

Hola a todos.

Estoy aprendiendo php + mysql, poco a poco. Pero ahora mismo tengo un proyecto y necesito vuestra ayuda.

Se trata de verificar si una determinada fecha está almacenada en la base de datos. Me explico:

- Ya consigo que desde un formulario se ingresen en la base de datos fechas:
Tabla: disponibilidad, campos: ID,dia,mes,año, (Esto sólo lo puede hacer el administrador)

- Lo que no consigo hacer es comprobar que una determinada fecha, insertada desde otro formulario, está o no en la base de datos.

Así es como lo intento:

FORMULARIO
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>COMPROBACIÓN DE FECHA</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<form method="post" action="comprobar.php">
Comprobar fecha<br><br>
  Día<INPUT NAME="dia" TYPE="TEXT" size="2" maxlength="2">
  Mes<INPUT NAME="mes" TYPE="TEXT" size="2" maxlength="2">
  Año<INPUT NAME="año" TYPE="TEXT" size="2" maxlength="2"> 
  <br>
<INPUT TYPE="submit" NAME="Enviar">

</form>
</head>
Y el comprobar.php

Código:
<?php
// Conectamos con la base
mysql_connect ("localhost", "usuario", "clave");


$result=mysql_db_query("base","select * from disponibilidad");

//realizamos la consulta

$tabla=mysql_fetch_array($result)

if ($tabla["dia"] == $dia) {
	echo "Fecha reservada";
	}
else { 
echo "Fecha disponible";
}
mysql_free_result($result)
?>
Lo intento sólo con día hasta que me funcione. Pero siempre me da error en la línea del if.
Puede que sea un error de sintaxis o que ni siquiera esté bien encaminado.

Lo que quisiera es conseguir un TRUE si en en el campo dia de la tabla disponibilidad existiera algún registro igual al que introduce el usuario

Poco a poco estoy aprendiendo, pero aquí necesito vuestra ayuda porque este proyecto me urge.

Saludos y gracias de antemano
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #2 (permalink)  
Antiguo 12/09/2005, 06:51
 
Fecha de Ingreso: agosto-2005
Mensajes: 143
Antigüedad: 12 años, 3 meses
Puntos: 0
Holas.

Primero. No uses la eñe. Usa la N por ejemplo, en lugar de la Ñ.
Cambia eso en el formulario, en la db, etc.

Código PHP:
<?php
//conectamos con la db
$conec mysql_connect('host''user''pass');
mysql_select_db('db'$conec);

//esto es por un poco de seguridad
$dia addslashes($_POST['dia']);
$mes addslashes($_POST['mes']);
$ano addslashes($_POST['ano']);

//hacemos la consulta
$resp mysql_query("SELECT ID FROM disponibilidad WHERE dia='$dia' AND mes='$mes' AND ano='$ano'"$conec);

//si no hay ninguna coincidencia esta disponible
if(== mysql_num_rows($resp))
    echo 
'La fecha está disponible';
else
    echo 
'Fecha NO disponible';

mysql_free_result($resp);
mysql_close($conec);
?>
Tambien, cuando te de un error y lo pongas en el foro...pon el error tal y como te sale.

Saludos ;)
  #3 (permalink)  
Antiguo 12/09/2005, 11:46
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 4 meses
Puntos: 1
Muchas gracias $thisone ! ! !

Tengo que averiguar un par de procesos más para esta aplicación, ya volveré por aquí cuando me vuelva a atrancar :P

Código:
<?php
$var = "buena gente";
$thisone = $var;
?>
Saludos!!!!!
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #4 (permalink)  
Antiguo 14/09/2005, 11:42
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 4 meses
Puntos: 1
Hola a todos! ! !

Aquí sigo liado dando mis primeros pasos con php-mysql y peleándome con el código

Tengo dos preguntas. Una es cómo hacer para que cuando un registro está almacenado en la base de datos no se pueda insertar otro igual.

Y la duda más importante:

Estoy tratando de conseguir borrar un registro de mi tabla. He visto un post sobre este tema en el foro, pero el código es diferente al mío, a ver qué os parece. Si voy muy mal encaminado empiezo de nuevo, pero si éste puede valer mejor que mejor:

Código PHP:
<?php
mysql_connect 
("localhost""""");

$result=mysql_db_query("tabla","select * from disponibilidad");
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1> 
<TR>
<TD>&nbsp;<B>SALÓN</B></TD> 
<TD>&nbsp;<B>DÍA</B>&nbsp;</TD> 
<TD>&nbsp;<B>MES</B>&nbsp;</TD>
<TD>&nbsp;<B>AÑO</B></TD> 
<TD>&nbsp;<B>BORRAR</B>&nbsp;</TD>
</TR> 

<?php
while ($row=mysql_fetch_array($result)) {

printf("<tr><td>%s</td>
         <td>%d</td>
         <td>%s</td>
         <td>%d</td>
         <td><a href=\"borrado2.php?id=%d\">Borrar</a></td></tr>"
,
         
$row["salon"],
         
$row["dia"],
         
$row["mes"],
         
$row["ano"],
         
$row["ID"]);
}
mysql_free_result($result)
?>
Así envío al archivo borrado2.php la variable $id con el valor del ID del registro seleccionado. Hasta aquí todo perfecto.

borrado2.php
Código PHP:
<?php
$conec 
mysql_connect ("localhost""""");
$tab mysql_select_db ("tabla"$conec);

mysql_db_query("DELETE * FROM disponibilidad ID='$id'"$tab);

echo 
"Registro borrado";

mysql_close($conec);
?>
Me lee el echo, pero el registro no se borra.

Espero la opinión de los maestros
Gracias de antemano
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #5 (permalink)  
Antiguo 14/09/2005, 11:54
 
Fecha de Ingreso: agosto-2005
Mensajes: 143
Antigüedad: 12 años, 3 meses
Puntos: 0
Holas.

Para el primer problema: tienes que usar la funcion mysql_num_rows(). Ésta te devuelve la cantida de coincidencias que hay con la consulta que realizar. Entonces...si es != 0 no puedes volver a insertarlo.

Para la segunda:
Código PHP:
DELETE FROM disponibilidad ID='$id'
//cambialo por:
DELETE FROM tabla WHERE disponibilidad ID='$id' 
Saludos ;)
  #6 (permalink)  
Antiguo 14/09/2005, 11:58
 
Fecha de Ingreso: agosto-2005
Mensajes: 143
Antigüedad: 12 años, 3 meses
Puntos: 0
Otra cosa que no me he fijado:

Usa mysql_select_db() y mysql_query() mejor que mysql_dv_query() que ya es obsoleta.

http://php.grn.es/manual/es/function...-select-db.php
http://php.grn.es/manual/es/function.mysql-query.php

http://php.grn.es/manual/es/function.mysql-db-query.php

Saludos ;)
  #7 (permalink)  
Antiguo 15/09/2005, 02:51
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 4 meses
Puntos: 1
Muchas gracias $thisone. Todavía no he podido ponerme con esto porque tengo otro encargo mucho más urgente. Pero estoy deseando acabarlo para volver a pelearme con el código
Estoy enganchao con esto.

Muchas gracias tio, de verdad

Saludos
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #8 (permalink)  
Antiguo 17/09/2005, 09:36
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 4 meses
Puntos: 1
Pues no sé qué fallará ahora, pero una vez cambiado el scritp:

Código PHP:
<?php
//Conectamos con la base de datos
$conec mysql_connect ("localhost""""");
mysql_select_db ('tabla'$conec);

mysql_query("DELETE FROM tabla WHERE disponibilidad ID='$id'"$conec);

echo 
"Se debería haber borrado";
mysql_close($conec);
?>
No me da ningún error, me imprime el echo, pero el registro no se borra.

__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #9 (permalink)  
Antiguo 17/09/2005, 12:47
 
Fecha de Ingreso: agosto-2005
Mensajes: 143
Antigüedad: 12 años, 3 meses
Puntos: 0
Cambia:
Código PHP:
mysql_query("DELETE FROM tabla WHERE disponibilidad ID='$id'"$conec); 
por:
Código PHP:
$id addslashes($_GET['id']);
mysql_query("DELETE FROM tabla WHERE disponibilidad ID='$id'"$conec); 
  #10 (permalink)  
Antiguo 17/09/2005, 16:10
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 4 meses
Puntos: 1
$thisone, no sé qué podrá ser. He hecho el cambio y sigue todo igual.
Qué raro. El caso es que no me da ningún error. Me lee el echo y todo. Pero el registro no se borra.
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #11 (permalink)  
Antiguo 17/09/2005, 16:46
 
Fecha de Ingreso: agosto-2005
Mensajes: 143
Antigüedad: 12 años, 3 meses
Puntos: 0
jajajajajaj, perdona...que se me fué la olla.

Esto:
Código PHP:
 $id addslashes($_GET['id']);
mysql_query("DELETE FROM tabla WHERE disponibilidad ID='$id'"$conec); 
Por esto:
Código PHP:
 $id addslashes($_GET['id']);
mysql_query("DELETE FROM disponibilidad WHERE ID='$id'"$conec); 
Y tienes que mirar los scripts que te den y no limitarte a copiarlos y ejecutarlos.
  #12 (permalink)  
Antiguo 17/09/2005, 17:24
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 4 meses
Puntos: 1
Ya funciona. Gracias ! ! !

La verdad es que me paro a mirar los scripts, de hecho me he propuesto tan seriamente aprender php que nunca corto y pego. Prefiero escribirlos manualmente para ir acostumbrándome y aprendiendo.
Como apenas acabo de empezar y no conozco muy bien la sintaxis todavía, y siendo un script facilitado por tí. . . pues lo tomé por bueno.


Espero no volver a darte la vara en una temporada (aunque tengo varias cosillas entre manos, jejejeje, ahora que estoy descubriendo php me doy cuenta de la infinidad de cosas que se pueden hacer)

Saludos y muchas gracias de nuevo ! ! !
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #13 (permalink)  
Antiguo 22/09/2005, 06:34
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 4 meses
Puntos: 1
Problema para obtener el ID de un registro determinado

Hola!

De nuevo por aquí con mis problemas con php.

Ahora estoy intentando conseguir modificar registros. El problema que tengo es que no soy capaz de obtener el valor de ID del registro seleccionado.

Me explico:

En la primera página php hago la consulta para que muestre todos los registros:

OPCIÓN A: Usando
Código PHP:
while ($row=mysql_fetch_array($result))
{echo 
'<option>'.$row["salon"].$row["dia"].$row["mes"].$row["ano"];} 
Pero claro, necesito obtener el ID para poder hacer la consulta UPDATE SET WHERE

Utilizando la lógica del HTML debería ser algo así:
Código PHP:
while ($row=mysql_fetch_array($result))
{echo 
'<option value=$row[ID]>'.$row["salon"].$row["dia"].$row["mes"].$row["ano"];} 
Pero no funciona, no me da el valor.

OPCIÓN B: Utilizando una tabla con un check box. Pero tampoco lo consigo
Código PHP:
while ($row=mysql_fetch_array($result)) {

printf("<tr><td>%s</td>
        <td>%d</td>
        <td>%s</td>
        <td>%d</td>
        <td>***como pongo aqui un checkbox?id=%d****></td></tr>"
,$row["salon"],$row["dia"],$row["mes"],$row["ano"],$row["ID"]);

Saludos y gracias de antemano por la ayuda


PD. Sigo necesitando algún buen manual
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #14 (permalink)  
Antiguo 22/09/2005, 12:42
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 4 meses
Puntos: 1
Problema con UPDATE

El problema anterior ya está resuelto. He conseguido la variable ID del registro que quiero modificar y las variables con los nuevos valores.

Me dispongo a actualizar el registro con UPDATE

Código PHP:
<?php
$conec
=mysql_connect("localhost","user","pass");
$db=mysql_select_db("base",$conec);
mysql_query("UPDATE tabla SET campo1='$valor1' campo2='$campo2' WHERE ID='$id'",$conec");
echo "
El registro debería haber sido modificado"; 
?>
He revisado la sintaxis de Update, y no sé qué cuál puede ser el problema.
Espero vuestra colaboración

Saludos!
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #15 (permalink)  
Antiguo 23/09/2005, 03:00
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 4 meses
Puntos: 1
Solucionado

Solucionado

Código PHP:
$conec=mysql_connect("localhost","user","pass");

mysql_select_db("base"$conec);

$sql="UPDATE disponibilidad SET campo1='$valor1',campo2='$valor2',campo3='$valor3',campo4='$valor4' WHERE ID=$idr";
mysql_query($sql,$conec); 
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
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 15:24.