Foros del Web » Programando para Internet » PHP »

Consulta en PHP

Estas en el tema de Consulta en PHP en el foro de PHP en Foros del Web. Hola señores del foro. Tengo un problema con el codigo PHP que no he logrado solucionar y donde requiero de su ayuda. Les agrego el ...
  #1 (permalink)  
Antiguo 03/05/2010, 07:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Consulta en PHP

Hola señores del foro. Tengo un problema con el codigo PHP que no he logrado solucionar y donde requiero de su ayuda. Les agrego el codigo y luego les explico.
Codigo:


<html>
<head>
<title>Busqueda</title>
</head>
<body>

<style type="text/css">
<!--
body {
background-color: #3CF;
background-image: url(imagenes/logo_fondo.jpg);
background-repeat: repeat;
}
-->
</style></head>

<h1>Resultado de Busqueda</h1>
<?php
$camion = Trim(stripslashes($_POST['camion']));
$fecha1 = Trim(stripslashes($_POST['fechaenteraini']));
$fecha2 = Trim(stripslashes($_POST['fechaenterafin']));

if (!$fecha1 || !$fecha2)
{
echo "No has introducido los detalles de la busqueda. Por favor vuelve e inténtalo de nuevo.";
exit;
}

$camion = addslashes($camion);
$fecha1 = addslashes($fecha1);
$fecha2 = addslashes($fecha2);

@ $db = mysql_pconnect("localhost", "root", "zxcv");

if (!$db)
{
echo "Error: No se ha podido conectar a la base de datos. Por favor, prueba de nuevo más tarde.";
exit;
}

mysql_select_db("dimension");
$consulta = "select * from 'carga_combustible' where 'camion' == ".$camion." and 'fecha' >= ".$fecha1." and 'fecha' <= ".$fecha2."";
$resultado = mysql_query($consulta);

$num_resultados = mysql_num_rows($resultado);

echo "<p>Resultados Encontrados: ".$num_resultados."</p>";

for ($i=0; $i <$num_resultados; $i++)
{
$row = mysql_fetch_array($resultado);
echo "<p><strong>".($i+1).". Camión: ";
echo stripslashes($row["camion"]);
echo "</strong><br>Fecha: ";
echo stripslashes($row["fecha"]);
echo "<br>Combustible: ";
echo stripslashes($row["litros"]);
echo "</p>";
}

?>

</body>
</html>


Bueno lo que quiero hacer con el codigo anterior es que haga una consulta en Mysql con los siguientes terminos: NUMERO DE CAMION, FECHA DE INICIO y FECHA DE TERMINO, y como resultado me muestre todos los camiones con su respectiva carga de combustible que esten entre ambas fechas. Favor una ayudita. De ante mano gracias.
  #2 (permalink)  
Antiguo 03/05/2010, 07:59
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Consulta en PHP

Veo que ya tienes los echos y todo, ¿Donde está el problema, la duda, el fallo?

Un saludo
  #3 (permalink)  
Antiguo 03/05/2010, 09:10
 
Fecha de Ingreso: marzo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Consulta en PHP

El problema es que no me arroja resultados. Me sale resultados encontrados "0"
Siendo que en la base de datos si hay datos dentro de esos parametros.
La fecha esta configurada para que llegue de la siguiente forma a la variable:
Ej.: "2010-04-29" (sin comillas). Asi la consulta. Algo no funciona pq me deberia arrojar resultados. De ante mano agradesco la atención.
  #4 (permalink)  
Antiguo 03/05/2010, 09:18
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: Consulta en PHP

porque no haces que arroje los resultados asi:

Código PHP:
Ver original
  1. if (mysql_num_rows($resultado) != 0) {
  2. while ($row = mysql_fetch_array($resultado)) {
  3. echo '<b>Camion:</b> '.'$row['camion']'.'<br />';
  4. echo '<b>Fecha:</b> '.'$row['fecha']'.'<br />';
  5. echo '<b>Combustible:</b> '.'$row['litros']'.'<br />';
  6. }
  7. } else {
  8. echo 'No se encontraron resultados';
  9. }

Saludos
  #5 (permalink)  
Antiguo 03/05/2010, 09:21
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Consulta en PHP

Bueno, voy a tratar varias cosas.

1. Siempre que escribas código, hay un botón en la parte superior, con una hoja y pone PHP, le das a ese botón y podrás escribir el código de una forma mucho más legible para los demás, nos ahorrarás tiempo a todos.

2. La sentencia SQL, he visto que no está bien planteada, en el siguiente punto te comentaré el porque, aquí lo que te quería decir es que cuando trates con MySQL, si pones una sentencia incorrecta PHP no va a decirte que hay un error, es un error con la base de datos MySQL, por lo tanto el error se produce en MySQL y PHP no te avisará de nada al menos que uses la función mysql_error: http://es2.php.net/manual/en/function.mysql-error.php

Código PHP:
$consulta "select * from 'carga_combustible' where 'camion' == ".$camion." and 'fecha' >= ".$fecha1." and 'fecha' <= ".$fecha2."";
if(!
$resultado mysql_query($consulta)) { echo mysql_error($db); } 
3. La sentencia $consulta = "select * from 'carga_combustible' where 'camion' == ".$camion." and 'fecha' >= ".$fecha1." and 'fecha' <= ".$fecha2.""; no es correcta, 'carga_combustible' no debe llevar comillas, 'camion' tampoco, solo los valores de where, camion = '$camion', solo eso debe llevar comillas.

4. Un último fallo que he visto en la sentencia es que pones "==", ese signo existe en PHP, pero no en SQL, por lo tanto no debes usar "==" en sentencias SQL, sino "=" (Sin comillas por supuesto).


Haz los cambios y nos comentas. Un saludo
  #6 (permalink)  
Antiguo 03/05/2010, 09:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: Consulta en PHP

Cita:
Iniciado por hantojan2 Ver Mensaje
Hola señores del foro. Tengo un problema con el codigo PHP que no he logrado solucionar y donde requiero de su ayuda. Les agrego el codigo y luego les explico.
Codigo:


<html>
<head>
<title>Busqueda</title>
</head>
<body>

<style type="text/css">
<!--
body {
background-color: #3CF;
background-image: url(imagenes/logo_fondo.jpg);
background-repeat: repeat;
}
-->
</style></head>

<h1>Resultado de Busqueda</h1>
<?php
$camion = Trim(stripslashes($_POST['camion']));
$fecha1 = Trim(stripslashes($_POST['fechaenteraini']));
$fecha2 = Trim(stripslashes($_POST['fechaenterafin']));

if (!$fecha1 || !$fecha2)
{
echo "No has introducido los detalles de la busqueda. Por favor vuelve e inténtalo de nuevo.";
exit;
}

$camion = addslashes($camion);
$fecha1 = addslashes($fecha1);
$fecha2 = addslashes($fecha2);

@ $db = mysql_pconnect("localhost", "root", "zxcv");

if (!$db)
{
echo "Error: No se ha podido conectar a la base de datos. Por favor, prueba de nuevo más tarde.";
exit;
}

mysql_select_db("dimension");
$consulta = "select * from 'carga_combustible' where 'camion' == ".$camion." and 'fecha' >= ".$fecha1." and 'fecha' <= ".$fecha2."";
$resultado = mysql_query($consulta);

$num_resultados = mysql_num_rows($resultado);

echo "<p>Resultados Encontrados: ".$num_resultados."</p>";

for ($i=0; $i <$num_resultados; $i++)
{
$row = mysql_fetch_array($resultado);
echo "<p><strong>".($i+1).". Camión: ";
echo stripslashes($row["camion"]);
echo "</strong><br>Fecha: ";
echo stripslashes($row["fecha"]);
echo "<br>Combustible: ";
echo stripslashes($row["litros"]);
echo "</p>";
}

?>

</body>
</html>


Bueno lo que quiero hacer con el codigo anterior es que haga una consulta en Mysql con los siguientes terminos: NUMERO DE CAMION, FECHA DE INICIO y FECHA DE TERMINO, y como resultado me muestre todos los camiones con su respectiva carga de combustible que esten entre ambas fechas. Favor una ayudita. De ante mano gracias.

Prueba con este select:

$consulta = "select * from 'carga_combustible' where 'camion' = '".$camion."' and 'fecha' >= '".$fecha1."' and 'fecha' <= '".$fecha2."'";
$resultado = mysql_query($consulta);

Por si no se alcanza a ver puse las comillas simples encerrando los valores que vas a seleccionar
  #7 (permalink)  
Antiguo 03/05/2010, 15:35
 
Fecha de Ingreso: marzo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Consulta en PHP

Gracias, ya lo solucione. De todos modos gracias por la atención.
  #8 (permalink)  
Antiguo 03/05/2010, 15:36
 
Fecha de Ingreso: marzo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Consulta en PHP

Se me olvidaba, este es el codigo que me funciono:

<html>
<head>
<title>Busqueda</title>
</head>
<body>

<style type="text/css">
<!--
body {
background-color: #3CF;
background-image: url(imagenes/logo_fondo.jpg);
background-repeat: repeat;
}
-->
</style>

<h1>Resultado de Busqueda</h1>
<?php
$camion = Trim(stripslashes($_POST['camion']));
$fecha1 = Trim(stripslashes($_POST['fechaenteraini']));
$fecha2 = Trim(stripslashes($_POST['fechaenterafin']));

if (!$fecha1 || !$fecha2)
{
echo "No has introducido los detalles de la busqueda. Por favor vuelve e inténtalo de nuevo.";
exit;
}

$camion = addslashes($camion);
$fecha1 = addslashes($fecha1);
$fecha2 = addslashes($fecha2);

@ $db = mysql_pconnect("localhost", "root", "zxcv");

if (!$db)
{
echo "Error: No se ha podido conectar a la base de datos. Por favor, prueba de nuevo más tarde.";
exit;
}

mysql_select_db("dimension");
$consulta = "select * from carga_combustible where camion like '$camion' and fecha>='$fecha1' and fecha<='$fecha2'";
$resultado = mysql_query($consulta) or die (mysql_error());

$num_resultados = mysql_num_rows($resultado);

echo "<p>Resultados Encontrados: ".$num_resultados."</p>";

for ($i=0; $i <$num_resultados; $i++)
{
$row = mysql_fetch_array($resultado);
echo "<p><strong>".($i+1).". Camión: ";
echo stripslashes($row["camion"]);
echo "</strong><br>Fecha: ";
echo stripslashes($row["fecha"]);
echo "<br>Combustible: ";
echo stripslashes($row["litros"]);
echo "</p>";
}

?>

</body>

Etiquetas: Ninguno
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 06:16.