Consulta PHP-MySQL

Hola a todos, En una página tengo un formulario en el que los usuarios pueden introducir una fecha (en formato americano) y, al hacer clic en...

La FAQ Consulta PHP-MySQL tiene

Pertenece a la categoría:

Pregunta
Hola a todos,


En una página tengo un formulario en el que los usuarios pueden introducir una fecha (en formato americano) y, al hacer clic en el botón de enviar, pueden ver todas las entradas de la base de datos que coinciden con esa fecha.


Tengo el formulario, la base de datos, el script PHP pero hay algo que no me funciona. El error de PHP es:


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/home/radiomarina.com/web/intranet/informatius/veure_agenda.php on line 23


Os envío el código del formulario y del script PHP a ver si alguien me puede ayudar porque ya no sé dónde puede estar el error. Muchas gracias de antemano.


Formulario:





<table width="600" height="62" align="center" cellpadding="0" cellspacing="0">



<form action="veure_agenda.php" method="post" name="miForm">



<tr>



<td width="133" height="30" class="tabla1">Data inici:</td>



<td width="358" height="30" class="tabla1"> <input name="data_inici" class="area" size="15"></td>



<tr>



<td height="30" colspan="2" class="tabla1"><input type="submit" name="submit" value="Consultar">



<input type="reset" name="borrar" value="Esborrar"></td>



</form>



</table>





Script PHP:



<?php



if(isset($submit)):



include ("connect.php");



$data_inici = $HTTP_GET_VARS['data_inici'];



$sql = "select * from 'agenda' where data_inici=".$data_inici;



$resultado = mysql_query ($sql);



while ($fila = mysql_fetch_array($resultado)) {



echo '<table width="800" cellpadding="0" cellspacing="0">';



echo ' <tr><td height="15"><span class="titulo">'.$fila["poble"].'</span></td></tr>';



echo ' <tr><td height="10" valign="top"><span class="textimprimir">'.$fila["hora"].'</span> <span class="text2negretaimprimir">'.$fila["titol"].'</span></td></tr>';



echo ' <tr><td><span class="textimprimir">'.$fila["descripcio"].'</span></td></tr>';



echo '<tr><td height="5" valign="top"><font color="#CCCCCC"><strong>........................................................................................................................................................................................................</strong></font></td></tr></table>';



}



endif;



?>



Respuesta de Cristian Avila Montalvo
puedes cambiar estas dos líneas.


$sql = "select * from 'agenda' where data_inici=".$data_inici;

$resultado = mysql_query ($sql);



Por



$sql = "select * from agenda where data_inici='$data_inici';

$resultado = mysql_query ($sql) or die (mysql_error() . "- Query -" . $sql);


Si así te sigue dando error al menos ya tendrás una idea más clara del porqué se produce, y no te olvides a demás tomar los $_POST no los $_GET puesto que el form lo mandas por post.

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios
Fueron enviados 7 comentarios a la faq
4 comentarios no revisados
3 comentarios revisados:
puede ser
18/8/09
tal vez tu consulta quedaria mejor asi y utilizando $_POST

$data_inici = $_POST['data_inici'];

$sql = mysql_result("SELECT * FROM agenda WHERE data_inici='$data_inici' ");

while ($fila = mysql_fetch_array($sql)) {

$data = $fila["nombrecampo"];

echo $data;

}

[CiberWap.Net]
enviando con POST recibiendo co GET
18/8/09
Creo que el error radica ahi, ademas esta usando variables obsoletas: usa $_POST[]
Corrigiendo tu codigo
18/8/09
Quiero resaltar que tu código tiene muchos errores y no soporta estándares de la W3C.
Errores de programación;
1. El formulario lo estas mandando por POST, no por GET
2. Si tu campo (data_inici) es un campo de fecha MySQL, el formato es 'YYYY-MM-DD'.
3. En la consulta debes ponerle comillas, para que lo pueda comparar con la fecha.
4. Usas mysql_fecha_array, pero utilizas la variable como si hubieras usado mysql_fetch_assoc.
5. No tienes ningún protector contra ataques de consulta.
Errores en codigo y estándares de W3C;
1. Metes form dentro de una tabla.
2. Usas tablas para cosas que no son datos tabulares.
3. Usas clases pero sigues definiendo cosas en el tag.
4. Usas etiqueta font.
5. Usas una tabla para cada registro.
6. Quieres usar un dato tabular en otra reprecentacion visual usando tablas.
Como lo haría yo:
Form.html
<form action="veure_agenda.php" method="post" name="miForm">
<label for="data_inici">Fecha:</label> <input id="data_inici" name="data_inici"/>(YYYY-MM-DD)<br />
<button type="submit">Enviar</button> <button type="reset">Limpiar forma</button>
</form>
veure_agenda.php
<?php
if(isset($_POST['$data_inici'])){
include_once("connect.php");
$sql="SELECT * FROM agenda WHERE data_inici='".mysql_real_escape_string($_POST['$data_inici'])."'";
$resultado=mysql_query($sql);
while($fila=mysql_fetch_assoc($resultado)){
?>
<h3><?php print $fila["poble"];?></h3>
<p><span class="textimprimir"><?php print $fila["hora"];?></span> <span class="text2negretaimprimir"><?php print $fila["titol"];?></span><br />
<?php print $fila["descripcio"];?> </p>
<hr />
<?php
}
?>
Espero esto te ayude a que leas y seas mejor programador.

Volver al árbol de categoríasVolver al árbol de categorías
Alojados en el grupo