Foros del Web » Programando para Internet » PHP »

Error en buscador

Estas en el tema de Error en buscador en el foro de PHP en Foros del Web. Hola, a ver si me pueden ayudar diciendome en que fallo. Estoy realizando un buscador para mi web con base de datos mysql la busqueda ...
  #1 (permalink)  
Antiguo 11/09/2009, 01:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 14 años, 11 meses
Puntos: 0
Error en buscador

Hola, a ver si me pueden ayudar diciendome en que fallo.

Estoy realizando un buscador para mi web con base de datos mysql la busqueda de un producto sería: ´[0] por descripción [1] por código del producto [2] por codigo de barras.
Realiza todo bien el sistema de búsqueda, es decir, se mete a la base de datos y los imprime, el problema es CÓMO.
El primer problema es que me meto a la página donde tengo el formulario de búsqueda me muestra la tabla con sus columnas y los datos de SOLAMENTE ALGUNOS de toda la base de datos, siendo que debería aparecer NADA (no se de donde salen esos datos) y me aparecen en la tabla que les di echo, pero al realizar la búsqueda los resultados que arroja, siendo que son correctos, los tira como texto plano, fuera de la tabla que le dije.
¿me explico bien?

PERDON POR TIRAR TODO EL CÓDIGO, DISCULPEN SI LES MAREA:

Código PHP:
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$currentPage $_SERVER["PHP_SELF"];

$maxRows_articuls 0;
$pageNum_articuls 0;
if (isset(
$_GET['pageNum_articuls'])) {
  
$pageNum_articuls $_GET['pageNum_articuls'];
}
$startRow_articuls $pageNum_articuls $maxRows_articuls;

mysql_select_db($database_wmf$wmf);
$query_articuls "SELECT art.CodArticulo,art.CodBarra,art.Descripcion,art.CodMarca,art.CodFamilia,art.PrecioVenta1,art.PrecioVenta2, sto.Saldo, prov.IdDigProveedor FROM articulo as art, stock as sto, proveedor as prov WHERE art.CodArticulo = sto.CodArticulo AND art.IdProveedor = prov.IdDigProveedor ORDER BY art.CodArticulo";
$query_limit_articuls sprintf("%s LIMIT %d, %d"$query_articuls$startRow_articuls$maxRows_articuls);
$articuls mysql_query($query_limit_articuls$wmf) or die(mysql_error());
$row_articuls mysql_fetch_assoc($articuls);

if (isset(
$_GET['totalRows_articuls'])) {
  
$totalRows_articuls $_GET['totalRows_articuls'];
} else {
  
$all_articuls mysql_query($query_articuls);
  
$totalRows_articuls mysql_num_rows($all_articuls);
}
$totalPages_articuls ceil($totalRows_articuls/$maxRows_articuls)-1;

$queryString_articuls "";
if (!empty(
$_SERVER['QUERY_STRING'])) {
  
$params explode("&"$_SERVER['QUERY_STRING']);
  
$newParams = array();
  foreach (
$params as $param) {
    if (
stristr($param"pageNum_articuls") == false && 
        
stristr($param"totalRows_articuls") == false) {
      
array_push($newParams$param);
    }
  }
  if (
count($newParams) != 0) {
    
$queryString_articuls "&" htmlentities(implode("&"$newParams));
  }
}
$queryString_articuls sprintf("&totalRows_articuls=%d%s"$totalRows_articuls$queryString_articuls);
?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
<link href="estilos.css" rel="stylesheet" type="text/css" />
<link href="../css/tables.css" rel="stylesheet" type="text/css" />
</head>

<body>
<p align="center" class="Estilo1">FICHA RAPIDA DE ARTICULOS PARA VENTA
  <?
$bd_servidor 
"localhost";
$bd_usuario "root";
$bd_contrasenya "drmortis666";
$bd_bdname "wmf";
$bd_tabla "articulo"// Tabla donde se harn las bsquedas
// Conexin y seleccin de la base de datos
$link mysql_connect($bd_servidor,$bd_usuario,$bd_contrasenya);
mysql_select_db($bd_bdname,$link);
////////////////////////////
// Formulario
///////////////////////////

?>
</p>
<center><form name="buscador" method="post" action="ficharapida.php"><br>
Buscar por:
<select name="campo">
<?php
/*
//Con este query obtendremos los campos por los cuales el usuario puede buscar

$result = mysql_query("SHOW FIELDS FROM `$bd_tabla`",$link);
*/
$row[0]="descripcion";
$row[1]="codarticulo";
$row[2]="codbarra";

for (
$s=0$s<3$s++) {

// en $row[0] tenemos el nombre del campo
// de esta manera no necesitamos conocer el nombre de los campos
// por lo que cualquier tabla nos valdr


?>
<option value="<?php echo $row[$s]; ?>"><?php echo $row[$s]; ?></option>
<?php

}


?>
</select>
Palabra(s): <input type="text" name="palabra"><br>
<input type="submit" value="Enviar" name="enviar">
</form>
</p><?

////////////////////////////
// Proceso del Formulario
///////////////////////////

if(isset($_POST['enviar'])) {

// Solo se ejecuta si se ha enviado el formulario

$query "SELECT * from $bd_tabla WHERE `{$_POST['campo']}` LIKE '%{$_POST['palabra']}%'";

$result mysql_query($query,$link);



$found false// Si el query ha devuelto algo pondr a true esta variable

while ($row mysql_fetch_array($result)) {

$found true;

echo 
"<p>";

foreach(
$row as $nombre_campo => $valor_campo) {

// Tenemos que mostrar todos los campos de las filas donde se haya
// encontrado la bsqueda.


if(is_int($nombre_campo)) {

continue; 
//Cuando hacemos mysql_fetch_array, php genera un array
// con todos los valores guardados dos veces, uno con
// ndice numrico y otro con ndice el nombre del campo.
// Solo nos interesa el del nombre del campo.

}

echo 
"<b>".$nombre_campo."</b> : ".$valor_campo."<br>";
}

echo 
"</p>";

}

if(!
$found) {

echo 
"No se encontr la palabra introducida";

}

}
?>
</center>

<table width="1000" border="1" align="center" cellpadding="1" cellspacing="1"><!--DWLayoutTable-->
  <tr>
    <td class="hr">CodArticulo</td>
    <td class="hr">CodBarra</td>
    <td class="hr">Descripcion</td>
    <td class="hr">CodMarca</td>
    <td class="hr">CodFamilia</td>
    <td class="hr">Lista 1</td>
    <td class="hr">Lista 2</td>
    <td class="hr">Saldo</td>
  </tr>
  <?php do { ?>
    <tr>
      <td class="dr"><?php echo $row_articuls['CodArticulo']; ?></td>
      <td class="dr"><?php echo $row_articuls['CodBarra']; ?></td>
      <td class="dr"><?php echo $row_articuls['Descripcion']; ?></td>
      <td class="dr"><?php echo $row_articuls['CodMarca']; ?></td>
      <td class="dr"><?php echo $row_articuls['CodFamilia']; ?></td>
      <td class="dr"><?php echo $row_articuls['PrecioVenta1']; ?></td>
      <td class="dr"><?php echo $row_articuls['PrecioVenta2']; ?></td>
      <td class="dr"><?php echo $row_articuls['Saldo']; ?></td>
    </tr>
    <?php } while ($row_articuls mysql_fetch_assoc($articuls)); ?>
</table>

</body>
</html>
<?php
mysql_free_result
($articuls);

Saludos y muchas gracias de antemano
  #2 (permalink)  
Antiguo 11/09/2009, 01:22
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Error en buscador

Te sugiero que vuelvas a re-plantear el problema, no entendi el problema.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 11/09/2009, 01:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Error en buscador

Si, es un tanto complejo y raro, pero a ver...mmm...imaginemoslo en google...es como si entraras a google.com y ya de partida donde sale el formulario de busqueda te aparezcan resultados de quien sabe donde y en la tabla que le dije que imprimiera los resultados., esa es una. la otra es que en el mismo google le dijimos que imprima de cierta forma los resultados, y no lo está haciendo de esa forma sino tirando texto plano y al final la misma tabla que arrojó al principio que es como debería ir, pero sin los resultados correctos ¿se entiende ahora algo mas?

saludos
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 12:17.