Foros del Web » Programando para Internet » PHP »

No puedo resolver formulario en Php y masql

Estas en el tema de No puedo resolver formulario en Php y masql en el foro de PHP en Foros del Web. Hola a todos, ojalá me puedan ayudar y se los agradezco en forma anticipada. He realizado (o lo intento) un buscador que sirve para el ...
  #1 (permalink)  
Antiguo 11/01/2012, 09:19
 
Fecha de Ingreso: enero-2009
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
No puedo resolver formulario en Php y masql

Hola a todos, ojalá me puedan ayudar y se los agradezco en forma anticipada.

He realizado (o lo intento) un buscador que sirve para el control de una biblioteca utilizando Php y no se como resolver lo siguiente:

les copio el codigo
<tr>
<td height="30" align="left" valign="middle" ><strong>Autor:</strong></td>
<td width="236" height="30" align="right" valign="middle" >
<div align="right"><strong>
<select name="selAutor" class="navigation" id="selAutor">
<option value="-1" selected>--------------------------Seleccionar-------------------------</option>
<?php
$tablautores = mysql_query("SELECT * FROM biblioteca ORDER BY autor ASC");

while ($registroautor = mysql_fetch_array($tablautores)) {
?>
<option value="<?php echo $registroautor['codigo']; ?>">
<?php echo $registroautor['autor']; ?>
</option>
<?php
} /
mysql_free_result($tablautores);
?>
</select>
</strong></div></td>
</tr>

Esto da como resultado el despliegue de todos los autores, pero, un autor puede tener mas de un libro, entonces me despliega el nombre de autor tantas veces como libros hay en la Base de Datos.
Lo que no puedo lograr es que apareza una sola vez el nombre, pero al hacer la busqueda despliegue todos los titulos de ese autor.
Nuevamente muchas gracias
  #2 (permalink)  
Antiguo 11/01/2012, 09:51
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: No puedo resolver formulario en Php y masql

Buenas,
La verdad es que no entiendo muy bien que intentas, dado que parece que sólo quieres la lista de los autores, pero sin embargo en la llamada a la base de datos indicas SELECT * FROM... cuando esto significa que te de todos los valores de la tabla ...
Si realmente sólo quieres acceder a los autores, deberías poner algo como SELECT autores FROM .... y si lo que quieres es que no se repitan SELECT DISTINCT autores FROM....
No se... espero que aunque sea te sirva de ayuda.
  #3 (permalink)  
Antiguo 11/01/2012, 10:10
 
Fecha de Ingreso: enero-2009
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: No puedo resolver formulario en Php y masql

Muchisimas gracias por responder. Lo que me decis es perfecto, lo he probado, y me pasa que al elegir uno de los autores me despliega toda la base de datos, indudablemente estoy haciendo algo mal.
Espero no ser muy molesta.
Te escribo todo el codigo.
<div class="contentT">
<form name="form1" method="post" action="">
<table width="450" border="0" align="center" cellpadding="5" cellspacing="5" bordercolor="#000033" bgcolor="#E8ECD1" >
<tr>
<td width="86" height="30" align="left" valign="middle" ><strong>Idioma:</strong></td>
<td width="236" height="30" align="right" valign="middle" >
<div align="right"><strong>
<select name="selIdioma" class="navigation" id="selIdioma">
<option>--------------------------Seleccionar-------------------------</option>
<option value="1">Español</option>
<option value="2">Ingles</option>
<option value="3">Portugues</option>
<option value="4">Turco</option>
<option value="5">Arabe</option>
<option value="6">Ingles-Español</option>
<option value="7">Ingles-Arabe</option>
<option value="8">Español-Arabe</option>

<?php
$tablaidioma = mysql_query("SELECT DISTINCT idioma FROM biblioteca ORDER BY idIdioma ASC");
while ($registroidioma = mysql_fetch_array($tablaidioma)) {
?>
<?php
}
mysql_free_result($tablaidioma);
?>
</select>
</strong></div></td>
</tr>
<tr>
<td height="30" align="left" valign="middle"><strong>Titulo:</strong></td>
<td width="236" height="30" align="right" valign="middle" >
<div align="right"><strong>
<select name="selTitulo" class="navigation" id="selTitulo">
<option value="-1" selected>--------------------------Seleccionar-------------------------</option>
<?php
$tablatitulos = mysql_query("SELECT * FROM biblioteca ORDER BY codigo ASC");

while ($registrotitulo = mysql_fetch_array($tablatitulos)) {
?>
<option value="<?php echo $registrotitulo['codigo']; ?>">
<?php echo $registrotitulo['titulo']; ?>
</option>
<?php
}
mysql_free_result($tablatitulos);
?>
</select>
</strong></div></td>
</tr>

<tr>
<td height="30" align="left" valign="middle" ><strong>Autor:</strong></td>
<td width="236" height="30" align="right" valign="middle" >
<div align="right"><strong>
<select name="selAutor" class="navigation" id="selAutor">
<option value="-1" selected>--------------------------Seleccionar-------------------------</option>
<?php
$tablautores = mysql_query("SELECT DISTINCT autor FROM biblioteca ORDER BY autor ASC");
while ($registroautor = mysql_fetch_array($tablautores)) {
?>
<option value="<?php echo $registroautor['codigo']; ?>">
<?php echo $registroautor['autor']; ?>
</option>
<?php
}
mysql_free_result($tablautores);
?>
</select>
</strong></div></td>
</tr>


<tr>
<td height="30" align="left" valign="middle"><strong>Tema:</strong></td>
<td width="236" height="30" align="right" valign="middle" >
<div align="right"><strong>
<select name="selTema" class="navigation" id="selTema">
<option>--------------------------Seleccionar-------------------------</option>
<option value="1">Coran</option>
<option value="2">Tefsir</option>
<option value="3">Hadices</option>
<option value="4">Vida del Profeta(saws)</option>
<option value="5">Fiqh</option>
<option value="6">Rumi</option>
<option value="7">Yerrahia</option>
<option value="8">Al Ghazzali</option>
<option value="9">Sufismo</option>
<option value="10">Ibn Arabi</option>
<option value="11">Shia</option>
<option value="12">Al Jilani</option>
<option value="13">Misceláneas</option>


<?php
$tablatema = mysql_query("SELECT DISTINCT tema FROM biblioteca ORDER BY idTema ASC");
while ($registrotema = mysql_fetch_array($tablaidioma)) {
?>
<?php
}
mysql_free_result($tablatema);
?>
</select>
</strong></div></td>
</tr>

<tr>
<td align="left" valign="middle">&nbsp;</td>
<td align="right" valign="middle" > <input name="cmdBuscar" type="submit" class="busc Estilo1" id="cmdBuscar" value="BUSCAR" align="right"></td>
</tr>
</table>
<div align="center"></div>
</form>
</div>

Muchísimas gracias
  #4 (permalink)  
Antiguo 11/01/2012, 13:00
 
Fecha de Ingreso: agosto-2011
Ubicación: Viña del Mar, Chile
Mensajes: 311
Antigüedad: 13 años, 2 meses
Puntos: 50
Respuesta: No puedo resolver formulario en Php y masql

Creo que los problemas que tienes son principalmente 2:

- estructuración y organización de tus tablas, (tienes separadas las tablas autor, temas, nacionalidad, etc?, al parecer no, todo viene de una tabla lo que es muy ineficiente ya que un autor lo insertas a la base por cada libro, debes separar tus tablas y luego relacionarlas.
- Proceso de las consultas: Tienes todo dentro de un formuilario para que se filtre de acuerdo a las selecciones previas y que luego supongo con esos datos realice una búsqueda, el problema es que no estás procesando lo enviado, es decir, no hay ninguna sentencia que utilice el método post, y ninguna instrucción para procesar ese formulario.

Te recomiendo partir de cero reestructurando tus tablas.
Saludos
__________________
He aprendido mucho y sigo aprendiendo cada día aquí...así que ayudo cuando puedo para disminuir mi deuda XD..
mi hobby
  #5 (permalink)  
Antiguo 12/01/2012, 10:51
 
Fecha de Ingreso: enero-2009
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: No puedo resolver formulario en Php y masql

Muchas gracias, voy a hacer lo que me indicas.
Y cuento el resultado

Etiquetas: formulario, mysql, registro, resolver, tabla
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 18:49.