Foros del Web » Programando para Internet » PHP »

registros repetidos..

Estas en el tema de registros repetidos.. en el foro de PHP en Foros del Web. Hola necesito un poco de ayuda...estoy haciendo un sistema de veterinario y tengo el siguiente formulario donde se pueden buscar por el rut, nombre, raza, ...
  #1 (permalink)  
Antiguo 05/11/2009, 19:45
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta registros repetidos..

Hola necesito un poco de ayuda...estoy haciendo un sistema de veterinario y tengo el siguiente formulario donde se pueden buscar por el rut, nombre, raza, especie una mascota al presionar el boton buscar se llenara un combobox con los registros pero no me funciona... no se si esta mal la consulta o que... ojala me puedan ayudar...

Código:
 
<form id="form1" method="post" action="verficha.php">
<table width="361" border="0">
<tr>
<td width="209">Rut Cliente</td>
<td width="142"><label>
<input type="text" name="rutcliente" id="textfield" />
</label></td>
</tr>
<tr>
<td>Nombre Mascota</td>
<td><input type="text" name="nombre" id="textfield2" /></td>
</tr>
<tr>
<td>Raza</td>
<td><input type="text" name="raza" id="textfield3" /></td>
</tr>
<tr>
<td>Especie</td>
<td><input type="text" name="especie" id="textfield4" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><label>
<input type="submit" name="button2" id="button2" value="Buscar" />
</label></td>
</tr>
<tr>
<td>
combobox
Código:
<?php
if ($_POST[button2]) {
    $cliente=$_POST["rutcliente"];
    $raza=$_POST["raza"];
    $especie=$_POST["especie"];
    $nombre=$_POST["nombre"];
    $res = mysql_query ("SELECT * FROM mascota WHERE (CLIENTE_IdCliente = '$cliente') 
   OR NombreMascota like '%$nombre%' OR RAZA_NombreRaza like '%$raza%' OR 
   EspecieMascota like '%$especie%'") or die ("Pregunta Invalida");

    if ($w = mysql_fetch_array($res)){ 
	echo '	<select name= "mascota" style = "width: 190px"> ' ;
	echo $sql;		
	do {
    	       echo '<option value= "'.$w["IdMascota"].'">'.$w["IdMascota"].' --> '.$w["NombreMascota"].' </option>';
				
	} while ($w = mysql_fetch_array($res)); 
	    echo '</select>';
	} 
} else
 echo 'no hay registros';
}
?>
  #2 (permalink)  
Antiguo 05/11/2009, 19:51
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 17 años
Puntos: 30
Respuesta: registros repetidos..

dinos cual es el error moniendo en tu codigo

echo mysql_error();
__________________
...
  #3 (permalink)  
Antiguo 05/11/2009, 19:55
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: registros repetidos..

no arroja error de consulta pero el combo box se llena con todos los registros de la tabla

ejemplo
ingreso en raza = w
y aunque no hay registros que en su raza contengan "w" los muestra igual...
  #4 (permalink)  
Antiguo 05/11/2009, 20:18
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 17 años
Puntos: 30
Respuesta: registros repetidos..

mmm, quizas, bueno es posible que se por que no arroja nada

pon este codigo

$numero_de_datos=mysql_num_rows($res);
if($numero_de_datos>0){
echo 'tiene resultados';
}else{
echo'no tiene resultados';
}
__________________
...
  #5 (permalink)  
Antiguo 05/11/2009, 20:27
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: registros repetidos..

dice que tiene resultados aunque en verdad no los tenga... :(
  #6 (permalink)  
Antiguo 05/11/2009, 20:34
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: registros repetidos..

puse la consulta en el myadmin y dice q esta bien... :( no entiendo nada...
  #7 (permalink)  
Antiguo 05/11/2009, 20:43
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 17 años
Puntos: 30
Respuesta: registros repetidos..

entonces cambia esto:


if ($w = mysql_fetch_array($res)){
echo ' <select name= "mascota" style = "width: 190px"> ' ;
echo $sql;
do {
echo '<option value= "'.$w["IdMascota"].'">'.$w["IdMascota"].' --> '.$w["NombreMascota"].' </option>';

} while ($w = mysql_fetch_array($res));
echo '</select>';
}

por esto:

echo ' <select name= "mascota" style = "width: 190px"> ' ;


while($w = mysql_fetch_array($res)){

echo '<option value= "'.$w["IdMascota"].'">'.$w["IdMascota"].' --> '.$w["NombreMascota"].' </option>';

}

echo '</select>';
__________________
...
  #8 (permalink)  
Antiguo 05/11/2009, 20:56
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: registros repetidos..

me muestra solo el ultimo registro ahora...
  #9 (permalink)  
Antiguo 05/11/2009, 21:01
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 17 años
Puntos: 30
Respuesta: registros repetidos..

$numero_de_datos=mysql_num_rows($res);

echo 'la base de datos arrojo '.$numero_de_datos.' datos';
echo ' <select name= "mascota" style = "width: 190px"> ' ;


while($w = mysql_fetch_array($res)){

echo '<option value= "'.$w["IdMascota"].'">'.$w["IdMascota"].' --> '.$w["NombreMascota"].' </option>';

}

echo '</select>';
__________________
...
  #10 (permalink)  
Antiguo 05/11/2009, 21:07
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: registros repetidos..

no... vuelve a mostrar todo.. :( sera algo relacionado a las areas de texto por que en el phpmyadmin si pongo ejemplo la w no muestra nada ya que no hay registros en la tabla con w... =/
  #11 (permalink)  
Antiguo 05/11/2009, 23:59
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 17 años
Puntos: 30
Respuesta: registros repetidos..

$numero_de_datos=mysql_num_rows($res);

echo 'la base de datos arrojo '.$numero_de_datos.' datos';
echo ' <select name= "mascota" style = "width: 190px"> ' ;

$cuenta=0;
while($w = mysql_fetch_array($res)){
echo 'este es el dato numero:'.$cuenta.'que existe en la base de datos';
echo '<option value= "'.$w["IdMascota"].'">'.$w["IdMascota"].' --> '.$w["NombreMascota"].' </option>';
$cuenta++;
}

echo '</select>';
if($numero_de_datos==$cuenta){
echo 'todo esta perfecto, en la consulta, el problema es que los datos no existen';
}else{
echo 'el problema es de la consulta';
}
__________________
...
  #12 (permalink)  
Antiguo 06/11/2009, 12:36
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: registros repetidos..

si lo pruebo con "q" me dice la base de datos arrojo 2 datos todo esta perfecto, en la consulta, el problema es que los datos no existen...

:(
  #13 (permalink)  
Antiguo 06/11/2009, 14:29
Avatar de jlmoreno31  
Fecha de Ingreso: mayo-2009
Ubicación: Barcelona
Mensajes: 174
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: registros repetidos..

Hola revapax,

Creo que la query no está bien generada.
Cita:
$res = mysql_query ("SELECT * FROM mascota WHERE (CLIENTE_IdCliente = '$cliente')
OR NombreMascota like '%$nombre%' OR RAZA_NombreRaza like '%$raza%' OR
EspecieMascota like '%$especie%'") or die ("Pregunta Invalida");
Estás cogiendo el IdCliente, de la tabla CLIENTE
El NombreMascota de no se sabe que tabla
la NombreRaza de la tabla RAZA y
EspecieMascota de tampoco se sabe que tabla.

No entiendo nada :O) Postea como tienes las tablas y hacemos la query ok?

Un Saludo
  #14 (permalink)  
Antiguo 08/11/2009, 15:25
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: registros repetidos..

esta es la tabla mascota...

IdMascota
RAZA_NombreRaza
EspecieMascota
CLIENTE_IdCliente
NombreMascota
SexoMascota
EdadMascota
FechaIngresoMascota
ColorMascota

lo que deseo hacer es en un formulario recibir uno de los campos por los que quiera hacer la consulta... por eso el like =/ ojala me puedas ayudar....
  #15 (permalink)  
Antiguo 08/11/2009, 16:13
Avatar de jlmoreno31  
Fecha de Ingreso: mayo-2009
Ubicación: Barcelona
Mensajes: 174
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: registros repetidos..

Yo haria la query así:

$res = mysql_query ("SELECT * FROM mascota WHERE CLIENTE_IdCliente = '$cliente'
OR NombreMascota like '%$nombre%' OR RAZA_NombreRaza like '%$raza%' OR
EspecieMascota like '%$especie%' ") or die ("Pregunta Invalida");

Con esta query te buscará en función del campo escogido, los registros que coincidan con el. Pero el problema estará si puede escoger más de un campo para buscar.

Pruebalo y dime. Simplemente le he quitado los paréntesis a CLIENTE_IdCliente
  #16 (permalink)  
Antiguo 08/11/2009, 16:39
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: registros repetidos..

no... sigue mostrando todos los registros...
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 22:09.