funcion buscar
Publicado por Charly (70 intervenciones) el 28/09/2018 12:44:12
Tengo una página en la que hay un input text y un botón buscar.
Y en otro archivo tengo la clase colección que guarda los métodos necesarios.
Cuando presionan el botón, llamo al método de la clase para que busque en una matriz y muestre en una tabla si hay alguna película, pero aunque meta una palabra que exista, no la encuentra, es más, yo creo que ni siquiera busca en la matriz, simplemente no entra en el bucle.
A continuación pongo el código:
Este es el index.php:
Y esta es la clase colección.php:
Y en otro archivo tengo la clase colección que guarda los métodos necesarios.
Cuando presionan el botón, llamo al método de la clase para que busque en una matriz y muestre en una tabla si hay alguna película, pero aunque meta una palabra que exista, no la encuentra, es más, yo creo que ni siquiera busca en la matriz, simplemente no entra en el bucle.
A continuación pongo el código:
Este es el index.php:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
require("coleccion.php");
if(isset($_REQUEST['operacion'])) $operacion=$_REQUEST['operacion'];
if(isset($_REQUEST['palabra'])) $palabra=$_REQUEST['palabra'];
if(!isset($palabra)) $palabra="";
?>
<html>
<head>
<title>Actividad 1</title>
</head>
<body bgcolor="#FF9900">
<hr>
<table border=0 align=center>
<tr>
<td valign=top align="center"><h1><font color="red">COLECCION DE PELICULAS</font></h1></td>
<td valign=bottom rowspan=2>
<table border=0 align=center width=375>
<tr>
<td colspan=2 height=40 align=center><h3><font color="red">Operaciones con la coleccion</font></h3></td>
</tr>
<tr>
<td align=right height=30><font color=red><b>Buscar pelicula </b></font></td>
<td>
<form name="form1" method="post" action="index.php">
<input type="text" name="nombre" size="10" maxlength="50" value="<?php echo $palabra; ?>">
<input type="submit" name="buscar" value="Buscar">
<input type="hidden" name="operacion" value="buscar">
</form>
</td>
</tr>
<tr>
<td colspan=2 align=center>
<form name="form2" method="post" action="index.php">
<input type="submit" name="listado" value="Ver listado completo de peliculas">
<input type="hidden" name="operacion" value="listar">
</form>
</td>
</tr>
<tr>
<td colspan=2 align=center>
<form name="form3" method="post" action="index.php">
<input type="submit" name="listado" value="Ver listado ordenado por titulo">
<input type="hidden" name="operacion" value="listar_ordenado">
</form>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align=center><img src=peliculas.png></td>
</tr>
</table>
<hr>
<?php
$peliculas=new coleccion();
$peliculas->add_pelicula("El gran dictador","Charles Chaplin","Comedia",1940);
$peliculas->add_pelicula("En busca del arca perdida","Steven Spielberg","Aventuras",1981);
$peliculas->add_pelicula("Los pajaros","Alfred Hitchocock","Thriller",1963);
$peliculas->add_pelicula("Pulp Fiction","Quentin Tarantino","Alternativo",1994);
$peliculas->add_pelicula("The Matrix","Andy y Larry Wacowsky","Ciencia ficcion",1999);
$peliculas->add_pelicula("2001: una odisea en el espacio","Stanley Kubrick","Ciencia ficcion",1968);
$peliculas->add_pelicula("Lawrance de Arabia","David Lean","Historica",1962);
if(isset($operacion)){
if($operacion=="listar"){
$total=$peliculas->listar_peliculas(false);
}
if($operacion=="buscar"){
$total=$peliculas->buscar($palabra);
}
if($operacion=="listar_ordenado"){
$total=$peliculas->listar_peliculas(true);
}
echo "<center><font color=white>El nº de peliculas encontradas es: ".$total."</font></center>";
}
?>
</body>
</html>
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
56
<?php
class coleccion{
public $peliculas=array();
public $total;
function __construct(){
$this->peliculas=array();
}
function add_pelicula($titulo,$director,$genero,$año){
$pelicula=array("titulo"=>$titulo,"director"=>$director,"genero"=>$genero,"año"=>$año);
array_push($this->peliculas,$pelicula);
}
function num_peliculas(){
return sizeof($this->peliculas);
}
function listar_peliculas($ordenado){
if($ordenado) sort($this->peliculas);
echo "<table border=1 align=center width=500><tr>
<td><font color=lime><b>Titulo</b></font></td>
<td><font color=lime><b>Director</b></font></td>
<td><font color=lime><b>Genero</b></font></td>
<td><font color=lime><b>Año</b></font></td></tr>";
for($i=0;$i<sizeof($this->peliculas);$i++){
echo "<tr><td><font color=white>".$this->peliculas[$i]["titulo"]."</font></td>
<td><font color=white>".$this->peliculas[$i]["director"]."</font></td>
<td><font color=white>".$this->peliculas[$i]["genero"]."</font></td>
<td><font color=white>".$this->peliculas[$i]["año"]."</font></td></tr>";
}
echo "</table>";
return $this->num_peliculas();
}
function buscar($palabra){
$total=0;
if(($palabra)==""){
echo "No se ha introducido ninguna palabra";
}else{
echo "<center><font color=white>Las peliculas que contienen '<b>$palabra</b>' en el campo 'titulo' o 'director' son: </font></center><p>";
echo "<table border=1 align=center width=500><tr>
<td><font color=lime><b>Titulo</b></font></td>
<td><font color=lime><b>Director</b></font></td>
<td><font color=lime><b>Genero</b></font></td>
<td><font color=lime><B>Año</b></font></td></tr>";
for($i=0;$i<sizeof($this->peliculas);$i++){
if((strpos($this->peliculas[$i]["titulo"],$palabra)!==false)||(strpos($this->peliculas[$i]["director"],$palabra)!==false)||(strpos($this->peliculas[$i]["genero"],$palabra)!==false)||(strpos($this->peliculas[$i]["año"],$palabra)!==false)){
$total++;
echo "<tr><td><font color=white>".$this->peliculas[$i]["titulo"]."</font></td>
<td><font color=white>".$this->peliculas[$i]["director"]."</font></td>
<td><font color=white>".$this->peliculas[$i]["genero"]."</font></td>
<td><font color=white>".$this->peliculas[$i]["año"]."</font></td></tr>";
}
}
echo "</table>";
return $total;
}
}
}
?>
Valora esta pregunta
0