Consulta en mysql con php

Experto tengo una duda con un código que tengo en PHP para hacer una consulta en mysql. Pero la instrucción que utilizo en mysql en el script de php solamente me trae los registros salteados, es decir me trae los registros 1,3,5...
Pero lo raro es que yo utilizo la misma instrucción en el promt de mysql y me trae todos los registros. Que puede estar sucediendo, o si deseas y quieres te puedo enviar mi código que lo tengo en dos páginas llamadas index2.php y conectar.php y mi bd mysql llamada ventas a tu correo si gustas y me quieres ayudar, regálame tu correo para enviarte lo anterior
Respuesta
1
Primero tienes que rellenar el combo con los meses mediante html, javascript o php. Tendrás que rellenarlo de forma dinámica para ir adaptando las opciones a la fecha actual. Una vez que tengas el combo, esperas a que seleccione el mes. Lo del código no se a qué te refieres, pero si es algo separado del mes, puedes usar otro combo que también tendrás que rellenar de forma estática o dinámica. Si ese código forma parte del valor del mes no hace falta usar otro combo.
Cuando se haya seleccionado un mes, se realiza la consulta en la base de datos acotando por usuario y mes, y solo queda mostrar todos los resultados obtenidos.
No tengo apenas tiempo para ponerte código por lo que sólo te voy a poner un esquema sin probarlo:
-- Página que muestra el combo
<html> <head> <title> Extractos </title> </head> <body>
<form name='fo' method = 'POST' action='muestra.php'>
<select name='mes'>
Mes:
<?php
$mesActual = date('m');
$mes = array ('enero', 'febrero', 'marzo' 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre' );
for($i = 1; $i++, $i <= 12){
$UnMes = ($mesActual+$i) % 12;
echo "<option value=$UnMes> ". $mes[ $ÜnMes ] . "</option>";
}
?>
</select>
<input type='submit'>
</form>
</body>
</html>
Esta bastante incompleto ese código, pero es un esquema nada más. Lo que hace es definir un array con los nombres de todos los meses, a partir del mes actual va rellenando las opciones del combo. Usa el operador módulo que devuelve el resto de la división entre 12 para que cuando UnMes pase de 12 comience por 1. Por ultimo, cuando se pulsa el botón se envía la opción seleccionada al script muestra.php.
La página muestra.php debe tener una variable que sea el nombre o código del usuario, puede ser una variable de sesión. Es tan sencillo como realizar una consulta:
$consulta = 'SELECT * FROM Extractos WHERE Usuario = {$_SESSION['usuario']} AND Mes = {$_POST['mes']}";
Luego muestras todos los datos que obtengas.
Lo probé y no me funciono. No se que esta pasando. Ayudame con esto
Gracias
Escríbeme aquí el código donde haces la consulta, y las variables que usas, para poder ver que puede estar ocurriendo.
En principio puede ser que uses alguna variable con un valor que no sea el esperado, o quizá el problema esté a la hora de mostrar o de usar los registro. Comprueba esos puntos.
Ya solucione el problema, el cual era un mysql_fetch_array que utilizaba dentro de un while, cual hacia que saltara el registro, es decir ytilizaba dos veces esta instrucción.
Tengo otra duda, como hago yo para hacer un sistema de consulta de extractos de inmuebles de tal manera que usuarios a través de internet puedan consultar sus extractos de los meses anteriores con solamente pulsar en un combox el mes y el código asignados por nosotros y le extraiga la información referente a ese mes.
Gracias
Ya he podido hacer el código más o menos completo aquí te lo pongo:
// PAGINA QUE MUESTRA EL COMBO: combo.php
<html> <head> <title> Extractos </title> </head> <body>
<form name='fo' method = 'POST' action='muestra.php'>
<?php
$mesActual = date('m');
$mes = array ('enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre' );
$anio = array ('2005', '2004', '2003', '2002', '2001', '2000' );
echo "Mes: <select name='mes'> ";
for( $i = 0; $i <= 11; $i ++) {
$UnMes = ($mesActual+$i) % 12;
echo "<option value='{$mes[ $UnMes ]}'> {$mes[ $UnMes ]} </option>";
}
echo "</select>";
echo "Año: <select name='anio'> ";
for( $i = 0; $i <= 5; $i++ ){
echo "<option value='{$anio[$i]}'> {$anio[ $i ]} </option>";
}
echo "</select>";
?>
<input type='submit' value='Enviar' name='Enviar'>
</form>
</body>
</html>
// PAGINA QUE MUESTRA LOS DATOS DE UN EXTRACTO: muestra.php
<?php
if ( !isset($_POST['mes']) OR !isset($_POST['anio']) ) {
header("Location: combo.php");
} else {
$mes = $_POST['mes'];
$anio = $_POST['anio'];
$id = mysql_connect("localhost", "", "");
mysql_select_db("BaseDatos", $id);
$consulta = "SELECT * FROM Tabla_Extractos WHERE mes = $mes AND anio = $anio";
$datos = mysql_query($consulta, $id);
while( $extracto = mysql_fetch_array($datos) ) {
echo $extracto['campo1'] ." ". $extracto['campo2']; // ...
}
}
?>
Ya solo faltaría gestionar el usuario y la variable del usuario. No se si lo tienes mediante sesiones.
Pruébalo y me comentas.
Señor
necesito que me digas como funciona esto de $_SERVER['PHP_SELF']
sanew
$_SERVER es un array que contiene información de cabeceras, rutas, etc. Entre las variables que tiene está PHP_SELF que devuelve la ruta y nombre del script que se está ejecutando.
Por ejemplo, si tienes un script llamado miPagina.php que está en http://localhost/ejemplos, y el código que tiene es:
<?php
echo $_SERVER['PHP_SELF'];
?>
cuando lo ejecutes en el navegador, te va a mostrar lo siguiente:
/ejemplos/miPagina.php

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas