Select con PHP dentro de echo.
Publicado por Basurilla (6 intervenciones) el 05/04/2018 17:39:03
Hola, estoy empezando en el mundo de PHP, Mysql y HTML y tras mirar en internet posibles
soluciones para mi "problemilla" no he conseguido solucionarlo por lo que recurro a este foro en busca de ayuda.
Tengo un archivo (busca.php) que tiene un "input text" y un "select" que recoge los datos de una tabla de una base de datos a fin de realizar una búsqueda de datos mediante ninguno, alguno o todos los datos del formulario tras darle al botón de búsqueda. Este archivo funciona perfectamente.
El archivo busca.php es el que sigue:
El resultado de la búsqueda se muestra en una tabla (resultado.php), donde al lado de cada registro hay un botón para poder modificar los datos. También funciona perfectamente dicho archivo.
El archivo resultado.php es el siguiente:
El "problemilla" viene al darle al botón Modificar que ejecutaría las instrucciones del archivo (modifica.php), dando los siguientes errores:
Notice: Undefined variable: registro in /home/XXXX/www/consulta/modifica.php on line 27
Recoverable fatal error: Object of class mysqli could not be converted to string in /home/XXXX/www/consulta/modifica.php on line 27
El código del archivo modifica.php es el siguiente:
Si se cambia el "select" por un "input text" para poder cambiar manualmente los datos, entonces funciona perfectamente, mostrándose el resultado del cambio gracias al archivo (modificafinal.php) que actualiza los datos y muestra el resultado en pantalla junto a los demás registros por lo que no sé si el "select" con PHP dentro del ECHO está mal por las comillas, o porque hay código php dentro de echo (ya he visto algunos temas en esta web y no me funciona las soluciones) u otro problema.
El archivo modificafinal.php es el siguiente:
Espero impaciente la ayuda que me puedan aportar.
Gracias.
soluciones para mi "problemilla" no he conseguido solucionarlo por lo que recurro a este foro en busca de ayuda.
Tengo un archivo (busca.php) que tiene un "input text" y un "select" que recoge los datos de una tabla de una base de datos a fin de realizar una búsqueda de datos mediante ninguno, alguno o todos los datos del formulario tras darle al botón de búsqueda. Este archivo funciona perfectamente.
El archivo busca.php es el que sigue:
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
<!DOCTYPE html>
<html lang="es">
<head>
<title>Prueba Select PHP</title>
</head>
<body>
<form action="resultado.php" method="post">
<fieldset>
<legend>BUSCAR USUARIO</legend>
<label >Usuario:</label>
<input type="text" name="usuario" />
<label>Tipo Usuario:</label>
<select class="form-control" name="tipo_usuario">
<option >
<?php
include 'config.php';
$registros=mysqli_query($conexion,"select tipo from tipo_usuario")
or die("Problemas en el select:".mysqli_error($conexion));
while ($reg=mysqli_fetch_array($registros))
{
echo "<option value=\"$reg[tipo]\">$reg[tipo]</option>";
}
?>
</option>
</select>
<button type="submit"> Buscar</button>
</fieldset>
</form>
</body>
</html>
El resultado de la búsqueda se muestra en una tabla (resultado.php), donde al lado de cada registro hay un botón para poder modificar los datos. También funciona perfectamente dicho archivo.
El archivo resultado.php es el siguiente:
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
<?php
include 'config.php';
$usuario=$_POST['usuario'];
$tipo_usuario=$_POST['tipo_usuario'];
$resultado=mysqli_query($conexion, "SELECT * FROM usuario
WHERE usuario LIKE '%$usuario%' and tipo_usuario LIKE '%$tipo_usuario%'");
?>
<!--Cabecera de la tabla-->
<!DOCTYPE html>
<html lang="es">
<head>
<title>Prueba Select PHP</title>
</head>
<body>
<table>
<tr><td><b>ID Usuario</b></td>
<td><b>Usuario</b></td>
<td><b>Tipo usuario</b></td>
</tr>
</body>
</html>
<?php
while($registro = mysqli_fetch_array($resultado)) {
echo "<tr>
<td>".$registro["id_usuario"]."</td>
<td>".$registro["usuario"]."</td>
<td>".$registro["tipo_usuario"]."</td>
<td><form method='post' action='modifica.php'><input type='hidden' name='id_usuario' value='".$registro["id_usuario"]."'>
<button class='btn btn-warning' type='submit' name='modificar' value='Modificar'>Modificar</button></a>
</form></td>
</tr>";
}
echo "</table>";
mysqli_free_result($resultado);
mysqli_close($conexion);
?>
El "problemilla" viene al darle al botón Modificar que ejecutaría las instrucciones del archivo (modifica.php), dando los siguientes errores:
Notice: Undefined variable: registro in /home/XXXX/www/consulta/modifica.php on line 27
Recoverable fatal error: Object of class mysqli could not be converted to string in /home/XXXX/www/consulta/modifica.php on line 27
El código del archivo modifica.php es el siguiente:
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
<!DOCTYPE html>
<html lang="es">
<head>
<title>Prueba Select PHP</title>
</head>
<body>
<?php
include 'config.php';
if(isset($_REQUEST['modificar'])){
$id_usuario=$_POST['id_usuario'];
$query="select * from usuario where id_usuario='$id_usuario'";
$cierto=mysqli_query($conexion, $query); // Ejecutando consulta
if($row=mysqli_fetch_array($cierto)){
echo "
<legend><center>MODIFICAR USUARIO</center></legend>
<form action='modificafinal.php' method='post'>
<fieldset>
<label>Tipo Usuario:</label>
<select name='tipo_usuario'>
<option> </option>
<?php
include 'config.php';
$registro=mysqli_query($conexion,'select tipo from tipo_usuario')
or die('Problemas en el select:'.mysqli_error($conexion));
while($reg=mysqli_fetch_array($registro))
{
echo '<option value=$reg[tipo]>$reg[tipo]</option>';
}
?>
</select>
<label>Usuario:</label>
<input type='text' name='usuario' value='$row[usuario]'>
<button type='submit' name='modificar'> Modificar</button>
</fieldset>
</form>
";
}
}
?>
</body>
</html>
Si se cambia el "select" por un "input text" para poder cambiar manualmente los datos, entonces funciona perfectamente, mostrándose el resultado del cambio gracias al archivo (modificafinal.php) que actualiza los datos y muestra el resultado en pantalla junto a los demás registros por lo que no sé si el "select" con PHP dentro del ECHO está mal por las comillas, o porque hay código php dentro de echo (ya he visto algunos temas en esta web y no me funciona las soluciones) u otro problema.
El archivo modificafinal.php es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
include 'config.php';
if(isset($_REQUEST['modificar'])){
$id_usuario=$_POST['id_usuario'];
$usuario=$_POST['usuario'];
$tipo_usuario=$_POST['tipo_usuario'];
$queryi="update usuario set usuario='$usuario', tipo_usuario='$tipo_usuario'where id_usuario='$id_usuario'"; // Consulta SQL
echo "
<script>
alert('REGISTRO MODIFICADO SATISFACTORIAMENTE');
location.href='resultado.php'
</script>";
}
?>
Espero impaciente la ayuda que me puedan aportar.
Gracias.
Valora esta pregunta
0