Saludos estoy programando un programa que imprime consultas mysql desde php mi problema esta aqui:
$consulta = $_POST['query'];
$result = mysql_query($consulta, $conexion)or die("Error de consulta<hr> " . mysql_error());
while( $datos = mysql_fetch_array($result) ) {
//imprimo
}
Como podria saber que datos vienen en la consulta por ejemplo (Nombre,Apellido,Telefono)
sin quemarlos en el codigo
echo $datos['Nombre'];
Que se impriman de forma dinamica como lo hace el sql server en el que uno hace una consulta y arroja la tabla ya con todos los campos y los registros.
de antemano gracias.[/size]
$conecto = new PDO( mysql:host=localhost;dbname=Underc0de', 'admin', '12345');
foreach ($conecto->query("Select Nombre,Apellido,Telefono From NOMBRE_DE _LA _TABLA where "Condición si es que la hay")as $row)
{
echo "Hay que extrujar un poquito el cerebro hermano "." Nombre.- ".$row ['Nombre']." Apellido.- ".$row ['Apellido']." Con número de teléfono.-".$row ['Telefono']. '<br />';
echo"<h1>made by @hu3co to underc0de.org community</h>"."</br>";
}
No lo he probado y puede haber algún pequeño fallo sintáctico pero eso es lo que pides
evidentemente no sé las restricciones de filtrado que puedes hacer con el where y se
puede meter dentro de un try catch para el manejo de excepciones posibles también pero
no quiero enturbiarte más
@Salu2
@Hu3c0 (https://underc0de.org/foro/index.php?action=profile;u=25363) gracias por responder, Pero no eso a eso a lo que me refiero. Desconosco los campos que van a traer por eso no puedo poner $row['Nombre'] porque debe funcionar para cualquier consulta por eso es DINAMICO.
Es obvio que esos datos los tiene que ingresar entonces el usuario por que tu los desconoces pero el usuario no me imagino... seria meterlos en una variable o array esos datos que desconoces ...
Estaria bien un ejemplo de SQL SERVER como se ve para poder ayudarte mejor...
foreach($resultado as $key=>$value){
echo "$key: $value";
}
http://php.net/manual/es/control-structures.foreach.php
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
@Hu3c0 (https://underc0de.org/foro/index.php?action=profile;u=25363) gracias por responder, Pero no eso a eso a lo que me refiero. Desconosco los campos que van a traer por eso no puedo poner $row['Nombre'] porque debe funcionar para cualquier consulta por eso es DINAMICO.
No te comprendo hermano sé un poco más explícito ¿Qué es lo que desconoces?
¿Los campos de las tablas?
¿Las filas que te va a retornar la consulta?
¿Dime qué es lo que desconoces? explícate un poco mejor y te ayudo dentro de
mis pequeños conocimientos.
Ahhhh me parece que ya sé lo que quieres lo que pasa que te has explicado como
un libro cerrado,ohhh my god nos vaís a volver crazy.
Tú lo que quieres es: Que el cliente genere la consulta (query) y coger ese value
a través del método POST y que realize es consulta a la Base de Datos.
Si es eso ..!,lo que hay que hacer es recoger ese String que trae el método POST
y meterlo por ejemplo en una variable
$miquery =$_POST['query'];
//A continuación abro un try catch para el manejo de errores por si sale algo mal.
Try
{
//Vamos a la tela conectamos a la base de datos
$conecto = new PDO( mysql:host=localhost;dbname=Underc0de', 'admin', '12345');
//Ahora realizamos la query según la entrada del cliente
foreach ($conecto->query($miquery)as $row)
{
echo"<h1>made by @hu3co to underc0de.org community</h>"."</br>";
}
}
catch(Exception $e){
echo "There is a fuck mistake in your query and i show you".$e;}
Aquí lo que pasa es que tendrías que manejar los insert creando un condicional
en la entrada es decir controlar si es un Select,Delete,Update y si es un Insert
habría que crear algo más de código con los binParam para preparar los insert.
También adicionalmente debes controlar los delete y los update ¿Porqué? por
que este tipo de queys lo que devuelven no es exactamente datos como un
Select lo que hacen es devolver las filas updateadas o deletes, por ende debes
trabajar varias condicionales
Si es un insert me haces esto
Si es un Select haces esto
Si es un Delete haces esto
Si es un Update haces aquello
Tenéis que explicar mejor las cosas tenemos que estudiar algebra para compren
deros en la mayoría de los casos
Por otro lado recomiendame I'm a seeker @Saludos
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
foreach($resultado as $key=>$value){
echo "$key: $value";
}
http://php.net/manual/es/control-structures.foreach.php
Hola @seth eso es para recorrer un array bidimensional está bien también en
realidad cuando hace la query la mete en un array bidimensionial con lo cual es
acertada esta forma ya que recorre todo el array enlazando la key asociativa a
su dato correspondiente y recorre todo el array mientras que existan datos con
el foreach.
Abrazos brother.
Logre resolverlo. asi fue el resultado independientemente de la consulta arroja los resultados.
(https://s12.postimg.org/5y688w06j/programa.png)
<?php
session_start();
require('temporal_connection.php');
if (isset($_POST['query']) && !empty($_POST['query'])) {
$consulta = $_POST['query'];
$cantidadColumnas;
$i = 0;
$result = mysql_query($consulta, $conexion)or die("Error de consulta<hr> " . mysql_error());
$dato = mysql_fetch_array($result);
echo "<table class='table table-hover table-bordered'>";
echo "<tr>";
foreach ($dato as $key => $value) {
if (($i % 2) != 0) {
echo "<th>" . $key . "</th>";
$cantidadColumnas++;
}
$i++;
}//end foreach
echo "</tr>";
$files = mysql_query($consulta, $conexion)or die("Error en la consulta<hr>" . mysql_error());
$i = 1;
$x = 0;
while ($registros = mysql_fetch_array($files)) {
if ($i == 1) {
echo "<tr>";
}
foreach ($registros as $key => $value) {
if (($x % 2 ) == 0) {
echo"<td>" . $value . "</td>";
}
$x++;
}
if ($i <= $cantidadColumnas) {
echo "</tr>";
$i = 0;
}
}//end while
echo "</table>";
}
?>
Gracias.
Muy buena bien ahi al amigo @seth (https://underc0de.org/foro/index.php?action=profile;u=38096), no entendi bien lo que intentabas hacer pero ya lo veo que bueno que pudiste solucionarlo C:
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
foreach($resultado as $key=>$value){
echo "$key: $value";
}
http://php.net/manual/es/control-structures.foreach.php
Hola @seth eso es para recorrer un array bidimensional está bien también en
realidad cuando hace la query la mete en un array bidimensionial con lo cual es
acertada esta forma ya que recorre todo el array enlazando la key asociativa a
su dato correspondiente y recorre todo el array mientras que existan datos con
el foreach.
Abrazos brother.
no es bidimensional, es un array comun
la unica diferencia es que tenes tanto el valor de cada dato como el indice al que esta asociado