FORMULARIO PHP ayuda!

Buen día mis estimados, Necesito de su amable y puntual ayuda con el siguiente tema:
Estoy haciendo un buscador en PHP.
El cual verifica o busca dentro de un documento TXT, ha funcionado y ya he efectuado pruebas, solamente deseo de su ayuda en lo siguiente:
En el documento .TXT donde busco hay muchas variables las cuales la mayoría son de 4 caracteres, bien si configuro el archivo PHP que busque en los promeros 4 espacios me imprime los resultados perfecto al buscar un código de 4 dígitos pero por ejemplo ingreso la búsqueda del código 67 me dice que no ha encontrado nada.
Deseo que me corrijan el código para que la búsqueda sea desde el primer dígito hasta el sexto pero que la busqeda sea exacta ya que si busco el 286 no me salga más nada que el 286.
El sistema cuenta con 3 archivos:
DATA.TXT
PGUNO.HTML
PGDOS.PHP
(De antemano agradezco su amable atención y me despido cordialmente)
********************************************
DATA.TXT
********************************************
Código tipo costo
30101 Canal 30 16.84
2865 Canal 11 16.83
286 Canal 11 16.84
67 Canal 66 16.84
********************************************
PGUNO.HTML
********************************************
<HTML>
<HEAD>
<TITLE> Consulta </TITLE>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="pgdos.php">
CODIGO:<br>
<INPUT TYPE="text" NAME="codigo" size="6" maxlength="6"> <br>
<INPUT TYPE="submit" value="Enviar" name="Enviar">
</FORM>
</BODY>
********************************************
PGDOS.PHP
********************************************
<?php
$i=0;
if((!empty($_POST['codigo']))|| isset($_POST['codigo'])){
$file = fopen ("data.txt", "r");
$v=0;
while (!feof($file)) {
$linea = fgets($file,41);
$cadena[$v]=$linea;
$v++;
}
fclose ($file);
foreach($cadena as $pasar)
{
if($_POST['codigo']==substr($pasar,0,4))
{
echo "<br>";
echo "Marcación : ".substr($pasar,0,6);
echo "<br>";
echo "Agregador : ".substr($pasar,7,25);
echo "<br>";
echo "Costo : ".substr($pasar,30,37);
echo "<br>";
echo '<A HREF="pguno.html">Anterior</A>';
$i=1;
}
}
}
if($i=='0')
{
echo "Su Nro de CODIGO no fué encontrado ....";
echo "<br> Intente nuevamente ";
echo '<A HREF="pguno.html">Anterior</A>';
}
?>

1 respuesta

Respuesta
1
Me he permitido hacerte unos cambios en lo que yo considero no está muy correcto en tu código; aunque también te digo que se podría mejorar todavía más.
A ver si te gusta como lo he hecho:
<html>
<head>
<title> Resultado consulta </title>
<meta charset=utf-8 />
</head>
<body>
<?php
$i = FALSE;
if((!empty($_POST['codigo']))|| isset($_POST['codigo'])){
$patron = '/'.trim($_POST['codigo']).'/';
$file = fopen ("data.txt", "r");
$v=0;
while (!feof($file)) {
$linea = fgets($file,41);
$cadena[$v]=$linea;
$v++;
}
fclose ($file);
foreach($cadena as $pasar)
{
$array_linea = explode(" ",$pasar);
if(preg_match($patron, $array_linea[0]))
{
echo "<br>";
echo "Marcación : ".$array_linea[0];
echo "<br>";
echo "Agregador : ".$array_linea[1]. " " .$array_linea[2];
echo "<br>";
echo "Costo : ".$array_linea[3];
echo "<br>";
echo '<A HREF="pguno.html">Anterior</A>';
$i = TRUE;
}
}
}
if($i === FALSE)
{
echo "Su Nro de CODIGO no fué encontrado ....";
echo "<br> Intente nuevamente ";
echo '<A HREF="pguno.html">Anterior</A>';
}
?>
</body>
</html>
WOW!
Solo puedo decir que es PERFECTO mi estimado experto, lo menos que puedo hacer es darte las gracias ya que estoy dando mis pininos en el campo (soy un aprendiz empírico) por eso le molesto pero de igual manera me ha salvado la vida :D muchas muchas muchas gracias!
Cualquier duda lo estaré molestando en lo que al campo respecta
Saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas