PHP - Realizar una consulta en PHP

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado su posición en 17 puestos en PHP (en relación al último mes)
Gráfica de PHP

Realizar una consulta en PHP

Publicado por seba64 (5 intervenciones) el 25/08/2016 05:54:51
Saludos:

Quiero hacer una consulta a una base de datos mysql. Aclaro que probé con distintas conexiones en localhost, pero la única que me resulto en el host que arriendo fue con MYSQLI.

La idea es un formulario de ingreso con nombre y password que llama a un archivo php para comprobar el ingreso y crear una variable de sesion para el usuario. El archivo PHP se carga en un iframe en el mismo formulario.

Logré que me resulte, pero si ven el código, se darán cuenta que no es nada óptimo.

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
<?php
    $usuario = $_POST['user'];
    $clave = $_POST['pasw'];
	include "conexion.php";
	$conectado->query("SET NAMES 'utf8'");
	$query="select count(ID) 'cuenta' from usuario where ID='". $usuario . "' and password='" . $clave . "'";
	echo $query . "<br>";
	$InstruccionBD = $conectado->prepare ($query);
	$InstruccionBD->execute();
	$InstruccionBD->bind_result($cuenta);
	$InstruccionBD->fetch();
	$conectado->close();
 
    if ($cuenta==0){
?>
<html>
	<head>
		<script>
			window.parent.aviso();
        </script>
	</head>
</html>
<?php
    }
    else{
 
	include "conexion.php";
 
//	$conectado->query("SET NAMES 'utf8'");
	$query="select Nombre from usuario where ID='". $usuario . "' and password='" . $clave . "'";
	echo $query . "<br>";
	$InstruccionBD2 = $conectado->prepare ($query);
	$InstruccionBD2->store_result();
	$InstruccionBD2->execute();
	$InstruccionBD2->bind_result($nombre);
	$InstruccionBD2->fetch();
 
	$conectado->close();
 
		session_start();
		$_SESSION['usuario'] = $usuario;
		$_SESSION['nombre'] = $nombre;
 
        echo "<br>-".$nombre;
?>
<html>
	<head>
		<script>
			window.parent.cambia("setting.php");
        </script>
	</head>
    <body>
 
    </body>
</html>
<?php
	}
?>


Y la pregunta es: ¿como debería escribirse correctamente este código?

de antemano, muchas gracias

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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Realizar una consulta en PHP

Publicado por xve (6935 intervenciones) el 25/08/2016 08:42:22
Hola Seba64 yo lo haria así:

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
<?php
session_start();
include "conexion.php";
 
$usuario = $_POST['user'];
$clave = $_POST['pasw'];
 
$conectado->query("SET NAMES 'utf8'");
$query="select Nombre from usuario where ID='". $usuario . "' and password='" . $clave . "'";
$result=$conectado-query($query);
 
?>
<html>
	<head>
		<script>
 
			<?php
			if($result)
			{
				$_SESSION['usuario'] = $usuario;
				$_SESSION['nombre'] = $result[0]["Nombre"];
 
				?>
				window.parent.cambia("setting.php");
				<?php
			}else{
				?>
				window.parent.aviso();
				<?php
			}
			?>
 
		</script>
	</head>
</html>

Espero que te sirva
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
sin imagen de perfil
Val: 10
Ha aumentado su posición en 17 puestos en PHP (en relación al último mes)
Gráfica de PHP

Realizar una consulta en PHP

Publicado por seba64 (5 intervenciones) el 25/08/2016 14:43:14
Muchas gracias por tu pronta respuesta, xve

Está bien en este caso, pero lo que quisiera saber ahora, es como debo hacer cuando tengo dos consultas. Por que yo tube que escribir todo de nuevo para hacer la segunda, y es que estoy empezando con mi código, pero faltan muchas otras consultas y veo que en muchos casos las consultas van a depender de los valores que entreguen las consultas previas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Realizar una consulta en PHP

Publicado por xve (6935 intervenciones) el 25/08/2016 16:44:58
Hola Seba64, no hay problema, simplemente generala nuevamente con: $result=$conectado-query($query);... sigues estando conectado en la base de datos... siempre y cuando no cambies de base de datos en una misma pagina, puedes ir haciendo consultas sin problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha aumentado su posición en 17 puestos en PHP (en relación al último mes)
Gráfica de PHP

Realizar una consulta en PHP

Publicado por seba64 (5 intervenciones) el 28/08/2016 17:58:05
Saludos.

He intentado lo que me has dicho XVE, pero me da error:

cambie esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
session_start();
$id=session_id();
	include "conex/conexion.php";
	$conectado->query("SET NAMES 'utf8'");
	$query="select count(idcarro)'cuenta' from carro where idcarro='".$id."'";
	echo "<br>".$query."<br>";
	$result = $conectado->prepare ($query);
	$result->execute();
	$result->bind_result($cuenta);
	$result->fetch();
	$conectado->close();
	echo "<br>cuenta:<br>".$cuenta;
 
	include "conex/conexion.php";
	$conectado->query("SET NAMES 'utf8'");
	$query="insert into carro (idcarro,fecha) values('".$id."', now())";
	echo "<br>".$query."<br>";
	$result = $conectado->prepare ($query);
	$result->execute();
	$result->fetch();
	$conectado->close();
?>

por esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
session_start();
$id=session_id();
	include "conex/conexion.php";
	$conectado->query("SET NAMES 'utf8'");
	$query="select count(idcarro)'cuenta' from carro where idcarro='".$id."'";
	echo "<br>".$query."<br>";
	$result = $conectado->prepare ($query);
	$result->execute();
	$result->bind_result($cuenta);
	$result->fetch();
//	$conectado->close();
	echo "<br>cuenta:<br>".$cuenta;
 
//	include "conex/conexion.php";
//	$conectado->query("SET NAMES 'utf8'");
	$query="insert into carro (idcarro,fecha) values('".$id."', now())";
	echo "<br>".$query."<br>";
	$result = $conectado->prepare ($query);
	$result->execute();
	$result->fetch();
	$conectado->close();
?>


El error que me aparece es:

1
Fatal error: Call to a member function execute() on boolean in C:\xampp\htdocs\test.php on line 20

¿Que estoy haciendo mal?

.
.
.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar