Foros del Web » Programando para Internet » PHP »

Ayuda con select dinámico (no sé como plantear la implementación)

Estas en el tema de Ayuda con select dinámico (no sé como plantear la implementación) en el foro de PHP en Foros del Web. Hola amigos, zus cuento: tengo un form de modificación de tabla en el que, previa consulta desde la página de presentación de productos, al darle ...
  #1 (permalink)  
Antiguo 28/04/2010, 01:06
Avatar de mahuro  
Fecha de Ingreso: abril-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Ayuda con select dinámico (no sé como plantear la implementación)

Hola amigos, zus cuento:

tengo un form de modificación de tabla en el que, previa consulta desde la página de presentación de productos, al darle a un botón me coge la id del producto, me salta a la página de modificación y ahí busco los datos del producto en cuestión y me los presenta para su modificación.

El problema es que dos de los campos cogen los valores de otras tablas y ahí es dónde tengo el problema.

Esos campos select buscan en las tablas relacionadas todos los valores existentes para que el usuario pueda elegir, pero por defecto me muestran el primer resultado. Si lo pongo para que me muestre el contenido del registro en cuestión, obviamente no me muestran las opciones disponibles.

No sé como plantearlo a nivel estructural y de funcionamiento, espero que me podáis echar una mano.

Aquí el código:

Código PHP:
<?php
$rootLevel 
"../";
$title "Gestión de productos";
$current_page "Gestión";
$specialCSS 'gestion.css';
include (
$rootLevel.'includes/conf.php');
include (
$rootLevel.'includes/headerGest.php');
include (
'db_conector.php');
require(
'db_autorizar.php');

$usa_db "USE $db_database";

// MODIFICAR PRODUCTO
require_once ('db_access_data.php');
// Conectamos con la base de datos
$conexion mysql_connect($db_host$db_user$db_pass);
// Seleccionamos la BD
$db_selected mysql_select_db($db_database$conexion);
if (!
$db_selected) {
    die (
'Error conectando a: ' $db_database mysql_error());
}

mysql_query('SET NAMES utf8');

$id $_REQUEST['id_producto'];

// CONSULTA PRODUCTOS
$consultaProd "SELECT productos.*, categorias.*, tipos.*
    FROM productos
    INNER JOIN categorias ON productos.id_categoria = categorias.id_categoria
    INNER JOIN tipos ON productos.id_tipo = tipos.id_tipo
    WHERE
    productos.id_producto = $id;"
;
$resultadoProd mysql_query($consultaProd);

//Obtiene y muestra los resultados:
$filasProd mysql_fetch_array($resultadoProd);
    if (!
$filasProd) {
        die (
"<p class='NoOK'>Error 1! No hay resultados en productos porque MySQL dice que: " mysql_error()."</p>");
    }

// CONSULTA CATEGORÍA
$consultaCat 'SELECT * FROM categorias;';
$resultadoCat mysql_query($consultaCat);

//Obtiene y muestra los resultados:
$filasCat mysql_fetch_array($resultadoCat);
    if (!
$filasCat) {
        die (
"<p class='NoOK'>Error 2! No hay resultados en categorías porque MySQL dice que: " .mysql_error()."</p>");
    }


// CONSULTA TIPOS
$consultaTipo 'SELECT * FROM tipos;';
$resultadoTipo mysql_query($consultaTipo);

//Obtiene y muestra los resultados:
$filasTipo mysql_fetch_array($resultadoTipo);
    if (!
$filasTipo) {
        die (
"<p class='NoOK'>Error 3! No hay resultados en tipos porque MySQL dice que: " .mysql_error()."</p>");
    }

?>
<form class="form800" name="nuevo" id="inewprod" type="hidden" method="post" action="sql_modificar_producto.php">
    <fieldset>
    <legend><strong>Modificar Producto</strong></legend><br />
    <h3>Atención:<br />
    Debes seleccionar el tipo de plato y la categoría antes de darle al botón "Modificar" porque sobreescribe con los valores por defecto que aparecen en este formulario.</h3>
    <ul>
    <input type="hidden" name="id_producto" value="<?php echo $id ?>" />
    <li>
        <label for="nombre">Nombre</label>
        <input class="itext" type="text" onClick=select() name="nombre" id="nombre" label="Nombre" value="<?php echo $filasProd['nombre'?>">
    </li>
    <li>
        <label for="categoria">Categoria Actual: </label><?php echo $filasProd['categoria']; ?>
        
<!--ESTE ES UNO DE LOS SELECTS DE MARRAS -->
<select class="iselect" name="id_categoria" id="id_categoria">
        <?php while ($filasCat){
            echo (
'<option style="color: red;" class="ioption" value="'$filasCat['id_categoria'] .'">'.$filasCat['categoria'].'</option>');
            
$filasCat mysql_fetch_array($resultadoCat);
            }
        
?>
        </select>
    </li>
    <li>
        <label for="tipo">Tipo Actual: </label><?php echo $filasProd['tipo']; ?>
<!--Y ESTE ES EL OTRO -->
        <select class="iselect" name="id_tipo" id="id_tipo">
        
        <?php while ($filasTipo){
            echo (
'<option style="color: red;" class="ioption" value="'$filasTipo['id_tipo'] .'">'.$filasTipo['tipo'].'</option>');
            
$filasTipo mysql_fetch_array($resultadoTipo);
            }
        
?>
        </select>
    </li>
    <li>
        <label for="precio">Precio</label>
        <input class="itext" type="text" onClick=select() name="precio" id="precio" label="precio" value="<?php echo $filasProd['precio'?>" size="10">
    </li>
    <li>
        <label for="es_menu" class="ilabel">¿Está en el Menú del Día?</label>    
        <input class="iradio" type="checkbox" name="es_menu" id="es_menu" value="Menú del Día" <?php if ($filasProd['es_menu'] == ''){
echo (
'');} else { echo ('checked="checked"');} ?> /><br />
    </li>
    <li>
        <label for="es_especialidad" class="ilabel">¿Es Especialidad de la Casa?</label>
        <input class="iradio" type="checkbox" name="es_especialidad" id="es_especialidad" value="Especialidad" <?php if ($filasProd['es_especialidad'] == ''){ echo ('');} else {echo ('checked="checked"');} ?> /><br />
    </li>
    <li>
        <label for="es_sugerencia" class="ilabel">¿Es Sugerencia?</label>
        <input class="iradio" type="checkbox" name="es_sugerencia" id="es_sugerencia" value="Sugerencia" <?php if ($filasProd['es_sugerencia'] == ''){ echo ('');} else {echo ('checked="checked"');} ?> /><br />
    </li>
    </ul>
    <div class="botones">
        <input class="ibutton" type="submit" name="modificar" value="Modificar">
    </div>
    
    
    </fieldset>
</form>
<?php include ($rootLevel.'includes/footer.php'?>
Como véis, he tenido que meter un echo después del label para que me indique la categoría y tipos que tiene el registro. ¿Se os ocurre alguna manera de hacerlo?

Gracias.

Etiquetas: select
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 13:11.