PHP - No muestra datos de una tabla con el menú desplegable

 
Vista:
Imágen de perfil de Marcela
Val: 13
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

No muestra datos de una tabla con el menú desplegable

Publicado por Marcela (7 intervenciones) el 12/09/2018 03:22:13
Tengo un código con menú desplegable para consultar los datos de los clientes, les mostraré la página para consultar un cliente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<p>Seleccione un cliente:</p>
<p><form method="POST" action="consultarclientes1.php">
  Cliente:
  <select>
    <option value="0">Selección:</option>
    <?php
      $query = $mysqli -> query ("SELECT * FROM cliente");
      while ($registro = mysqli_fetch_array($query)) {
        echo '<option value="'.$registro['idcliente'].'">'.$registro['nombre_o_razon_social'].'</option>';
      }
    ?>
  </select>
  <input type='submit' value='Enviar' class="verde">
</p>

Y el código para que muestre los datos consultados del cliente es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if(isset($_POST['idcliente'])){
  $idcliente = $_POST['idcliente'];
  include('connect_db.php');
  $sql="SELECT * FROM repuesto WHERE nombre_repuesto='$idcliente'";
  $ressql=mysqli_query($mysqli,$sql);
  while ($registro=mysqli_fetch_array ($ressql)){
    echo "<table border='1'cellspacing=0 bgcolor = 'white' bordercolor= 'green'>";
    echo "<td><b>Código repuesto</td>";
    echo "<td><b>Nombre repuesto</td>";
    echo "<td><b>Precio</td>";
    echo "</tr>";
    echo "<tr>";
    echo "<center>";
    echo "<td width='20%'>".$registro['idcliente']."</td>";
    echo "<td width='20%'>".$registro['nombre_o_razon_social']."</td>";
    echo "</tr>";
    echo "</table>";
  }
}
?>

Pero el problema es que no muestra datos del cliente consultado, me aparece en blanco. Agradezco una ayuda prestada para que se pueda mostrar los resultados de la búsqueda del cliente a través del menú desplegable.
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
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

No muestra datos de una tabla con el menú desplegable

Publicado por Gonzalo (615 intervenciones) el 12/09/2018 14:59:19
tal vez no es el problema pero habria que intentar.

donde esta el </form>?

ahora, acerca de que no lee datos, como se llama el <select>?

cambia el select por

<Select Name="idcliente">

otra cosa, si vas a mostrar un solo registro no necesitas el while

while ($registro=mysqli_fetch_array ($ressql))
{
}

mejor usa el if

if($registro=mysqli_fetch_array ($ressql))
{
}

aunque la logica esta bien ya que el while va a funcionar solo 1 vez pero para este caso tal vez sea mas correcto usa el if.

revisalo de nuevo y nos avisas.

salu2
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 Marcela
Val: 13
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

No muestra datos de una tabla con el menú desplegable

Publicado por Marcela (7 intervenciones) el 12/09/2018 20:26:53
Ya hice lo que me sugirieron con lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<p>Seleccione un cliente:</p>
    <p><form method="POST" action="consultarclientes1.php">
    Cliente:
      <Select Name="nombre_o_razon_social">
        <option value="0">Selección:</option>
        <?php
          $query = $mysqli -> query ("SELECT * FROM cliente");
          while($registro = mysqli_fetch_array($query)) {
            echo '<option value="'.$registro['idcliente'].'">'.$registro['nombre_o_razon_social'].'</option>';
          }
        ?>
      </select>
      <input type='submit' value='Enviar' class="verde">
    </form>
    </p>

y para mostrar los resultados con lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if(isset($_POST['idcliente']) && isset($_POST['nombre_o_razon_social'])){
    //$idcliente = $_POST['idcliente'];
    include('connect_db.php');
    $sql="SELECT * FROM repuesto WHERE nombre_repuesto='$idcliente'";
    $ressql=mysqli_query($mysqli,$sql);
    if($registro=mysqli_fetch_array ($ressql)){
        echo "<table border='1'cellspacing=0 bgcolor = 'white' bordercolor= 'green'>";
        echo "<td><b>Código repuesto</td>";
        echo "<td><b>Nombre repuesto</td>";
        echo "<td><b>Precio</td>";
        echo "</tr>";
        echo "<tr>";
        echo "<center>";
        echo "<td width='20%'>".$registro['idcliente']."</td>";
        echo "<td width='20%'>".$registro['nombre_o_razon_social']."</td>";
        echo "</tr>";
        echo "</table>";
    }
}
?>

Pero me sigue saliendo en blanco, no salen errores ni nada, pero si sale en pantalla en blanco. Que hago??
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

No muestra datos de una tabla con el menú desplegable

Publicado por xve (6935 intervenciones) el 13/09/2018 08:43:27
Hola Marcela, pero en el formulario no existe el name="idcliente"]... por eso en el if del archivo php, nunca te entra, ya que esta condición nunca se cumple:
1
if(isset($_POST['idcliente'])....

Prueba a modificar la linea 2 por esto:
1
if(isset($_POST['nombre_o_razon_social'])){

Coméntanos, ok?
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 Marcela
Val: 13
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

No muestra datos de una tabla con el menú desplegable

Publicado por Marcela (7 intervenciones) el 13/09/2018 22:52:32
Con éste código corregido, no funciona, todo sale en blanco.

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
<?php
include('connect_db.php');
?>
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="utf-8">
 <link rel="stylesheet" href="style.css">
  <title>Cat's Soporte</title>
</head>
<body>
  <center>
<h2>CAT'S SOPORTE</h2>
      <h2>Gestión de clientes</h2>
      <br>
      <h3>Consulta de clientes</h3>
      <p>
<?php
if(isset($_POST['nombre_o_razon_social'])){
    $nombre_o_razon_social='nombre_o_razon_social';
    $sql="SELECT * FROM cliente WHERE nombre_o_razon_social='$nombre_o_razon_social'";
    $ressql=mysqli_query($mysqli,$sql);
    while($registro=mysqli_fetch_array ($ressql)){
        echo "<table border='1'cellspacing=0 bgcolor = 'white' bordercolor= 'green'>";
        echo "<td><b>Nombre cliente</td>";
        echo "<td><b>Precio</td>";
        echo "</tr>";
        echo "<tr>";
        echo "<center>";
        echo "<td width='20%'>".$registro['nombre_o_razon_social']."</td>";
        echo "</tr>";
        echo "</table>";
    }
  }
?>
<br>
<br>
<br>
<footer class="footer">
<p>&copy; 2018 Copyright Johanna M.Orjuela<br/><br/></p>
 </footer>
</div>
  </body>
</html>
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: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

No muestra datos de una tabla con el menú desplegable

Publicado por Gonzalo (615 intervenciones) el 13/09/2018 15:08:17
if(isset($_POST['idcliente'])) {echo("idcliente ok");}
if(isset($_POST['nombre_o_razon_social'])){echo("nombre ok");}

agrega esto al inicio, el que este mal no va a apaarecer.

generas el combo en base a los clientes, ok.

$query = $mysqli -> query ("SELECT * FROM cliente");

pero haces la busqueda en repuestos?

$sql="SELECT * FROM repuesto WHERE nombre_repuesto='$idcliente'";

es busqueda de clientes o busqueda de repuestos?

si concuerdan las bases de datos?

salu2.
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 Marcela
Val: 13
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

No muestra datos de una tabla con el menú desplegable

Publicado por Marcela (7 intervenciones) el 13/09/2018 18:56:04
Es búsqueda de clientes, le envío corrección del código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if(isset($_POST['idcliente']) && isset($_POST['nombre_o_razon_social'])){
    //$idcliente = $_POST['idcliente'];
    include('connect_db.php');
    $sql="SELECT * FROM clienteWHERE nombre_repuesto='$idcliente'";
    $ressql=mysqli_query($mysqli,$sql);
    if($registro=mysqli_fetch_array ($ressql)){
        echo "<table border='1'cellspacing=0 bgcolor = 'white' bordercolor= 'green'>";
        echo "<td><b>Código cliente</td>";
        echo "<td><b>Nombre cliente</td>";
        echo "<td><b>Precio</td>";
        echo "</tr>";
        echo "<tr>";
        echo "<center>";
        echo "<td width='20%'>".$registro['idcliente']."</td>";
        echo "<td width='20%'>".$registro['nombre_o_razon_social']."</td>";
        echo "</tr>";
        echo "</table>";
    }
}
?>
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: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

No muestra datos de una tabla con el menú desplegable

Publicado por Gonzalo (615 intervenciones) el 14/09/2018 03:09:15
query esta mal

en el query usas a $idcliente que no vale nada, descomenta esta linea

//$idcliente = $_POST['idcliente'];

where esta mal escrito

$sql="SELECT * FROM clienteWHERE nombre_repuesto='$idcliente'";

agrega un espacio antes de where:

$sql="SELECT * FROM cliente WHERE nombre_repuesto='$idcliente'";

se supone que ahi debe funcionar pero solo si el campo nombre_repuesto esta en la tabla cliente.

ahora bien, respecto a la logica

tienes un combo para el id y otro para la razon social, ok, si los pasas como parametro porque los consultas en la base de datos?

if(isset($_POST['idcliente']) && isset($_POST['nombre_o_razon_social'])) // parametros, el id y el nombre

echo "<td width='20%'>".$registro['idcliente']."</td>"; imprimes el id (que ya esta en el post)

echo "<td width='20%'>".$registro['nombre_o_razon_social']."</td>"; (y el nombre que tambien esta en el post)

yo diria que con el id del cliente es suficiente, pero es tu programa, es tu logica o sea, es tu solucion al problema.

esta bien tu programa solo tiene detalles de
salu2

salu2
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 Marcela
Val: 13
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

No muestra datos de una tabla con el menú desplegable

Publicado por Marcela (7 intervenciones) el 14/09/2018 04:06:21
Mil gracias a los que me colaboraron por mi ayuda.Pero ya me funcionan los códigos con la ayuda de otro participante de éste sitio web. Gracias:

Primera página:

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>
  <meta charset="utf-8">
 <link rel="stylesheet" href="style.css">
  <title>Cat's Soporte</title>
</head>
<body>
  <center>
    <h2>CAT'S SOPORTE</h2>
      <h2>Gestión de clientes</h2>
      <br>
      <h3>Consulta de clientes</h3>
      <p>
        <div align="center">
          <p>Seleccione un cliente:</p>
          <p><form name='nombre_o_razon_social' action='consultarclientes2.php' method='POST'>
          Cliente:
          <select name='cboClientes' id='cboClientes'>
          <option value="0">Selección:</option>
          <?php
          include('connect_db.php');
          $query = $mysqli -> query ("SELECT * FROM cliente");
          while($registro = mysqli_fetch_array($query)) {
          echo '<option value="'.$registro['idcliente'].'">'.$registro['nombre_o_razon_social'].'</option>';
          }
          ?>
</select>
<input type='submit' value='Enviar' class="verde">
</tr></tr></table>

Segunda página:

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
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="utf-8">
 <link rel="stylesheet" href="style.css">
  <title>Cat's Soporte</title>
</head>
<body>
  <center>
<h2>CAT'S SOPORTE</h2>
      <h2>Gestión de clientes</h2>
      <br>
      <h3>Consulta de clientes</h3>
      <p>
        <?php
        include('connect_db.php');
        $sql="SELECT * FROM cliente WHERE idcliente='".$_POST['cboClientes']."'";
        $ressql=mysqli_query($mysqli,$sql);
        while($registro=mysqli_fetch_array ($ressql)){
        echo "<table border='1'cellspacing=0 bgcolor = 'white' bordercolor= 'green'>";
        echo "<td><b>Nombre cliente</td>";
        echo "</tr>";
        echo "<tr>";
        echo "<center>";
        echo "<td width='20%'>".$registro['nombre_o_razon_social']."</td>";
        echo "</tr>";
        echo "</table>";
        }
        ?>
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