PHP - Duda de PHP, Buscador de base de datos

 
Vista:
Imágen de perfil de Lucas
Val: 136
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Duda de PHP, Buscador de base de datos

Publicado por Lucas (46 intervenciones) el 21/04/2020 18:46:33
Hola, les cuento, estoy intentando programar un buscador en PHP que encuentre según coincidencia del texto escrito los elementos de una base de datos mysql que tengo... pero por alguna razón en lugar de abrir el formulario como quiero, directamente muestra la base de datos completa, cual es mi error?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Página de búsqueda ínica</title>
    <?php
function funbuscar($variable1){
require("base_datos.php");
 
$conexion=mysqli_connect($dbd,$ubd,$cbd,$nbd);
 
mysqli_set_charset($conexion, "utf8");
 
$consulta="SELECT * FROM Productos WHERE NOMBREARTÍCULO LIKE '%$variable1%'";
 
$respuesta=mysqli_query($conexion, $consulta);
 
while($fila=mysqli_fetch_array($respuesta, MYSQLI_ASSOC)){
    echo "<table><tr><td>";
    echo $fila['CÓDIGOARTÍCULO'] . "<br>";
    echo "</td><td>";
    echo $fila['NOMBREARTÍCULO'] . "<br>";
    echo "</td><td>";
    echo $fila['PAÍSDEORIGEN'] . "<br>";
    echo "</td><td>";
    echo $fila['SECCIÓN'] . "<br>";
    echo "</td><td>";
    echo $fila['IMPORTADO'] . "<br>";
    echo "</td><td>";
    echo $fila['PRECIO'] . "<br>";
    echo "</td></tr></table>";
}
}
?>
</head>
<body>
    <?php
    $variable1=$_GET["buscar"];
    $variable2=$_SERVER["PHP_SELF"];
    if ($variable1=NULL){
        echo "<form action '" . $variable1 ."' method='get'>
        <label>Buscar:<input type='text' name='buscar'></label>
        <input type='submit' name='enviando' value='buscar'>
        </form>";
    }else{
        funbuscar($variable1);
    }
 
 
 
    echo "<form>"
 
    ?>
</body>
</html>
Anotacion-2020-04-21-184514
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 2.994
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Duda de PHP, Buscador de base de datos

Publicado por Julio (830 intervenciones) el 21/04/2020 19:03:19
Hola.

Tu error es que, la primera vez que carga la página, no existe $_GET['buscar']. Fíjate que en la imagen que pones te dice "índice buscar no definido en la línea 38".

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Annonymous
Val: 89
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Duda de PHP, Buscador de base de datos

Publicado por Annonymous (18 intervenciones) el 26/04/2020 03:51:23
En la linea 40 estas haciendo una asignacion, no una comparacion

1
if ($variable1=NULL){

Te faltaria un signo igual o podrias utilizar la funcion de php is_null.

1
2
//si es null devuelve true, caso contrario false
is_null($variable1)

Como menciona Julio, te tira un error en pantalla ya que $_GET('buscar') no existe la primera vez que entras, deberias validar que tenga datos y ahi recien asignar a la variable

Por otro lado como recomendaciones para mejorar tu codigo
* Separa el codigo php del codigo html lo mas que puedas, si es un archivo diferente mejor aun
* Utiliza nombres de variables descriptivos "variables1" no representa nada, a la larga si tu codigo crece se vuelve mas dificil mantenerlo
* Sanea las variables antes de enviarlas a la Base de datos, es importante ya que sino podrian insertar codigo adicional al utilizar tu formulario

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar