Foros del Web » Programando para Internet » PHP »

Optener un resultado si el campo es repetido o no.

Estas en el tema de Optener un resultado si el campo es repetido o no. en el foro de PHP en Foros del Web. Este problema se basa en lo siguiente: Tengo que obtener unr resultado dependiendo de si el campo está ya lleno con la misma info o ...
  #1 (permalink)  
Antiguo 08/03/2002, 05:50
 
Fecha de Ingreso: enero-2002
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Optener un resultado si el campo es repetido o no.

Este problema se basa en lo siguiente: Tengo que obtener unr resultado dependiendo de si el campo está ya lleno con la misma info o no.
Es decir, mi ejemplo:
Tengo un formulario en el que la gente entra números de dos cifras 01,02,03, etc... y luego se hace una consulta a una base de datos, si el campo es indéntico a la info que envian por formulario, no debe llenarse el nuevo registro (pues no me interesa q este repetido)solo si la info que entraron es difenrente a la que hay en el registro le dejo meterla en la base de datos.
Bueno este es el código que usé a ver que me decís de él pues me da una cosa muy rara solo me funciona cuando meten 02 pero al meter repetidos 01, 03 , 04 ... estos si deja q entren no se porqué. Bueno este es el código:
Código:
 <?php
if ($enviar) {
$db = mysql_connect("localhost", "root","");
mysql_select_db($hospital,$db);
$selecdia="SELECT dia FROM $mes ";
$diabada=mysql_query($selecdia,$db); 
if ($diabada==$dia) { 
echo "<b>ESTE DÍA YA ESTÁ OCUPADO, VAYA A <a href='administra2.php'>2.CORREGIR DATOS DE VISITAS</a><br>PARA HACER MODIFICACIONES DE DATOS YA INTRODUCIDOS.<b>\n";
}
else {
$sql = "INSERT INTO $mes (nombre_1, nombre_2, nombre_3, nombre_4, laboratorio, laboratorio_2, laboratorio_3, laboratorio_4, dia, mes, anyo) ".
"VALUES ('$nombre_1', '$nombre_2', '$nombre_3', '$nombre_4', '$laboratorio', '$laboratorio_2', '$laboratorio_3', '$laboratorio_4', '$dia', '$mes', '$anyo')";
$result = mysql_query($sql);
echo "<b>DATOS AÑADIDOS CORRECTAMENTE.<b>\n"; 
}
}
?>
  #2 (permalink)  
Antiguo 08/03/2002, 06:28
 
Fecha de Ingreso: enero-2002
Mensajes: 75
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Optener un resultado si el campo es repetido o no.

Una pregunta, que es $mes?? El nombre de una tabla¿?¿?

No se si estoy equivocado pero cunado haces un select (igual que con el insert) tendría que ser algo así:

SELECT dia FROM nombre_tabla WHERE mes='$mes'

o tienes una tabla para cada mes???

.-aissen
  #3 (permalink)  
Antiguo 08/03/2002, 07:00
 
Fecha de Ingreso: enero-2002
Mensajes: 110
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Optener un resultado si el campo es repetido o no.

Sí usé una tabla para cada mes. $mes es la tabla.

Ya , ya se la estructura de la base de datos es penosa pero de todas maneras el sentido de esta no afecta a su funcionalidad. Bueno si puedes decirme algo... Encantado. Ah a ver si puedo poneros pronto la web personal de animaciones en 3D en q estoy trabajando. Un saludo gente y gracias aissen por atender a mi llamada :) .

Luis A.
  #4 (permalink)  
Antiguo 08/03/2002, 07:17
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Optener un resultado si el campo es repetido o no.

maya:
El problema está en el query ya que estás trayendo todos los registros de la tabla $mes. Yo te aconsejo reemplazar

$selecdia="SELECT dia FROM $mes ";

por

$selecdia="SELECT dia FROM $mes Where dia = $dia ";

y evaluar en base a mysql_num_rows() cuantas filas recuperó (en tu caso si estás validando la entrada puede ser = 0 con lo cual permitís el ingreso o 1, con lo cual mostrás el mensaje que está ocupado.)
Otra posibilidad, menos costosa, es que en vez de hacer un select dia..., hagas un select count(*)... y con mysql_result evalúes que valor trae pero no tendrías mucha diferencia ya que el metodo anterior traería a lo sumo 1 fila.
Suerte!.

<hr noshade><font face=Verdana size=2>Leonardo D'Angelo - Buenos Aires - Argentina[/CODE]
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 11:20.