Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/03/2010, 11:53
Xulailo
 
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>&nbsp;</p>
<p align="left" class="Estilo1">B&uacute;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&oacute;n por:</strong><p><input name='orden' type="radio" value="codigo" checked="checked">C&oacute;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&uacute;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);

?>