Foros del Web » Programando para Internet » PHP »

Opciones para buscar en una base de datos sin conocer sus campos

Estas en el tema de Opciones para buscar en una base de datos sin conocer sus campos en el foro de PHP en Foros del Web. Buenas, Vereis tengo que rastrear una base de datos de la cual recibo un xml para leer todos sus registros, el tema es que no ...
  #1 (permalink)  
Antiguo 13/05/2018, 13:16
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Opciones para buscar en una base de datos sin conocer sus campos

Buenas,

Vereis tengo que rastrear una base de datos de la cual recibo un xml para leer todos sus registros, el tema es que no conozco apenas los campos de esta, solamente se que hay un campo que guarda los EAN, otro que gruarda los UPC, (Codigos de barras), otro que es un ID de artículo, del cual no conozco como está formado.

Entonces, lo unico que se me ha ocurrido es hacer un código en php que cree códigos de barras aleatorios y haga la petición con este código, de manera que cuando uno coincida tomaré el resto de información de ese articulo y seguir comprobando con mas codigos aleatorios.

No se si puede existir alguna manera de hacer esto más eficiente o directa.

Saludos!
  #2 (permalink)  
Antiguo 13/05/2018, 16:37
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Opciones para buscar en una base de datos sin conocer sus campos

Y porque quieres hacer eso? Si el acceso es mediante un api te sugiero que lo hables con el proveedor de ese servicio porque me parece que estas intentando hacer algo que no ed legal
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 14/05/2018, 03:37
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Opciones para buscar en una base de datos sin conocer sus campos

Buenas hhs,

El acceso es mediante una api, y está permitido para eso está la api, pero yo quiero automatizar en lugar de hacer una petición manual y después otra, de esta manera podría hacerlo más rápido. No veo donde puede estar lo no permitido, cuando estas usando una api que es para este cometido. Y en el caso en el que no estuviese permitido hacer la petición automática seguro lo indicarian, la unica restricción es que las peticiones deben ser una por segundo.

Por otro lado, se que tienen el campo EAN por que ellos en su api lo indican al igual que el número de artículo y UPC, y nos dan el nombre de estos campos para que se hagan busquedas por ellos, ademas de muchos otros más, título, precio etc.

Lo que intento es no tener que meter a mano el EAN de cada artículo manualmente.

Saludos!

Última edición por franjgg; 14/05/2018 a las 03:50
  #4 (permalink)  
Antiguo 14/05/2018, 04:07
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Opciones para buscar en una base de datos de forma automatica

Reformulando la pregunta seria: Como automatizar la busqueda por EAN
  #5 (permalink)  
Antiguo 14/05/2018, 05:57
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 5 meses
Puntos: 32
Respuesta: Opciones para buscar en una base de datos sin conocer sus campos

No si esto te puede servir

Con este código, te hará un recorrido de todas la tablas y campos de la base de datos.

Saludos.

Código PHP:
                        
<?php
$sql_tablas
="SHOW TABLES";
$result_tablas=mysqli_query($link,$sql_tablas);
while (
$row_tablas=mysqli_fetch_array($result_tablas))
    {
        echo 
$nombre_tabla=$row_tabla[0];

        
$sql="SELECT * FROM $row_tablas[0]";
        
$result=mysqli_query($link,$sql);
        while (
$row=mysqli_fetch_array($result))
            {
                
$sql_campo="SHOW COLUMNS FROM $row_tablas[0];";
                
$result_campo=mysqli_query($link,$sql_campo);
                
$cuanto_campo=mysqli_num_rows($result_campo);
                while (
$row_campo=mysqli_fetch_array($result_campo))
                    {
                        echo 
$nombre_campo=$row_campo[0];
                        echo 
$contenido_campo=$row[$nombre_campo];
                    }
            }
    }
?>
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #6 (permalink)  
Antiguo 14/05/2018, 08:56
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Opciones para buscar en una base de datos sin conocer sus campos

Buenas gogupe,

Verás creo que no me serviria por que no puedo hacer consultas directamente a la base de datos, solo hacer peticiones mediate REST, y recibo un archivo XML con los datos.

Yo solicito la información de un artículo mediante ID(no es correlativo sino compuesto de letras y números), EAN o cualquier otro parámetro, pero claro al ser una BBDD tan grande pasaría años para poder tener la información de cada artículo, entonces lo unico que se me ocurre es hacer peticiones con EAN aleatorios y comprobar que ese EAN no lo he comprobado antes.

La cosa esta en conocen algún buen código php paquete o similar que cree, codigos EAN ?

Gracias amigo, saludos!
  #7 (permalink)  
Antiguo 15/05/2018, 12:16
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 2 meses
Puntos: 27
Respuesta: Opciones para buscar en una base de datos sin conocer sus campos

lo que tienes es un REST que consulta parametros pero como no sabes cuales son los codigos que existe en la base de datos, vas lanzando consultas para determinar cuales si existen.

si necesitas saber todos los codigos (en tu caso seria EAN), entonces debes pedirles que te provean de un XML que te pase en bruto todo o por rango de fechas o por cantidad.
__________________
Asunción Paraguay
Licenciado - Desarrollador Web - Lider de Proyecto/Desarrollador Banco Local
Espacio Geek - Comunidad Tecnologica
  #8 (permalink)  
Antiguo 16/05/2018, 11:15
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Opciones para buscar en una base de datos sin conocer sus campos

Aparte que la acción de generar códigos sin saber si existen y estar probando uno a uno a ver si por casualidad existe, puede ser considerado como un ataque y sobre cargar el sitio a donde haces las peticiones.

Yo te banearia, quitaría el acceso, o algún tipo de penalización... como bien te dicen lo mejor es pedir un listado de códigos.

Etiquetas: campos, conocer, opciones
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 06:37.