Hola a todos:
Hace unos día lance una pregunta a un problemilla que tenía.
Nexus10 y
JMSystem me dieron dos respuestas pero no me sirvieron.
Muy agradecido de todas formas...
La cuestión era la siguiente:
Tengo dos tablas, con los siguientes datos:
portfolioclientes
portfolioclientesid
portfolioclientestitulo
portfolioclientesfoto
portfolioclientestexto
portfolio
portfolioid
portfolioclientesid
portfoliofoto
portfoliotitulo
portfoliotexto
La id de la tabla
portfolioclientes está unida a la tabla
portfolio.
La cosa era tener una lista desplegable en una página donde se mostrarían todos los
portfolioclientestitulo de la tabla
portfolioclientes.
Al seleccionar uno de ellos,
y sin salir de la página, debería de mostrar sus resultados correspondientes de la tabla
portfolio.
Usando un viejo código que tenía de un buscador (que técnicamente hacía algo parecido) he llegado a montar este código:
Código:
<?php
// CONECTANDO CON LA BASE DE DATOS
require_once("../incluye/config.php");
require_once("../incluye/funciones.php");
// CONECTANDO A MYSQL
$cnx = conectar();
// CONSULTANDO PARA CLIENTES DEL PORTFOLIO
$query_portfolioclientes = "SELECT * FROM portfolioclientes ORDER BY portfolioclientestitulo";
$portfolioclientes = mysql_query($query_portfolioclientes, $cnx) or die(mysql_error());
$row_portfolioclientes = mysql_fetch_assoc($portfolioclientes);
$totalRows_portfolioclientes = mysql_num_rows($portfolioclientes);
?>
<form enctype="multipart/form-data" name="form1" method="post" action="">
<tr>
<td colspan="2" class="texto_paginas_formularios2">¡<U>Seleccionar primero un Cliente:</U>!
<select name="portfolioclientesid" id="portfolioclientesid" onChange="submit()" class='texto_buscador'>
<option value="" <?php if (!(strcmp("", $_POST['portfolioclientesid']))){echo "SELECTED";} ?>><?php
$numero_portfolioclientes = mysql_num_rows($portfolioclientes);
?>Hay <?php echo "$numero_portfolioclientes"; ?> Clientes en el Portfolio</option>
<?php
do {
?>
<option value="<?php echo $row_portfolioclientes['portfolioclientesid']?>"<?php if (!(strcmp($row_portfolioclientes['portfolioclientesid'], $_POST['portfolioclientesid']))) {echo "SELECTED";} ?>><?php echo $row_portfolioclientes['portfolioclientestitulo']?></option>
<?php
} while ($row_portfolioclientes = mysql_fetch_assoc($portfolioclientes));
$rows = mysql_num_rows($portfolioclientes);
if($rows > 0) {
mysql_data_seek($portfolioclientes, 0);
$row_portfolioclientes = mysql_fetch_assoc($portfolioclientes);
}
?>
</select></td>
</tr>
</form>
<?php
// SI SE HA SELECCIONADO UN CLIENTE
if (isset($_POST['portfolioclientesid'])) {
$resultado = $_POST['portfolioclientesid'];
}
// CONSULTANDO
$select = "SELECT DISTINCT portfolioid, portfolio.portfolioclientesid, portfoliofoto, portfoliotitulo, portfoliotexto, portfolioclientes.portfolioclientestitulo";
$from = " FROM portfolio, portfolioclientes";
$where = " WHERE portfolioclientes.portfolioclientesid=$resultado ORDER BY portfolioclientes.portfolioclientestitulo";
if ($portfolioclientesid != "") {
// SE HA SELECCIONADO UNA CATEGORIA
$where .= " AND portfolioclientes.portfolioclientesid=portfolio.portfolioclientesid ORDER BY portfolioclientes.portfolioclientestitulo";
}
$bus = mysql_query($select . $from . $where);
//IMPRESION DE LOS DATOS
while ($bu = mysql_fetch_array($bus)){
$portfolioid = $bu["portfolioid"];
$portfoliofoto = $bu["portfoliofoto"];
$portfoliotitulo = $bu["portfoliotitulo"];
$portfoliotexto = $bu["portfoliotexto"];
$portfolioclientestitulo = $bu["portfolioclientestitulo"];
echo "<tr>
<td class='texto_paginas_clientes'>$portfolioclientestitulo</td>
<td class='texto_paginas_clientes2'>$portfoliotitulo</td>
<td rowspan='2' class='boton_paginas'><a href='portfolio_mod.php?portfolioid=$portfolioid' target='_self'><img src='images/editar_texto.png' /></a> <a href='portfolio_modfoto.php?portfolioid=$portfolioid' target='_self'><img src='images/editar_imagen.png' /></a><br><br><a href='portfolio_del.php?portfolioid=$portfolioid' target='_self'><img src='images/eliminar_texto.png' /></a></td>
</tr>
<tr>
<td class='texto_paginas_clientes'><img src='$portfoliofoto' width='100' /></td>
<td class='texto_paginas_clientes2'>$portfoliotexto</td>
</tr>\n";
}
if (!$bus) {
echo "<tr>
<td class='texto_paginas'>No se obtuvieron resultados</td>
</tr>\n";
}
mysql_close($cnx);
?>
Cuando se abre la página, directamente dice que "No se obtuvieron resultados", perteneciente al último TD del código.
Y al seleccionar cualquier nombre de la lista desplegable lo que me hace es: muestra
todos los resultados de la tabla
portfolio pero con el nombre de
portfolioclientestitulo seleccionado.
¿Álguien me podría decir donde está el fallo?... Llevo dos días dándole vueltas y moviendo parte del código, pero no consigo el resultado esperado.
Gracias a todos y siento mucho el chapón que les he metido.
Un saludo:
Javy