[SOLUCIONADO] Imprimir array dinamicamente en PHP?

Iniciado por elganjah7, Noviembre 20, 2016, 01:35:22 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 20, 2016, 01:35:22 PM Ultima modificación: Noviembre 21, 2016, 09:14:13 AM por elganjah7
Saludos estoy programando un programa que imprime consultas mysql desde php mi problema esta aqui:
Código: php

$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]

Noviembre 20, 2016, 07:30:14 PM #1 Ultima modificación: Noviembre 20, 2016, 08:00:47 PM por Hu3c0
$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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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.


Noviembre 20, 2016, 09:19:37 PM #3 Ultima modificación: Noviembre 20, 2016, 09:21:36 PM por arthusu
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...
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Código: php
foreach($resultado as $key=>$value){
    echo "$key: $value";
}


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Noviembre 21, 2016, 04:40:36 AM #5 Ultima modificación: Noviembre 21, 2016, 05:05:32 AM por Hu3c0
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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 los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Código: php
foreach($resultado as $key=>$value){
    echo "$key: $value";
}


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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 tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Logre resolverlo. asi fue el resultado independientemente de la consulta arroja los resultados.


Código: php
<?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 @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, no entendi bien lo que intentabas hacer pero ya lo veo que bueno que pudiste solucionarlo C:
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Código: php
foreach($resultado as $key=>$value){
    echo "$key: $value";
}


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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