PHP - Crear y llenar tabla con consulta a base de datos.

   
Vista:
Imágen de perfil de Bladimir

Crear y llenar tabla con consulta a base de datos.

Publicado por Bladimir (88 intervenciones) el 12/04/2015 05:04:58
Hola a todos. Estoy tratando de consultar a una base de datos a traves de una consulta select y a partir de alli crear y llenar una tabla pero no funciona y no encuentro el error. El codigo php que uso 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
<?php
$busqued = isset($_POST['criterio']) ? $_POST['criterio'] : null ;
$seleccion = isset($_POST['selecc']) ? $_POST['selecc'] : null ;
if (strlen($busqued)>1){
    if ($seleccion=="cedula"){
    $link = @mysql_connect("localhost", "root", "") or die ('problema conectando porque :' . mysql_error());; //Conectar con el servidor
    $basedatos = "Consulta";
    mysql_select_db($basedatos, $link);
    echo "<h4 align='center'>Bien hasta aqui</h4>";
    $result= mysql_query("SELECT CI, NOMBRE, APELLIDO FROM PACIENTES WHERE CI='$busqued'",$link);
    while($row = mysql_fetch_array($result)) {
        printf("<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR><TD>&nbsp;<B>Nombre</B></TD> <TD>&nbsp;<B>Apellidos</B>&nbsp;</TD></TR>") ;
        printf("<tr><td>&nbsp;%s</td> <td>&nbsp;%s&nbsp;</td></tr>", $row["NOMBRE"], $row["APELLIDO"]);
        printf("</table> ");
    }
    mysql_free_result($result);
    mysql_close($link);
    }
    if ($seleccion=="nombre"){
    }
    if ($seleccion=="apellido"){
    }
}
?>

No logro determinar la falla.
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 Alberto

Crear y llenar tabla con consulta a base de datos.

Publicado por Alberto (222 intervenciones) el 12/04/2015 06:52:41
Hola...

Te proporciono un ejemplo sencillo...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$id = 1;
$conn = mysqli_connect('localhost','root','','practicas');
$sql = "SELECT * FROM usuario WHERE id_user = '".$id."'";
$result = mysqli_query($conn,$sql);
echo "
	<table border = 1 cellspacing = 1 cellpadding = 1>
		<tr>
			<th>ID</th>
			<th>Nombre</th>
			<th>Apellidos</th>
			<th>Edad</th>
		</tr>";
while($row = mysqli_fetch_array($result)){
	echo "
		<tr>
			<td>".$row[0]."</td>
			<td>".$row[1]."</td>
			<td>".$row[2]."</td>
			<td>".$row[3]."</td>
		</tr>";
}
echo "</table>";

Uso mysqli_connect() debido a que los métodos tradicionales para conectar y hacer consultas a la base de datos comenzarán a ser obsoletos y algunas versiones de PHP no permitirán implementar estos métodos.

Cualquier duda y/o comentario, aquí estamos. Suerte!

P.D. Sustituye el valor 1 de la variable por $_POST['tucampo'];
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 Bladimir

Crear y llenar tabla con consulta a base de datos.

Publicado por Bladimir (88 intervenciones) el 12/04/2015 14:50:21
No funciona. Modifiqué el codigo y no resulta. El codigo quedó asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$busqued = isset($_POST['criterio']) ? $_POST['criterio'] : null ;
$seleccion = isset($_POST['selecc']) ? $_POST['selecc'] : null ;
if (strlen($busqued)>1){
    if ($seleccion=="cedula"){
    $link = @mysqli_connect("localhost", "root", "") or die ('problema conectando porque :' . mysql_error());; //Conectar con el servidor
    $basedatos = "Consulta";
    mysql_select_db($basedatos, $link);
    echo " <table border = 1 cellspacing = 1 cellpadding = 1> <tr> <th>CI</th> <th>Nombre</th> <th>Apellidos</th> <th>Edad</th> </tr>";
    $result= mysql_query("SELECT CI, NOMBRE, APELLIDO FROM PACIENTES WHERE CI='$busqued'",$link);
    while($row = mysqli_fetch_array($result)){
    echo " <tr> <td>".$row[0]."</td> <td>".$row[1]."</td> <td>".$row[2]."</td> <td>".$row[3]."</td> </tr>";
    }
        echo "</table>";
    mysql_close($link);
    }
    if ($seleccion=="nombre"){
    }
    if ($seleccion=="apellido"){
    }
}
?>
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 Alberto

Crear y llenar tabla con consulta a base de datos.

Publicado por Alberto (222 intervenciones) el 12/04/2015 23:27:12
Hola...

1.- No es necesario agregues @ al método mysqli_connect(), si tu servidor no lo coloco es porque no lo necesita.
2.- mysqli_connect(), recibe cuatro parámetros: Servidor, Usuario, Password, BASEDATOS, tu omitiste el cuarto parámetro.
3.- Es incorrecto combinar ambos tipos de métodos; es decir; mysqli_ y mysql_, incluso el mimos PHP te marcaría un error, además la base de datos la pasas en la conexión por lo tanto ya no necesitas seleccionar la base de datos.

Sigue el ejemplo tal y como te lo proporcione, lo único que vas a modificar sería la cadena de conexión: mysqli_connect(´tuservidor´,'tuusuario','tupassword','tubd'), no necesitas porque implementar otros métodos de mysql_, después de todo sino lo implementa tu servidor en el código es porque no es necesario.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$busqued = isset($_POST['criterio']) ? $_POST['criterio'] : null ;
$seleccion = isset($_POST['selecc']) ? $_POST['selecc'] : null ;
if (strlen($busqued)>1){
	if ($seleccion=="cedula"){
		$link = mysqli_connect("localhost", "root", "", "tubd") or die ('Error de conexion: ' . mysqli_error());	// Cadena de conexión.
		$basedatos = "SELECT CI, NOMBRE, APELLIDO FROM PACIENTES WHERE CI='".$busqued."'";
		echo " <table border = 1 cellspacing = 1 cellpadding = 1> <tr> <th>CI</th> <th>Nombre</th> <th>Apellidos</th> <th>Edad</th> </tr>";
		$result= mysqli_query($link,$basedatos);
		while($row = mysqli_fetch_array($result)){
			echo " <tr> <td>".$row[0]."</td> <td>".$row[1]."</td> <td>".$row[2]."</td> <td>".$row[3]."</td> </tr>";
		}
		echo "</table>";
		mysqli_close($link);
	}else if ($seleccion=="nombre"){
		// Logica de negocios
	}else if ($seleccion=="apellido"){
		// Logica de negocios
	}
}

Cualquier duda y/o comentario, aquí estamos. Suerte!
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 Bladimir

Crear y llenar tabla con consulta a base de datos.

Publicado por Bladimir (88 intervenciones) el 13/04/2015 01:50:58
No funciona.
El codigo completo lo muesto abajo. la base de datos existe, las tablas tambien, los datos igualmente ya que todo lo verifique con phpMyadmin. La clave root tambien es correcta y la base esta localizado en la pc.

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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 
  <? ob_start (); ?>
 
 <title>RHM</title>
  </head>
  <script type="text/javascript">
    function info(){
        pulsado = document.elegir.busqueda;
        for (i=0; i<pulsado.length; i++){
            valor = pulsado[i].checked;
            if (valor==true){
               elegido = pulsado[i].value;
            }
        }
        escribe = document.getElementById("selecc");
        escribe.value = elegido;
    }
  </script>
<body>
  <form name="elegir" action="#">
    <fieldset>
	   <legend>
	    <b> Buscar paciente: </b>
	   </legend>
	    <p> <b>Criterio de busqueda:</b> <input type="text" name="criterio" id="criterio" onclick="llenar()"/>
	    &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;
	    <fieldset>
	      <legend>
	      <b> Buscar por: </b>
	      </legend>
	       <p><input type="radio" name="busqueda" onclick="info()" value="cedula" Checked/> Cedula de identidad
	          &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;
	          <input type="radio" name="busqueda" onclick="info()" value="nombre"/> Nombre
	          &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;
	          <input type="radio" name="busqueda" onclick="info()" value="apellido"/> Apellido
	          &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;
	          <input name="buscar" id="buscar" type="submit" value="Buscar"/>
	       </p>
	    </fieldset>
	</fieldset>
   <input type="text" name="selecc" id="selecc"/>
	 <p>
	   <?php
	   echo "<h3 align='center'>Hasta aqui bien</h3>";
$busqued = isset($_POST['criterio']) ? $_POST['criterio'] : null ;
$seleccion = isset($_POST['selecc']) ? $_POST['selecc'] : null ;
   if (strlen($busqued)>1){
   if ($seleccion=="cedula"){
     $link = mysqli_connect("localhost", "root", "", "Consulta") or die ('Error de conexion: ' . mysqli_error());
 // Cadena de conexión. 
     $result= mysqli_query("SELECT CI, NOMBRE, APELLIDO FROM PACIENTES WHERE CI='$busqued'",$link);
      echo " <table border = 1 cellspacing = 1 cellpadding = 1> <tr> <th>CI</th> <th>Nombre</th> <th>Apellidos</th> <th>Edad</th> </tr>"; $result= mysqli_query($link,$basedatos);
     while($row = mysqli_fetch_array($result)){
     echo " <tr> <td>".$row[0]."</td> <td>".$row[1]."</td> <td>".$row[2]."</td> <td>".$row[3]."</td> </tr>";
     }
     echo "</table>"; mysqli_close($link);
     }
     if ($seleccion=="nombre"){
// Logica de negocios 
     }
      if ($seleccion=="apellido"){
// Logica de negocios 
}
}
	   ?>
	 </form>
</body>
<? ob_flush (); ?>
</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
Imágen de perfil de Alberto

Crear y llenar tabla con consulta a base de datos.

Publicado por Alberto (222 intervenciones) el 13/04/2015 03:15:23
Te proporciono el código corregido...

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
<html>
	<head>
		<title>Busqueda Pacientes</title>
	</head>
	<body>
	<form name="frmBuscar" action="#" method="post">
		<fieldset>
			<legend>
				<b>Buscar Paciente</b>
			</legend>
			<fieldset>
				<legend>
					<b>Tipo Busqueda</b>
				</legend>
				<input type="radio" name="rdbBuscar" value="id" checked/>Id
				<input type="radio" name="rdbBuscar" value="nombre"/>Nombre
				<input type="radio" name="rdbBuscar" value="apellido"/>Apellido</br>
				Buscar: <input type="text" name="txtBuscar"/>
				<input type="submit" value="Buscar"/>
			</fieldset>
		</fieldset>
		</body>
	</form>
</html>
<?php
	$seleccion = isset($_POST['rdbBuscar']) ? $_POST['rdbBuscar'] : null;
	$busqued = isset($_POST['txtBuscar']) ? $_POST['txtBuscar'] : null;
	$link = mysqli_connect("localhost", "root", "", "practicas") or die ('Error de conexion: ' . mysqli_error());
	if (strlen($busqued)>1){
		if ($seleccion=="id"){
			$result= mysqli_query($link,"SELECT ID_USER,NOMBRE,APELLIDOS,EDAD FROM usuario WHERE id_user='$busqued'");
			echo " <table border = 1 cellspacing = 1 cellpadding = 1> <tr> <th>Id</th> <th>Nombre</th> <th>Apellidos</th> <th>Edad</th> </tr>";
			while($row = mysqli_fetch_array($result)){
				echo " <tr> <td>".$row[0]."</td> <td>".$row[1]."</td> <td>".$row[2]."</td> <td>".$row[3]."</td> </tr>";
			}
			echo "</table>";
		}else if ($seleccion=="nombre"){
			$result= mysqli_query($link,"SELECT ID_USER,NOMBRE,APELLIDOS,EDAD FROM usuario WHERE nombre='$busqued'");
			echo " <table border = 1 cellspacing = 1 cellpadding = 1> <tr> <th>Id</th> <th>Nombre</th> <th>Apellidos</th> <th>Edad</th> </tr>";
			while($row = mysqli_fetch_array($result)){
				echo " <tr> <td>".$row[0]."</td> <td>".$row[1]."</td> <td>".$row[2]."</td> <td>".$row[3]."</td> </tr>";
			}
			echo "</table>";
		}else if ($seleccion=="apellido"){
			$result= mysqli_query($link,"SELECT ID_USER,NOMBRE,APELLIDOS,EDAD FROM usuario WHERE apellidos='$busqued'");
			echo " <table border = 1 cellspacing = 1 cellpadding = 1> <tr> <th>Id</th> <th>Nombre</th> <th>Apellidos</th> <th>Edad</th> </tr>";
			while($row = mysqli_fetch_array($result)){
				echo " <tr> <td>".$row[0]."</td> <td>".$row[1]."</td> <td>".$row[2]."</td> <td>".$row[3]."</td> </tr>";
			}
			echo "</table>";
		}
	}
	mysqli_close($link);
?>

Si solo cambias lo que es necesario sin tener la necesidad de agregar algo más, el código funciona perfectamente.

Cualquier duda y/o comentario, aquí estamos. Suerte!
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 Bladimir

Crear y llenar tabla con consulta a base de datos.

Publicado por Bladimir (88 intervenciones) el 13/04/2015 19:24:49
Aun no funciona. Pero el problema esta aqui:
<?php
$busqued = isset($_POST['criterio']) ? $_POST['criterio'] : null ;
$seleccion = isset($_POST['selecc']) ? $_POST['selecc'] : null ;
if (strlen($busqued)>1){
echo "Todo bien";
}
?>
Si yo omito la linea
if (strlen($busqued)>1){
}
entonces si funciona y al darle click al botton entonces aparece "Todo bien". El asunto es que no se porque no funciona.
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 Alberto

Crear y llenar tabla con consulta a base de datos.

Publicado por Alberto (222 intervenciones) el 13/04/2015 19:40:02
Hola...

La razón se debe a que el método strlen(), te devuelve el tamaño de un String; es decir, tengo mi nombre en una variable...

$nombre = "Alberto";

Y si aplico el método en una impresión en pantalla el resultado sería 7; es decir...

echo strlen($nombre);

No te hice una observación con respecto a esa validación del tamaño del valor que ingresas en el input porque pensé que eras consiente que tu programa solo va a funcionar si ingresas una cadena mayor a 1 carácter, eso significa que si colocas un numero de un dígito por ejemplo 1, nunca funcionara, incluso si solo colocas una letra por ejemplo a, seguirá sin funcionar por tu validación no permitirá que realice lo demás.

Cualquier duda y/o inconveniente, aquí estamos. Suerte!
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 Bladimir

Crear y llenar tabla con consulta a base de datos.

Publicado por Bladimir (88 intervenciones) el 13/04/2015 21:05:14
Exactamente. El asunto es que al escribir por ejemplo 123456 el código no funciona.
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 Alberto

Crear y llenar tabla con consulta a base de datos.

Publicado por Alberto (222 intervenciones) el 13/04/2015 21:09:12
Intenta limpiando la cache de tu navegador, si tienes el CCleaner mucho mejor ya que eso te borrara todo aquello relacionado a tu navegador. Posiblemente el cambio ya esta hecho pero te esta mostrando lo que se encuentra en la cache.

Otra opción es que únicamente imprimas el valor para saber que es lo que estas recibiendo desde el formulario.

Cualquier duda y/o inconveniente aquí estamos. Suerte!
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 Bladimir

Crear y llenar tabla con consulta a base de datos.

Publicado por Bladimir (88 intervenciones) el 13/04/2015 21:56:36
Al limpiar el caché no se corrige el problema. Al cargar la página imprime 0. Cuando escribo el el input 12345 me arroja al dar click en el botón tipo submit cuando debe arrojar 5.
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 Alberto

Crear y llenar tabla con consulta a base de datos.

Publicado por Alberto (222 intervenciones) el 13/04/2015 22:03:50
Que extraño, no estoy seguro del como estas probando pero si te acuerdas del código corregido que te proporcione, me funciona perfectamente.

Podrías pasarme el código nuevamente, el corregido que yo te proporcione con tus cambios, gracias.
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 Bladimir

Crear y llenar tabla con consulta a base de datos.

Publicado por Bladimir (88 intervenciones) el 13/04/2015 22:45:06
Ya consegui el error. En el codigo html estaba escrito esto
<form name="elegir" action="#" >
cuando deberia decir esto:
<form name="elegir" action="#" method="post">
Ese era el error.
Muchisimas gracias por la ayuda y estamos a la orden.
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

Crear y llenar tabla con consulta a base de datos.

Publicado por Marcelo Guidos cguidos@yahoo.com (1 intervención) el 16/11/2016 18:29:32
Buen dia! Alberto
Yo soy nuevo en este tema de php, yo igual estoy haciendo un proyecto y probe tu codigo, con mi db y la conexion a la db esta bien, pero me genera este error:

1
<body></body> == $0

Me podrias ayudar haciendome ver que no esta bien, mil gracias de antemano.

El codigo esta asi.

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
<!DOCTYPE html>
 
	<head>
		<title>Busqueda Vehiculos</title>
	</head>
 
	<body>
 
	<form name="frmBuscar" action="#" method="post">
		<fieldset>
			<legend>
				<b>Buscar Vehiculos</b>
			</legend>
			<fieldset>
				<legend>
					<b>Tipo Busqueda</b>
				</legend>
				<input type="radio" name="rdbBuscar" value="placa" checked/>Placa
				<input type="radio" name="rdbBuscar" value="equipo"/>Equipo
				<input type="radio" name="rdbBuscar" value="capacidad"/>Capacidad</br>
				Buscar: <input type="text" name="txtBuscar"/>
				<input type="submit" value="Buscar"/>
			</fieldset>
		</fieldset>
 
	</form>
	</body>
</html>
 
 
<?php
	$seleccion = isset($_POST['rdbBuscar']) ? $_POST['rdbBuscar'] : null;
	$busqued = isset($_POST['txtBuscar']) ? $_POST['txtBuscar'] : null;
 
	$link = mysqli_connect("1.1.1.1", "usuario", "clave", "data") or die ('Error de conexion: ' . mysqli_error());
 
        if (strlen($busqued)>1){
		if ($seleccion=="placa"){
			$result= mysqli_query($link,"SELECT placa, numero_equipo, capacidad, modelo FROM vehiculos WHERE placa ='$busqued'");
			echo " <table border = 1 cellspacing = 1 cellpadding = 1> <tr> <th>Id</th> <th>Nombre</th> <th>Apellidos</th> <th>Edad</th> </tr>";
			while($row = mysqli_fetch_array($result)){
				echo " <tr> <td>".$row[0]."</td> <td>".$row[1]."</td> <td>".$row[2]."</td> <td>".$row[3]."</td> </tr>";
			}
			echo "</table>";
		}else if ($seleccion=="equipo"){
			$result= mysqli_query($link,"SELECT placa, numero_equipo, capacidad, modelo FROM vehiculos WHERE numero_equipo ='$busqued'");
			echo " <table border = 1 cellspacing = 1 cellpadding = 1> <tr> <th>Id</th> <th>Nombre</th> <th>Apellidos</th> <th>Edad</th> </tr>";
			while($row = mysqli_fetch_array($result)){
				echo " <tr> <td>".$row[0]."</td> <td>".$row[1]."</td> <td>".$row[2]."</td> <td>".$row[3]."</td> </tr>";
			}
			echo "</table>";
		}else if ($seleccion=="capacidad"){
			$result= mysqli_query($link,"SELECT placa, numero_equipo, capacidad, modelo FROM vehiculos WHERE capacidad ='$busqued'");
			echo " <table border = 1 cellspacing = 1 cellpadding = 1> <tr> <th>Id</th> <th>Nombre</th> <th>Apellidos</th> <th>Edad</th> </tr>";
			while($row = mysqli_fetch_array($result)){
				echo " <tr> <td>".$row[0]."</td> <td>".$row[1]."</td> <td>".$row[2]."</td> <td>".$row[3]."</td> </tr>";
			}
			echo "</table>";
		}
	}
 
	mysqli_close($link);
?>
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