PHP - ¿Por qué me manda error en consulta inner join con variables de sesión?

 
Vista:
Imágen de perfil de Suriel
Val: 17
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

¿Por qué me manda error en consulta inner join con variables de sesión?

Publicado por Suriel (6 intervenciones) el 13/11/2019 22:26:05
Estoy generando un reporte PDF que jala datos de 2 tablas de mysql, en ambas tablas existe el campo pin con el cual lo utilizo con variable de sesión para cada persona que tenga su pin pueda generarlo. Pero me esta mandando error en la consulta con la que quiero jalar los datos de ambas tablas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 session_start();
 fetch_data()
{
$output = '';
$conn = mysqli_connect("localhost", "root", "", "MYDB");
$conn -> set_charset("utf8");
$sql = "SELECT * FROM texto_menos50 T INNER JOIN empresasregistradas E ON
T.pin = E.pin WHERE T.pin ='{$_SESSION['pin']}' ORDER BY pin ASC";
$result = mysqli_query($conn, $sql);
 
while($row = mysqli_fetch_array($result))  <-- El error de la linea 12
{
$output .= 'CONTENIDO DEL PDF';}return $output;


El error es:

1
2
3
4
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result,
  boolean given in C:\wamp64\www\project\myproject.php on line
  12
  TCPDF ERROR: Some data has already been output, can't send PDF file
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 Kathyu
Val: 1.670
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

¿Por qué me manda error en consulta inner join con variables de sesión?

Publicado por Kathyu (455 intervenciones) el 13/11/2019 22:45:23
Concatenación.

1
2
3
4
$session = $_SESSION['pin'];
 
$sql = "SELECT * FROM texto_menos50 T INNER JOIN empresasregistradas E ON
T.pin = E.pin WHERE T.pin = $session ORDER BY pin ASC";

Ojo, si el pin es int no necesita comillas simples => ''
Si es string pues si las necesita.

En este ejemplo $token es alfanumérico y $campo_seguimiento viene de un switch que cambia según sea el caso
1
$seguimiento = $mysqli->query("SELECT SS.$campo_seguimiento AS campo_seguimiento FROM solicitud_seguimiento SS WHERE SS.token = '$token' ") or trigger_error($mysqli->error);
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 Suriel
Val: 17
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

¿Por qué me manda error en consulta inner join con variables de sesión?

Publicado por Suriel (6 intervenciones) el 13/11/2019 23:13:22
@Kathyu El pin es un dato alfanumérico, el error no se encontraba aquí si no en el ORDER ya no estaba igualándolo con el ALIAS de la tabla. Entonces quedó así:

1
2
$sql = "SELECT * FROM texto_menos50 T INNER JOIN empresasregistradas E ON
T.pin = E.pin WHERE T.pin ='{$_SESSION['pin']}' ORDER BY T.pin ASC";
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 Kathyu
Val: 1.670
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

¿Por qué me manda error en consulta inner join con variables de sesión?

Publicado por Kathyu (455 intervenciones) el 14/11/2019 15:04:34
Bien, eso es bueno.

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