consulta con like, no me funciona

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: maiku, akodo

Responder
Avatar de Usuario
nbr_1
Forista Menor
Forista Menor
Mensajes: 53
Registrado: Dom Ene 07, 2007 8:00 am
Ubicación: Cuautla, Morelos

consulta con like, no me funciona

Mensaje por nbr_1 »

Hola, que tal, tengo un pequeño problema el cual no he podido resolver.

Tengo un cuadro de texto, y al escribir un nombre o la inicial del nombre , ejemplo: YARA, o Y, esta hace una consulta a la base de datos y me deberia de motrar, todos aquellos nombre que lleven la Y o YARA, en el MYSQL FRONT, si lo hace con la sentencia:

SELECT * FROM CERTIFICADOS WHERE NOM_ALUM LIKE '%YARA%'

El problema persiste en la programacion, pues no me muestra nada, utilizo lo siguiente:


<?php
include("conec.php"); //LIBRERIA DE CONECCION AL SERVER
$link=Conectarse(); // LLAMADA A FUNCION DE CONECCION A SERVIDOR
$Sql="SELECT * FROM CERTIFICADOS WHERE NOM_ALUM LIKE '$nomb%';";
$result=mysql_query($Sql,$link);
$row = mysql_fetch_assoc($result); //IMPRIMIR EL VALOR DE LOS CAMPOS DE LA TABLA
?>

nomb es el nombre del cuadro de texto,
nom_alum es el campo donde estan los nombres de alumnos

Con estas lineas de codigo, la consulta no funciona, no muestra nada.... PORQUE !!!
Adjunto pantallas.

De antegracias comunidad de programacion PHP... y ojala puedan ayudarme.
Gracias...
Imagen

Imagen

Imagen
Adjuntos
yara.zip
consulta desde el navegador
(479.96 KiB) Descargado 23 veces
Última edición por Deckon el Dom Abr 10, 2011 9:00 pm, editado 1 vez en total.
Razón: Titulo editado por transgredir las normas de escritura
Cualquiera puede hacer un S.O., la pregunta es ¿Por donde Empiezooo?.

Avatar de Usuario
maiku
Moderador
Moderador
Mensajes: 1529
Registrado: Jue Abr 19, 2007 7:00 am
Ubicación: Cojutepeque, El Salvador C. A.

Re: consulta con like, no me funciona

Mensaje por maiku »

hola compañero, talvez la otra porción del código ayudaría a saber cómo se está manipulando el resultado, recuerda que cuando asignas el resultado de la fila en:

Código: Seleccionar todo

 $row = mysql_fetch_assoc($result)
lo haces para una sola, talvez si cambiaras en un bucle

Código: Seleccionar todo

while ( $row = mysql_fetch_assoc($result) )
{
echo ("<p>" . $row["campo1"]." ".$row ["campo2"] ."</p>"); /*ajustar a necesidades*/
}
aunque la verdad no se si en tu código restante ya lo manejas.

Orientanos un poco más si no es el punto.

Saludos =)
Grüße...
Maiku

Full linux alchemist!!!

Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: consulta con like, no me funciona

Mensaje por akodo »

Código: Seleccionar todo

$Sql="SELECT * FROM CERTIFICADOS WHERE NOM_ALUM LIKE '$nomb%';";
Para mí que el problema puede estar ahí. Creo que el $nomb te lo puede estar interpretando como un literal y no como una variable. Prueba poniendo algo concreto para ver si funciona, y luego ya se verá, en caso de que sea por esta razón, cómo solucionarlo.
De ser así, puedes intentar con el siguiente código:

Código: Seleccionar todo

$Sql="SELECT * FROM CERTIFICADOS WHERE NOM_ALUM LIKE '"  .  $nomb  .  "%';";
Simplemente es concatenar el primer literal (hasta las comillas), concatenarlo con el valor de la variable, y luego con el resto.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])

Avatar de Usuario
maiku
Moderador
Moderador
Mensajes: 1529
Registrado: Jue Abr 19, 2007 7:00 am
Ubicación: Cojutepeque, El Salvador C. A.

Re: consulta con like, no me funciona

Mensaje por maiku »

akodo escribió:

Código: Seleccionar todo

$Sql="SELECT * FROM CERTIFICADOS WHERE NOM_ALUM LIKE '"  .  $nomb  .  "%';";
Simplemente es concatenar el primer literal (hasta las comillas), concatenarlo con el valor de la variable, y luego con el resto.
hum, muy cierto puede que busque la variable $nomb%' ( si es que se puede hacer eso O_o )

no se si esta forma funciona igual:

Código: Seleccionar todo

$Sql="SELECT * FROM CERTIFICADOS WHERE NOM_ALUM LIKE '{$nomb}%';";
por otra parte, si vemos la implementación del recorrido del arreglo encontraremos más detalles, no se si peco de ingenuo al decir que el código en primera instancia obtiene la primera fila (mysql_fetch_assoc), no se muestra en pantalla y al seguir recorriendo el arreglo (volviendo a invocar la asignación), ya no encuentra nada al estar vacía (1 fila, 2 asignaciones, prueba ingresando un registro más)
Grüße...
Maiku

Full linux alchemist!!!

Avatar de Usuario
nbr_1
Forista Menor
Forista Menor
Mensajes: 53
Registrado: Dom Ene 07, 2007 8:00 am
Ubicación: Cuautla, Morelos

Re: consulta con like, no me funciona

Mensaje por nbr_1 »

Ok, gracias chavos, lo voy a poner en funcion y ya les comentare lo que me ha estado sucediendo.
Gracias !!!

Editado -- Lun Sep 19, 2011 1:06 pm --

Esta es la solucion: Asi ya funciona a la perfecccion. GRACIAS !!!

<?php
include("conec.php");
$link=Conectarse();

//BUSQUEDA POR NOMBRE DEL ALUMNO
if($tp_busq = 1) {
$Sql="select * from alumnos where nom_alum like '%$nom%' ";

$datosconsulta=mysql_query($Sql);
$a=1;
while($resultado=mysql_fetch_assoc($datosconsulta)){
//aqui genero los links:
?>
<a href='expediente_all.php?nom=<?php echo $resultado['id']; ?>&espe=<?php echo $resultado['especialidad']; ?>&grado=<?php echo $resultado[ 'gdo']; ?>&grupo=<?php echo $resultado['gpo']; ?>'>
<? echo $a ?> <? echo "-"?><? echo " "?><?php echo $resultado['nom_alum']?><? echo " "?><? echo $resultado['ape_pat']?><? echo " "?><? echo $resultado['ape_mat']?><? echo " "?><? echo "="?><? echo " "?><? echo $resultado['especialidad']?><? echo " "?><? echo $resultado['gdo']?><? echo " "?><? echo $resultado['gpo' ]?>
</br>
</br>
</a>
<?php
$a++;
}
}

/// BUSQUEDA POR APELLIDO PATERNO
if($tp_busq = 2) {
$Sql="select * from alumnos where ape_pat like '%$nom%' ";

$datosconsulta=mysql_query($Sql);
$a=1;
while($resultado=mysql_fetch_assoc($datosconsulta)){
//aqui genero los links:
?>
<a href='expediente_all.php?nom=<?php echo $resultado['id']; ?>&espe=<?php echo $resultado['especialidad']; ?>&grado=<?php echo $resultado[ 'gdo']; ?>&grupo=<?php echo $resultado['gpo']; ?>'>
<? echo $a ?> <? echo "-"?><? echo " "?><?php echo $resultado['nom_alum']?><? echo " "?><? echo $resultado['ape_pat']?><? echo " "?><? echo $resultado['ape_mat']?><? echo " "?><? echo "="?><? echo " "?><? echo $resultado['especialidad']?><? echo " "?><? echo $resultado['gdo']?><? echo " "?><? echo $resultado['gpo' ]?>
</br>
</br>
</a>
<?php
$a++;
}
}
?>
Cualquiera puede hacer un S.O., la pregunta es ¿Por donde Empiezooo?.

Avatar de Usuario
maiku
Moderador
Moderador
Mensajes: 1529
Registrado: Jue Abr 19, 2007 7:00 am
Ubicación: Cojutepeque, El Salvador C. A.

Re: consulta con like, no me funciona

Mensaje por maiku »

Gracias compañero por agregar la solución. Le recuerdo que puede editar el título colocándo la leyenda (SOLUCIONADO), además puede colocar código entre etiquetas "code" para mejor lectura.

Nos leemos.
Grüße...
Maiku

Full linux alchemist!!!

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje