Foros del Web » Programando para Internet » PHP »

Crear una Funcion para Consultas

Estas en el tema de Crear una Funcion para Consultas en el foro de PHP en Foros del Web. hola todos... estoy tratando de armar una funcion que me devuelva los datos de una consulta sql sin importar la tabla que sea... es decir ...
  #1 (permalink)  
Antiguo 12/06/2008, 09:55
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Exclamación Crear una Funcion para Consultas

hola todos... estoy tratando de armar una funcion que me devuelva los datos de una consulta sql sin importar la tabla que sea...

es decir

si tengo una consulta sql en la variable $sql.

quiero crear una consulta de tipo

function consulta($sql) {
$query=mysql_query($sql);
while ($array=mysql_fetch_array($query)) {
//aqui resultados del array.....
}
}

La idea es que queden ordenados en una tabla y poder aplicarle un diseño general... esto sin importar cual sea la consulta SQl...

Esto se puede, es factible, me dan una ayudita con el tema... gracias.....
  #2 (permalink)  
Antiguo 12/06/2008, 10:52
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Crear una Funcion para Consultas

mire pues yo de usted haria esto

Código PHP:
function consulta($sql,$estilo1,$estilo2) {
$query=mysql_query($sql);
$cantidad mysql_num_rows($query);
if (
$cantidad 0)
  {
     echo 
"<table>";
      while (
$array=mysql_fetch_array($query)) {
          echo 
"<tr><td class='$estilo1'>$array['codusuario']</td><td class='$estilo2'>$array['nomusuario'] </td></tr>"
      }
        echo 
"</table>";
  }
  else
      echo 
"No se encontraron registros";
mysql_free_result($query);
}
// Aca hace el llamado a la funcion
consulta("select * from usuarios order by codusuario asc","codigos","contenidos"); 
  #3 (permalink)  
Antiguo 12/06/2008, 10:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Crear una Funcion para Consultas

Hola cmarrero,

Si es posible, pero define bien lo que quieres hacer ya que tu quieres una función que haga dos cosas, mejor primero define bien cual es el propósito de tu función y luego implementala.

Saludos.
  #4 (permalink)  
Antiguo 12/06/2008, 11:32
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Exclamación Respuesta: Crear una Funcion para Consultas

lo que quiero hacer ahora, es solo mostrar los datos de una consulta cualquiera que sea ordenada en una tabla, sin importar los campos y todo eso...

el problema es que yo estoy acostumbrado a imprimir los resultados llamando al campo dentre de un while... pero como hacer en caso de no saber el nombre del campo ya que la consulta puede ser cualquiera...

Me pasaron lo siguiente y yo lo modifique a mi gusto... :

Código PHP:
function consulta($sql) { 
    
$query=mysql_query($sql); 
    
$cantidad mysql_num_rows($query); 
    if (
$cantidad 0) { 
        echo 
"<table>"
        while (
$array=mysql_fetch_array($query)) { 
            echo 
"<tr><td></td><td>".$array[0]." </td></tr>"
            } 
            echo 
"</table>"
        } else {
        echo 
"No se encontraron registros"
        } 

Ahora como modifico esto, para que en vez de poner $array[CAMPO] me traiga todo los datos ordenados sin importar la cantidad de datos, los nombres de los campos, etc...

Ayuda plisss
  #5 (permalink)  
Antiguo 12/06/2008, 11:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Crear una Funcion para Consultas

Prueba así:
Código PHP:
function consulta($sql) { 
    
$query=mysql_query($sql); 
    
$cantidad mysql_num_rows($query); 
    if (
$cantidad 0) { 
        echo 
"<table>"
        while (
$array=mysql_fetch_row($query)) { 
            foreach(
$array as $campo ) {
                        echo 
"<tr><td></td><td>".$campo." </td></tr>"
                 }
            } 
            echo 
"</table>"
        } else {
        echo 
"No se encontraron registros"
        } 

Saludos.
  #6 (permalink)  
Antiguo 12/06/2008, 12:23
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Exclamación Respuesta: Crear una Funcion para Consultas

Gracias... me quedo asi al final

Código PHP:
function consulta($sql) { 
    
$query=mysql_query($sql); 
    
$cantidad mysql_num_rows($query); 
    if (
$cantidad 0) { 
        echo 
"<table>"
            while (
$array=mysql_fetch_row($query)) { 
            foreach(
$array as $campo ) { 
                    echo 
"<tr><td>".$campo."</tr></td>"
                    } 
                } 
            echo 
"</table>"
        } else { 
            echo 
"No se encontraron registros"
        } 
    } 
Ahora... estube haciendo pruebas con diferentes modos... tambien se puede hacer contando con mysql_num_fields la cnatidad de campos y hacer un for con eso...

Bien.. ya muestro los resultados, pero como le aplico estilo a mi gusto, es decir, quiero separar y poner los titulos a cada columna...

Gracias
  #7 (permalink)  
Antiguo 12/06/2008, 13:49
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
De acuerdo Respuesta: Crear una Funcion para Consultas

AL FINAL LO PUDE HACER DE LA SIGUIENTE MANERA


archivo consultas.php

Código PHP:
$sql=""//aqui consulta a la BD

function consulta($sql,$cabecera) { 
    
$query=mysql_query($sql); 
    
$cantidad mysql_num_rows($query); 
    
$campos=mysql_num_fields($query);
    if (
$cantidad 0) { 
        echo 
"<table align=center>";
                echo 
"<tr>";
                    for (
$i 0$i $campos$i++) {
                        echo 
"<td>";
                        echo 
$cabecera[$i];
                        }
                echo 
"<td>";
                echo 
"</tr>";
            while (
$array=mysql_fetch_array($query)) { 
                echo 
"<tr>";
                    for (
$i 0$i $campos$i++) {
                        echo 
"<td>";
                        echo 
$array[mysql_field_name($query$i)];
                        }
                echo 
"<td>";
                echo 
"</tr>";
            }
        echo 
"</table>"
        } else {
        echo 
"No se encontraron registros"
        } 

Y LLAMO A LA FUNCION DE LA SIGUINETE MANERA....

Archivo listado.php

Código PHP:

include("conexion.php");
include(
"consultas.php");

$cabecera = array ("id","Nº Inventario","Marca","Modelo","Nº Serie","Dependencia");

conectar();

consulta($sql,$cabecera);

desconectar(); 
Gracias a todos por la ayuda....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:41.