Comunidad de diseño web y desarrollo en internet online

Como hago consultas por iniciales?

Citar            
MensajeEscrito el 17 Feb 2008 07:38 pm
Como hago una consultas para buscar por iniciales de este codigo?

Código :

 SELECT *
FROM `cliente`
LIMIT 0 , 30 


para que me muestre los que empiezan por a,b, c.....

Gracias!

Por oldie

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2008 07:52 pm

Código :

Select * from cliente where nombre like 'a%' limit 0,30


Sustituye "nombre" por el campo que quieras.

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 17 Feb 2008 08:37 pm
muchas gracias!!

Por oldie

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Feb 2008 08:09 pm
Ahora me encuentro con el siguiente problema...

Necesito hacer enlaces con: A | B | C.... y al pulsar sobre la letra me muestre los clientes por la inicial pulsada.

Como lo podría hacer con una variable sin tener que construir las 28 letras del abecedario?

Tendría una pagina que seria clientes.php y me enlazara a la variable clientes.php?nombre=a

Por oldie

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Feb 2008 09:03 pm
pues usa un arreglo:

Código :

$letras = array("A", "B", "C", "D", ... , "Y", "Z");
for($i = 0; $i < count($letras); $i++) {
    echo "<a href='clientes.php?nombre=$i>" . $letras[$i] . "</a> | ";
}

y ya en la consulta, usas la variable del arreglo y la que recuperas del GET

Código :

$l = $_GET['nombre'];
$SQL = "Select * from cliente where nombre like '" . $letras[$l] . "%' limit 0,30";

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 19 Feb 2008 03:43 pm
Muchas gracias otra vez master!
Pero en el código que me muestras me coge números en vez de letras...
me da clientes.php?nombre=1, 2, 3... en los enlaces

Por oldie

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Feb 2008 04:00 pm
si, por eso tienes que usar el arreglo que te puse ($letras) y el número que recuperas, es el indice de la letra que vas a usar

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 19 Feb 2008 04:06 pm
ya pero luego al hacer la consulta en la BD no me devuelve las iniciales... me devuelve una consulta normal de Select * from cliente...

Donde puede estar el error?

Por oldie

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Feb 2008 04:09 pm
pon el código que estas usando

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 19 Feb 2008 04:13 pm
Index.php el que contiene la llamada...

Código :

<?php
$letras = array( "A", "B", "C", "D" , "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "Ñ", "O", "P", "Q", "R", "S", "T", "U", "W", "X", "Y", "Z");
for($i = 0; $i < count($letras); $i++) {
    echo "<a href='clientes.php?nombre=$i'>" . $letras[$i] . "</a> | " ;
}

?>


y en clientes.php

Código :



$link = mysql_connect("localhost", "", "");

mysql_select_db("perfectline", $link);
$estado = 0;

$nombre = $_GET['nombre'];
$result = mysql_query("Select * from cliente where nombreComercial like '" . $letras[$nombre] . "%' limit 0,30" , $link);

if ($row = mysql_fetch_array($result)){

Por oldie

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Feb 2008 04:20 pm
te falta poner el arreglo de index.php en clientes.php

Código :

$link = mysql_connect("localhost", "", "");

mysql_select_db("perfectline", $link);
$estado = 0;

/*** ARREGLO DE LETRAS ***/
$letras = array( "A", "B", "C", "D" , "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "Ñ", "O", "P", "Q", "R", "S", "T", "U", "W", "X", "Y", "Z");

$nombre = $_GET['nombre'];
$result = mysql_query("Select * from cliente where nombreComercial like '" . $letras[$nombre] . "%' limit 0,30" , $link);

if ($row = mysql_fetch_array($result)){

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 19 Feb 2008 05:05 pm
master mil gracias tio! se agradece dar con gente como tu!

Por oldie

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Feb 2008 07:52 pm
Otra duda, ya se que soy un pesao...

Ahora a esos datos que me devuelve la inicial segun la tabla "nombreComercial" le he añadido un select para hacer la busqueda por el nombre o por la localidad.

index.php

Código :

<form action="clientes.php" method="post">
    <strong>Elige Tipo de Búsqueda:</strong>
    <select name="campo">
      <option value="nombreComercial">Nombre
      <option value="localidad">Ciudad
    </select>
  </form>


y en clientes.php

Código :

$result = mysql_query("Select * from cliente where " . $campo . "  like '" . $letras[$nombre] . "%' ORDER BY localidad " , $link);



donde tengo el error para que me recoga los datos del select del formulario?

Por oldie

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Feb 2008 08:05 pm
mmm, creo que tendrías que meter las letras a un combo y entonces si que seleccione la letra que quiere con el tipo de búsqueda

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 19 Feb 2008 08:34 pm
y mostrándolas todas así como están, no podría hacerse? es que un combo es muy lioso para mi madre....

Por oldie

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Feb 2013 11:52 pm
Hola estoy intentando hacer una pagina que me seleccione los nombres por iniciales y me los cargue en una sola y he visto este post y aunque he copiado los códigos que aquí ponéis no consigo que me funcione por lo que deduzco que me faltara algún dato y es por ello que rogaría publicarais el codigo completo haber si asi la consigo hacer funcionar porque por mas que busco todavia no he conseguido encontrar ningun codigo para que me carguen las paginas en una sola.
Dandoos las gracias por adelantado quedo a la espera de vuestras noticias.

Por ultimsgats

3 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 22 Feb 2013 01:15 am
el codigo es segun tu tabla MYSQL, solo tienes q adaptar el campo y el nombre de la tabla, pero que es lo que tenes hecho hasta ahora??

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Feb 2013 08:30 am
Hola como comentaba anteriormente estoi utilizando el codigo puesto en este post salvo la parte que me imprime los resultados, que posiblemente aqui es donde este el fallo. Por el momento lo unico que he conseguido es que se visualicen todos los nombres de la tabla pero al pinchar en las iniciales sale en el navegador el numero correspondiente a esa inicial pero sigo viendo todos los nombres en vez de los correspondientes a esa inicial.
Salu2.........................................

Por ultimsgats

3 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 22 Feb 2013 03:50 pm
¿puedes poner parte del código donde realizas la consulta para ver en que puede estar fallando?

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

safari
Citar            
MensajeEscrito el 22 Feb 2013 11:39 pm
En primer lugar gracias por la atencion y en segundo aqui va el codigo:
<?php
$link = mysql_connect("localhost", " ", " ");
mysql_select_db(" ", $link);

$l = $_GET['nombre1'];
$result = mysql_query("SELECT nombre FROM nuke_libros_autores where nombre like '" . $letras[$nombre] . "%' ORDER BY nombre" , $link);

if ($row = mysql_fetch_array($result)){


$letras = array( "A", "B", "C", "D" , "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "&Ntilde;", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
for($i = 0; $i < count($letras); $i++) {
echo "<a href='listado.php?nombre=$i'>" . $letras[$i] . "</a> | " ;
}

echo" <br>";
echo "<table border = '1'> \n";
echo "<tr><td>Autores</td></tr> \n";
do {
echo "<tr><td>".$row["nombre"]."</td></tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>

Al hacer click sobre la letra sale listado.php?nombre=NUMERO DE LETRA pero no me imprime nada.
Una vez mas doi las gracias por adelantado.
Salu2..................

Por ultimsgats

3 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 23 Feb 2013 08:45 pm
Hola de nuevo.

Código :

<?php 
$link = mysql_connect("localhost", " ", " "); 
mysql_select_db(" ", $link);

$letras = array( "A", "B", "C", "D" , "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "&Ntilde;", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
for($i = 0; $i < count($letras); $i++) {
echo "<a href='listado.php?nombre=$i'>" . $letras[$i] . "</a> | " ;
}

$l = $_GET['nombre1'];
$result = mysql_query("SELECT nombre FROM nuke_libros_autores where nombre like '" . $letras[$nombre] . "%' ORDER BY nombre" , $link); 
if ($row = mysql_fetch_array($result)){ 
echo" <br>";
echo "<table border = '1'> \n"; 
echo "<tr><td>Autores</td></tr> \n"; 
do { 
echo "<tr><td>" .$_GET['nombre'] ." </td></tr> \n"; 
} while ($row = mysql_fetch_array($result)); 
echo "</table> \n"; 
} else { 
echo "¡ No se ha encontrado ningún registro !"; 
} 
?>

Con el cambio efectuado consigo que me salga en la tabla el numero correspondiente a la inicial pinchada con sus registros correspondientes pero no los nombres ¿donde esta el fallo?
Salu2............... y gracias

Por ultimsgats

3 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 28 Feb 2013 12:03 pm
Hola amigos. Ya he solucionado el tema con el siguiente codigo por si alguien mas quiere utilizarlo:

Código :

<?php 
if (!isset(S_GET['nombre'])
{
  $letras = array( "A", "B", "C", "D" , "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "&Ntilde;", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
  for($i = 0; $i < count($letras); $i++) {
    echo "<a href='listado.php?nombre='$letras[$i]'>" . $letras[$i] . "</a> | " ;
  }
}

else

{
  $link = mysql_connect("localhost", " ", " "); 
  mysql_select_db(" ", $link);
  $letra = $_GET['nombre'];
  $result = mysql_query("SELECT nombre FROM nuke_libros_autores where nombre like '" . $letra . "%' ORDER BY nombre" , $link); 
  if ($row = mysql_fetch_array($result)){ 
    echo" <br>";
    
echo $row[1];
}
?>


Salu2......................

Por ultimsgats

3 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.