Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2012, 16:48
ra120354
 
Fecha de Ingreso: febrero-2012
Ubicación: N/A
Mensajes: 54
Antigüedad: 12 años, 3 meses
Puntos: 0
Lo que selecciono de un select a una variable

Bueno amigos espero que esta vez no me equivocare de foro al hacer mi pregunta, si es así que alguien lo mueva o me diga como hacerlo.

Vereis en este código lo que hago es seleccionar unos registros de una base de datos que tiene 2 tablas "countries y letrasgrupo"
la primera tabla tiene 2 campos un campo "id_grupo" y otro "country"
la segunda tabla tiene 2 campos un campo "id" y otro"letra"

He puesto un campo de texto para buscar y funciona bien, utilizo para ello la variable $criterio y he puesto un select que relleno con los datos del campo "letra" de la tabla "letrasgrupo", tambien se rellena correctamente.
Por supuesto los campos que tengo que relacionar entre ambas tablas son "countries.id_grupo y letragrupos.id

Bueno mi problema es que tal como tengo la consulta de momento hecha (Porque no puedo ni debo eliminar la parte de SQL_CALC_FOUND_ROWS ni tocar la parte del LIMIT)debo de poner en la misma, esa relación y lo segundo es que segun la letra que seleccione en el select debe de coger el "id" correspondiente de la misma tabla y dejarlo en una variable ya que lo necesito para añadirlo a esa misma consulta y me presente los registros que cumplen las 2 condiciones la que puesto en el campo de texto mas la letra correspondiente que he seleccionado en el select, quiero recordar que cuando selecciono una letra en realidad estoy seleccionando el numero que tiene asociado esa letra en el campo "id" de la misma tabla.

Chic@s acudo a vosotros por que no se como hacerlo he probado de todo a ver si lo conseguia pero ni por esas a ver si me podeis ayudar

Gracias a tod@s, un saludo.


Código PHP:
meta http-equiv="content-type" content="text/html;charset=UTF-8">
</head>
<?php
$conexion 
mysql_connect('localhost''root''');
mysql_select_db('PruebaBusqueda');
?>
        
        
   <form name="form1"  action="Prueba.php" method="get"> 
    Criterio de b&uacute;squeda: 
    <input type="text" name="criterio" size="22" maxlength="150">
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    
    <select name="selpoblacion" id="selpoblacion" style class="Guias2">
        <option value="-1" selected>Todas las poblaciones</option>
        
<?php
    $tabletrasgrupo 
mysql_query("SELECT * FROM letrasgrupo ORDER BY letra ASC"); // Seleccionamos las ciudades de la tabla ciudades
    
while ($registroletra mysql_fetch_array($tabletrasgrupo)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>

<option value="<?php echo $registroletra['Id']; ?>"><?php echo $registroletra['letra']; ?></option>

<?php
    
// termina la zona de repeticion
    
mysql_free_result($tabletrasgrupo); // se libera la memoria usada por la tabla
?>
    </select>
    <input type="submit" value="Buscar"> 
    </form>
  
<?php 
//Aqui defino las variables para los criterios busqueda: ***************        
$criterio = isset($_GET["criterio"])? $_GET["criterio"]: '';
$txt_criterio=isset($_GET["txt_criterio"])? $_GET["txt_criterio"]: '';    

//inicializo el criterio y recibo cualquier cadena que se desee buscar 
$criterio "";
if (isset(
$_GET['criterio'])) {
   
$txt_criterio $_GET["criterio"]; 
    
$criterio " where country like '%" $txt_criterio "%'"
}    

        
// Número de registros que se debe mostrar en una página?
        
$records_per_page 5;

        
// Incluye la clase de paginación
        
require 'Zebra_Pagination.php';

        
// Instancia del objeto paginación
        
$pagination = new Zebra_Pagination();

       
         
// Aqui monto mi consulta a falta de poner lo seleccionado en el select
        
$MySQL 'SELECT SQL_CALC_FOUND_ROWS country FROM countries ' $criterio 'LIMIT ' . (($pagination->get_page()- 1) * $records_per_page) . ', ' $records_per_page '';
    

        
// Si la consulta no puede ser ejecutada
        
if (!($result = @mysql_query($MySQL))) {

            
// Parada de la ejecución y el mensaje de error de visualización
            
die(mysql_error());

        }
    
        
// Recuperar el número total de registros en la tabla
        
$rows mysql_fetch_assoc(mysql_query('SELECT FOUND_ROWS() AS rows'));

        
// Pasar el número total de registros a la clase de paginación
        
$pagination->records($rows['rows']);

        
// Registros por página
        
$pagination->records_per_page($records_per_page);

?>
        <table class="countries" border="1">

            <tr><th>Country</th></tr>

            <?php /*?><?php $index = 0?><?php */?>

            <?php while ($row mysql_fetch_assoc($result)):?>

            <tr<?php /*?><?php echo $index++ % 2 ? ' class="even"' : ''?><?php */?>>
                <td><?php echo $row['country']?></td>
            </tr>

            <?php endwhile?>

        </table>
        
      

<?php


        
        
echo "Número de registros encontrados: " $rows['rows']// Esto luego se puede quitar esta variable es la que cuenta la cantidad de registros encontrada
?>