08/03/2010, 11:53
|
| | Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 9 meses Puntos: 1 | |
Respuesta: PHP , MySql . Criterios de busqueda.... Ok, gracias por contestar....
Mira he hecho esto ... pero no se... no me da resultados.
Te pongo el Formulario de Busqueda y el de recogida y muestra de datos.
................................................
Busqueda
................................................
<h2 align="center" > INTRODUCIR DATOS </h2>
<form name="busqueda" action="mostrarPedido.php" method="post"><br />
<fieldset>
<p> </p>
<p align="left" class="Estilo1">Búsqueda por Fecha:</p>
<p align="left">Desde:
<input type="text" name="fechaIni" />
</p>
<p align="left">Hasta:
<input type="text" name="fechaFin" />
</p>
<p align="left" class="Estilo1">Busqueda por nombre Cliente: </p>
<p align="left">Desde:
<input type="text" name="nombreIni" />
</p>
<p align="left">Hasta:
<input type="text" name="nombreFin" />
</p>
<?php
$id_conex=@mysql_connect('localhost','AluM2','AluM 2');
if (!$id_conex) die ('Imposible conectar con el motor de BD. Proceso interrumpido');
if (!mysql_select_db('php05',$id_conex)) die ('Imposible seleccionar la BD. Proceso interrumpido');
$id_resultado=mysql_query('SELECT distinct cod_ord FROM ordenes');
if ($id_resultado==false) errorBD($id_conex);
mysql_free_result($id_resultado);
mysql_close($id_conex);
?>
<strong>Ordenación por:</strong><p><input name='orden' type="radio" value="codigo" checked="checked">Código de Pedido</input></p>
<p><input name='orden' type="radio" value="nombre">Nombre del Cliente</input></p>
<p><input name='orden' type="radio" value="fecha">Fecha del Pedido</input></p>
<input type=submit value="Realizar Consulta">
</form>
.................................................. .......
PHP
.................................................. ........
<?php
function errorBD($id_conex) {
echo "<p>Error nº ".mysql_errno($id_conex)."en BD:".mysql_error($id_conex)."</p>";
echo "<p>Proceso interrumpido</p>";
exit;
}
function filtraEHP($valor,$tipo) { //filtra escapado automático, HTML y PHP
$valor=trim($valor);
if (get_magic_quotes_gpc()) $valor=stripslashes($valor);
$valor=strip_tags($valor);
switch ($tipo) {
case 1: {$valor=intval($valor);break;} //entero
case 2: {$valor=floatval($valor);break;} //flotante
//case 3: {$valor=htmlentities(strval($valor));break;} //cadena
// con mysql_real ... evito errores y ataques de inyección de código
case 3: {$valor=mysql_real_escape_string(htmlentities(strv al($valor)));break;} //cadena
case 4: {//fecha en formato ddSmmSaaaa donde S es cualquier
$valor=str_pad($valor,10); //devuelve la fecha en $valor=substr($valor,6,4).substr($valor,3,2).subst r($valor,0,2);}
default: ;
}
return $valor;
}
?>
<body>
<div class="iframe">
<div id="bloque">
<h1>BUSQUEDA DE PEDIDOS</h1>
<h2 align="center" > INTRODUCIR DATOS </h2>
<?php
$id_conex=@mysql_connect('localhost','AluM2','AluM 2');
if (!$id_conex) die ('Imposible conectar con el motor de BD. Proceso interrumpido');
if (!mysql_select_db('php05',$id_conex)) die ('Lo sentimos. Imposible seleccionar la BD. Proceso interrumpido');
$fechaIni= $_POST['fechaIni'] ;
$fechaFin= $_POST['fechaFin'] ;
$nombreIni= $_POST['nombreIni'] ;
$nombreFin= $_POST['nombreFin'];
$orden=isset($_POST['orden'])?$_POST['orden']:'fecha'; //El orden por defecto es la fecha.
$fechaIni=($fechaIni)?$fechaIni:'2006-03-06 10:32:00'; // Suponiendo que la empresa o el comienzo de la realizacion de pedidos comienza en esta fecha.
$fechaFin=($fechaFin)?$fechaFin:'2100-12-31 00:00:00';
$nombreIni=($nombreIni)?$nombreIni:'A';
$nombreFin=($nombreFin)?$nombreFin:str_pad('',35,' Z');
//Construcción de la parte ORDER BY
switch ($orden){
case 'codigo': {$ordenA=" ORDER BY o.cod_ord";break;} // MIRATE ESTO MIRATELO.
case 'nombre': {$ordenA=" ORDER BY o.nom_cli, o.fechaHora";break;}
case 'fecha': {$ordenA=" ORDER BY o.fechaHora, o.nom_cli";break;}
default: {$orden=' ORDER BY o.fechaHora';}
}
//Construcción de la SELECT
$cons="SELECT o.cod_ord, o.fechaHora, o.nom_cli, o.direc_cli, o.total_br, o.total_or ";
$cons.="FROM ordenes o;";
$cons.=" WHERE (o.fechaHora BETWEEN '".$fechaIni."' AND '".$fechaFin."' AND o.nom_cli BETWEEN '".$nombreIni."' AND '".$nombreFin."')";
$cons.=(' '.$ordenA);
echo $cons;
$id_result=mysql_query($cons,$id_conex);
echo $id_result;
if (mysql_num_rows($id_result)==0) echo '<p><strong>Ningún alumno cumple los criterios indicados.</strong></p>';
$ncr=mysql_num_fields($id_result);// Número de campos
if (mysql_num_rows==0)
mysql_free_result($id_result);
mysql_close($id_conex);
?> |