Foros del Web » Programando para Internet » PHP »

Buscar en Base de Datos

Estas en el tema de Buscar en Base de Datos en el foro de PHP en Foros del Web. Hola Estoy haciendo un buscador para mi base de datos, en la que al momento de ingresar en mi formulario el numero de la orden, ...
  #1 (permalink)  
Antiguo 04/12/2009, 12:43
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Buscar en Base de Datos

Hola

Estoy haciendo un buscador para mi base de datos, en la que al momento de ingresar en mi formulario el numero de la orden, vaya a buscar en mi base de datos en la columna de "numero_orden" y me traiga todos los datos de la fila de esa coincidencia.

Encontré un tutorial, pero este me imprime todos los campos de la tabla, y solo quiero que me muestre el del numero de orden especificado.

Que esta mal?o que hace falta hacer?

Este es el código. de mi archivo buscar.php

Código PHP:
<html >
<
body>
  <
form action="buscar2.php" method="POST">
      <
h3>Search</h3>
    <
div class="required field">
      <
label for="Order Number">Order Number<span><span>The order will be search by order number.</span></span></label>
      <
input class="text" name="buscar" size="30" type="text" />
    </
div>
      <
div class="required field">
        <
label for="Date">Date<span><span>The order will be search by date.</span></span></label>
        <
input class="text"  name="buscar_fecha" size="30" type="text" value="" />
      </
div>
      <
div align="center" class="submit">
        <
input type="submit" value="Search"/>
      </
div>
    </
form>
</
div>
</
center>
</
body>
</
html
y este es el codigo de buscar2.php

Código PHP:
<html>
<body>
<?php
include("../db.php"); // archivo de conexión a base de datos
if (!isset($_POST['buscar'])){
echo 
"Debe especificar una cadena a buscar";
echo 
"<p>Debe especificar una cadena a buscar</p> \n";
echo 
"<p><a href=buscar.php>Volver</p> \n";
echo 
"</html></body> \n";
exit;
}
$sql "SELECT * FROM photo_order WHERE numero_orden LIKE '%$buscar%' ORDER BY numero_orden";
$result mysql_query($sql$db);
if (
$row mysql_fetch_array($result)){
echo 
"<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
mysql_field_seek($result,0);
while (
$field mysql_fetch_field($result)){
echo 
"<td><b>$field->name</b></td> \n";
}
echo 
"</tr> \n"
do {
echo 
"<tr> \n";
echo 
"<td>".$row["numero_orden"]."</td> \n";
echo 
"<td>".$row["cliente_nombre"]."</td> \n";
echo 
"<td>".$row["cliente_domicilio"]."</td> \n";
echo 
"<td>".$row["cliente_cp"]."</td> \n";
echo 
"<td>".$row["cliente_pais"]."</td> \n";
echo 
"<td>".$row["cliente_ciudad"]."</td> \n";
echo 
"<td>".$row["cliente_telefono"]."</td> \n";
echo 
"<td><a href='mailto:".$row["cliente_email"]."'>".$row["cliente_email"]."</a></td></tr> \n";
} while (
$row mysql_fetch_array($result));
echo 
"<p><a href=buscar.php>Volver</p> \n";
echo 
"</table> \n";
} else {
echo 
"<p>¡No se ha encontrado ningún registro!</p>\n";
echo 
"<p><a href=buscar.php>Volver</p> \n";
}
?>
</body>
</html>
  #2 (permalink)  
Antiguo 04/12/2009, 12:47
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Buscar en Base de Datos

Es que si vos queres traer 1 resultado no tenes que poner la sentencia "like" debes usar =
  #3 (permalink)  
Antiguo 04/12/2009, 12:59
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Respuesta: Buscar en Base de Datos

Ya le cambie
LIKE por =

, pero ahora no me muestra nada, le pongo el numero de alguna orden que esta en la base de datos, pero siempre me dice que no se a encontrado ningún registro. por que?
  #4 (permalink)  
Antiguo 04/12/2009, 13:05
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Buscar en Base de Datos

a la variable buscar quitale los %
__________________
Mi Bosque de Sombras Solo Doom Metal!

por favor use esta etiqueta para publicar su código --->[HIGHLIGHT]
  #5 (permalink)  
Antiguo 04/12/2009, 13:10
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Buscar en Base de Datos

Ya lo hice , pero aun así nada.

que mas puedo hacer?
  #6 (permalink)  
Antiguo 04/12/2009, 13:30
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Respuesta: Buscar en Base de Datos

ok creo que ya esta mejor,

me faltaba definir la variable $buscar

quedo asi:

Código PHP:
<html>
<body>
<?php
include("../db.php"); // archivo de conexión a base de datos
if (!isset($_POST['buscar'])){
echo 
"<p>Debe especificar una cadena a buscar</p> \n";
echo 
"<p><a href=buscar.php>Volver</p> \n";
echo 
"</html></body> \n";
exit;
}
$buscar $_POST['buscar'] ;

$sql "SELECT * FROM photo_order WHERE numero_orden = '$buscar' ORDER BY numero_orden";
$result mysql_query($sql$db);
if (
$row mysql_fetch_array($result)){
echo 
"<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
mysql_field_seek($result,0);
while (
$field mysql_fetch_field($result)){
echo 
"<td><b>$field->name</b></td> \n";
}
echo 
"</tr> \n"
do {
echo 
"<tr> \n";
echo 
"<td>".$row["numero_orden"]."</td> \n";
echo 
"<td>".$row["cliente_nombre"]."</td> \n";
echo 
"<td>".$row["cliente_domicilio"]."</td> \n";
echo 
"<td>".$row["cliente_cp"]."</td> \n";
echo 
"<td>".$row["cliente_pais"]."</td> \n";
echo 
"<td>".$row["cliente_ciudad"]."</td> \n";
echo 
"<td>".$row["cliente_telefono"]."</td> \n";
echo 
"<td><a href='mailto:".$row["cliente_email"]."'>".$row["cliente_email"]."</a></td></tr> \n";
} while (
$row mysql_fetch_array($result));
echo 
"<p><a href=buscar.php>Volver</p> \n";
echo 
"</table> \n";
} else {
echo 
"<p>¡No se ha encontrado ningún registro!</p>\n";
echo 
"<p><a href=buscar.php>Volver</p> \n";
}
?>
</body>
</html>

Solo que ahora si dejo el campo de busqueda en blanco, siempre me sale que no se encontro nada, siendo que me tiene que salir que debo especificar una cadena de busqueda.


por que? dondo estoy mal?
  #7 (permalink)  
Antiguo 04/12/2009, 14:23
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Buscar en Base de Datos

Cambia esto:
Código PHP:
} else {
echo 
"<p>¡No se ha encontrado ningún registro!</p>\n";
echo 
"<p><a href=buscar.php>Volver</p> \n";

por esto otro:
Código PHP:
} else {
  if(
$_POST){
    echo 
"<p>¡No se ha encontrado ningún registro!</p>\n";
    echo 
"<p><a href=buscar.php>Volver</p> \n";
  }

  #8 (permalink)  
Antiguo 04/12/2009, 15:43
 
Fecha de Ingreso: diciembre-2007
Ubicación: santo domingo
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Buscar en Base de Datos

no utilise like %% por que si anda buscando las orden numero 3 te va a trael las orden 3,13,30..39,300.399 en fin todas las orden que en su ID tengan un 3 que te recomiendo

$sql = "SELECT * FROM photo_order WHERE numero_orden = '$buscar' ORDER BY numero_orden";

en ves de

$sql = "SELECT * FROM photo_order WHERE numero_orden LIKE '%$buscar%' ORDER BY numero_orden";
  #9 (permalink)  
Antiguo 04/12/2009, 15:47
 
Fecha de Ingreso: diciembre-2007
Ubicación: santo domingo
Mensajes: 12
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Buscar en Base de Datos

te aconsejo que utilise la libreria pdo es mejor y minos codigo puede buscar en google y en php.net
  #10 (permalink)  
Antiguo 04/12/2009, 16:49
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Respuesta: Buscar en Base de Datos

Muchas gracias a todos.

Si me funciono.

asi me quedo el codigo por si a alguien le sirve


Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" media="screen" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="../Imag/favicon.ico">
<title>Photo Adventures - Nueva Orden</title>
</head>
<body>
<center><div align="left" id="photostyle">
<fieldset id="order-information">
  <form action="buscar.php" method="POST">
      <h3>Search</h3>
    <div class="required field">
      <label for="Order Number">Order Number<span><span>The order will be search by order number.</span></span></label>
      <input class="text" name="buscar" size="30" type="text" />
    </div>
      <div align="center" class="submit">
        <input type="submit" size="50px" value="Search Order"/>
      </div>
    </form>  
<?php
include("db.php"); // archivo de conexión a base de datos
if (!isset($_POST['buscar'])){
echo 
"<div class='required field style1'><center><b>Please specify  Order Number</b></center></div> \n";
exit;
}
$buscar2 $_POST['buscar'] ;
$sql "SELECT * FROM photo_order WHERE numero_orden = '$buscar2' ORDER BY numero_orden";
$result mysql_query($sql$db);
if (
$row mysql_fetch_array($result)){
echo 
" \n";
echo 
" \n";
echo 
"</br></br><div class='required field'><h3>Order Number # ".$row["numero_orden"]."</h3></div> \n";
echo 
"<table border = '0'><tr> \n";
echo 
"<td width='50%'> \n";
echo 
"<div class='required field'><label for='Name'>Name: </label>".$row["cliente_nombre"]."</br></div> \n";
echo 
"<div class='required field'><label for='Address'>Address: </label>".$row["cliente_domicilio"]."</br></div> \n";
echo 
"<div class='required field'><label for='Postal Code'>Postal Code: </label>".$row["cliente_cp"]."</br></div> \n";
echo 
"<div class='required field'><label for='Country'>Country: </label>".$row["cliente_pais"]."</br></div> \n";
echo 
"<div class='required field'><label for='City'>City: </label>".$row["cliente_ciudad"]."</br></div> \n";
echo 
"<div class='required field'><label for='Phone Number'>Phone Number: </label>".$row["cliente_telefono"]."</br></div> \n";
echo 
"<div class='required field'><label for='Email'>Email: </label><a href='mailto:".$row["cliente_email"]."'>".$row["cliente_email"]."</a></br></div> \n";
echo 
"</td> \n";
echo 
"<td <td width='50%'> \n";
echo 
"<div class='required field'><label for='Order Date'>Order Date: </label>".$row["orden_fecha"]."</br></div> \n";
echo 
"<div class='required field'><label for='Photographer'>Photographer: </label>".$row["orden_fotografo"]."</br></div> \n";
echo 
"<div class='required field'><label for='Sales Person'>Sales Person: </label>".$row["orden_venta"]."</br></div> \n";
echo 
"<div class='required field'><label for='Hotel'>Hotel: </label>".$row["orden_lugar"]."</br></div> \n";
echo 
"<div class='required field'><label for='Product'>Product: </label>".$row["orden_producto"]."</br></div> \n";
echo 
"<div class='required field'><label for='Size'>Size: </label>".$row["orden_tamano"]."</br></div> \n";
echo 
"<div class='required field'><label for='Shipping'>Shipping: </label>".$row["orden_envio"]."</br></div> \n";
echo 
"</td> \n";
echo 
"</tr><tr>\n";
echo 
"<td colspan='2'> \n";
echo 
"<div class='required field'><label for='Edition Person'>Edition Person: </label>".$row["edicion_nombre"]." - ".$row["edicion_fecha"]."</br></div> \n";
echo 
"<div class='required field'><label for='Person Received Print'>Person Received Print: </label>".$row["impresion_nombre"]." - ".$row["impresion_fecha"]."</br></div> \n";
echo 
"<div class='required field'><label for='Sent Person'>Sent Person: </label>".$row["envio_nombre"]." - ".$row["envio_fecha"]."</br></div> \n";
echo 
"<div class='required field'><label for='Order Tracking Number'>Order Tracking Number: </label>".$row["envio_guia"]."</br></div> \n";
echo 
"</td> \n";
echo 
"</tr></table> \n";
while (
$row mysql_fetch_array($result));
echo 
" \n";
} else {
    echo 
"<div class='required field style1'><center><b>¡ Could not find any Order !</b></center></div>\n";
}
?>
</fieldset>
</div>
</center>
</body>
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 11:29.