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') ?>
Gracias.