Segunda duda de PHP

Cuestiones y dudas acerca de lenguajes de programación diversos.

Moderador: Moderadores

Fionn Mac Cumhail
Novat@
Mensajes: 5
Registrado: Jue Jul 28, 2005 9:12 pm

Segunda duda de PHP

Mensaje por Fionn Mac Cumhail » Jue Jul 28, 2005 10:15 pm

Se puede pasar una variable como parte de una query, es decir:

SELECT PAIS from paises WHERE PAIS LIKE '$type%'

Avatar de Usuario
gonzalo_aizpun
Senior
Mensajes: 28
Registrado: Sab May 07, 2005 11:50 pm
Ubicación: Buenos Aires
Contactar:

Mensaje por gonzalo_aizpun » Sab Jul 30, 2005 1:15 pm

Código: Seleccionar todo

   $consulta="SELECT PAIS from paises WHERE PAIS LIKE '$type%'";
   $resultado=mysql_query($consulta,$link); 
Tener en cuenta que lo mas probable que al usar php estes interactuando con una base de datos de mysql que no permite consultas anidadas (digo esto en referencia a tu otro post de las varias tablas). Igual no fuiste muy explícito :roll: ... fijate si podes mejorar tu preguntas!

Saludos,
Gonzalo

Avatar de Usuario
Invitado

Mensaje por Invitado » Mié Ago 03, 2005 7:42 pm

Gracias de antemano, respecto a la otra pregunta, a lo mejor no me explique bien, a ver si ahora me logro explicar.

Es una pagina que va a mostrar una consulta en una tabla (de las de toda la vida del word). La cuestion es que en la tabla se visualiza los datos con un order by. Hasta ahi no he tenido problema
el problema me viene cuando, tengo que mostrar solo los que empiezan con la A, o con la B. Espero que haya quedado clara la situacion. Como podria hacer eso?

Avatar de Usuario
gonzalo_aizpun
Senior
Mensajes: 28
Registrado: Sab May 07, 2005 11:50 pm
Ubicación: Buenos Aires
Contactar:

Mensaje por gonzalo_aizpun » Jue Ago 04, 2005 2:05 am

ok. La consulta debe indicar que solo queres los que empiezan con "A"
Para eso usamos el LIKE

Te paso un ejemplo:

Código: Seleccionar todo

<?php 
   include("conectar.php"); 
   $link=Conectarse(); 
   $resultado=mysql_query("SELECT PAIS from paises WHERE PAIS LIKE 'A%'",$link); 
?> 
   <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1> 
<?php       

   while($row = mysql_fetch_array($result)) { 
      printf("<tr>
      <td>%d</td>
      <td>%s</td>
      <td>%s</td>
      </tr>", $row["id"],$row["campo1"],$row["campo2"]); 
   } 
   mysql_free_result($resultado); 
   mysql_close($link); 
?> 
</table> 
%d = integer
%s = string
%f = float (decimal)

Fionn Mac Cumhail
Novat@
Mensajes: 5
Registrado: Jue Jul 28, 2005 9:12 pm

Mensaje por Fionn Mac Cumhail » Jue Ago 04, 2005 1:39 pm

Vale aun no me explique bien, sorry.

El problema no es ese, el problema es que no solo es por la A, es por todo el abecedario. por eso, mi pregunta es si tengo q hacer una query por cada letra o hay una forma de hacerla general.

opinguino
Moderador
Mensajes: 2429
Registrado: Sab Oct 02, 2004 9:24 pm
Ubicación: españa
Contactar:

Mensaje por opinguino » Jue Ago 04, 2005 3:52 pm

preparate y tomate tu tiempo para hacerlo letra a letra. Si es solo copiar y pegar casi :twisted:

no conozco ningun otro metodo
opinguino

Fionn Mac Cumhail
Novat@
Mensajes: 5
Registrado: Jue Jul 28, 2005 9:12 pm

Mensaje por Fionn Mac Cumhail » Jue Ago 04, 2005 6:51 pm

Muchas gracias por la ayuda :)

A ver si consigo q funcione

Avatar de Usuario
gonzalo_aizpun
Senior
Mensajes: 28
Registrado: Sab May 07, 2005 11:50 pm
Ubicación: Buenos Aires
Contactar:

Mensaje por gonzalo_aizpun » Vie Ago 05, 2005 10:48 pm

Es fácil... no tan fácil como copiar y pegar la sintaxis muchas veces por cada letra, je.-

Pero es verdad, poco código! Limpito! Inteligente!

Vemaos:

Función de String "CHR" -> string chr ( int ascii )
Tabla de Códigos ASCII (google)

Al mirar la tabla, nos damos cuentas que las letras del abecedario minúsculas están correspondidas entre: 97 (a) y 122 (z)

entonces...

Código: Seleccionar todo

for ($ascii = 97; $ascii <= 122; $ascii++) {
   // $consulta = "SELECT PAIS from paises WHERE PAIS LIKE '".chr($ascii)."%'";
  echo "Letra: ".chr($ascii);
}

Salu2,
Gonzalo

Responder