Foros del Web » Programando para Internet » PHP »

Mostrar datos al azar de MYSQL

Estas en el tema de Mostrar datos al azar de MYSQL en el foro de PHP en Foros del Web. Pues veran tengo una pagina donde manejos Productos nose si lo que hice fue lo mejor les contare... tengo que mostrar caracteristicas de productos (aires, ...
  #1 (permalink)  
Antiguo 12/01/2012, 14:33
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Mostrar datos al azar de MYSQL

Pues veran tengo una pagina donde manejos Productos nose si lo que hice fue lo mejor les contare...

tengo que mostrar caracteristicas de productos (aires, lavadoras, muebles, neveras, etc)

como todos sabemos hay caracteristicas que son diferentes, por ejemplo entre MUEBLES (tipo de tela, colo de tela, tipo de madera, colo de madera) y una PC (marca, modelo, procesador, memoria, disco)

para resolver eso cree una tabla para cada tipo de producto con los campos que son particulares para cada uno de ellos..

ahora debo de mostrar esos productos y sus caracteristicas... como hago en el php para no pedir campos concretos (en el select), si no a medida que encuentre campos los muestre?

nose si lo que hice esta bien o hay una mejor forma de resolver el problema que tengo, podrian ayudarme?
  #2 (permalink)  
Antiguo 12/01/2012, 17:17
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar datos al azar de MYSQL

especifica mejor que deseas mostrar y como pon un ejemplo , segun te as explicado kieres mostrar todo en cuanto lo valla encontrando es asi osea toda la tabla completa o como explicate
  #3 (permalink)  
Antiguo 13/01/2012, 09:52
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Mostrar datos al azar de MYSQL

tengo que mostrar unos productos con sus caracteristicas para su venta, pero todo sabemos que no todos los productos manejan las mismas caracteristicas. y como todo trabaja con una base de datos como los muestro???

Nose si me estoy explicando.
  #4 (permalink)  
Antiguo 13/01/2012, 10:26
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar datos al azar de MYSQL

plo mejor que puedes hacer es decir la estructura de las tablas y que datos deseas mostrar para poder ayudarte
  #5 (permalink)  
Antiguo 13/01/2012, 12:23
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Mostrar datos al azar de MYSQL

ok tengo la tabla productos_computadoras:
DROP TABLE IF EXISTS `jego`.`productos_computadoras`;
CREATE TABLE `jego`.`productos_computadoras` (
`computadorasid` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
`productoid` int(10) unsigned zerofill NOT NULL,
`marca` varchar(50) NOT NULL,
`modelo` varchar(50) NOT NULL,
`procesador` varchar(50) NOT NULL,
`memoria` varchar(50) NOT NULL,
`disco` varchar(50) NOT NULL,
`video` varchar(50) NOT NULL,
`tipo` varchar(50) NOT NULL,
PRIMARY KEY (`computadorasid`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;}

tabla camaras:

DROP TABLE IF EXISTS `jego`.`productos_camara`;
CREATE TABLE `jego`.`productos_camara` (
`camaraid` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
`productoid` int(10) unsigned zerofill NOT NULL,
`marca` varchar(50) NOT NULL,
`modelo` varchar(50) NOT NULL,
`mp` varchar(50) NOT NULL,
`color` varchar(50) NOT NULL,
PRIMARY KEY (`camaraid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

entonces ambas tablas tienen diferentes campos como hago en el php para mostrar esos campos (teniendo en cuenta qno son los mismos) deberia de crear un php para cada tabla?
  #6 (permalink)  
Antiguo 13/01/2012, 12:30
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar datos al azar de MYSQL

pero sigues sin decir que datos deseas mostrar por ejemplo

deseas mostrar todo de ambas tablas?
  #7 (permalink)  
Antiguo 13/01/2012, 12:33
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Mostrar datos al azar de MYSQL

sip. hay otras tablas con otras estrucutras pero puse 2 por ejemplo...
  #8 (permalink)  
Antiguo 13/01/2012, 12:38
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar datos al azar de MYSQL

mysql_query("SELECT * FROM (productos_computadoras UNION productos_camara),") or die (mysql_error());

asi seleccionas todo de ambas tablas
  #9 (permalink)  
Antiguo 13/01/2012, 12:44
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Mostrar datos al azar de MYSQL

pero te explico estoy haciendo la paginas para mostrar productos, si selecciono una PC quiero que la pagina me deslogue todas las caracteristicas que poseen las computadoras para ello cree esa tabla, si selecciona una camara, que muestre los datos que hay en la tabla de camaras, y asi sucesivamente.

Originalmente yo tenia una sola tabla para todos los productos, pero por ejemplo los MUEBLES (MESAS SILLAS SILLONES SOFAS) no les aplica marca modelo, peso, accesorios... si no otras caracteristicas, por eso me surgio esta duda...
  #10 (permalink)  
Antiguo 13/01/2012, 12:50
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar datos al azar de MYSQL

x eso te e estado preguntando que querias mostrar y te e dixo todo y me as dixo si

pues crea una consulta por tabla
  #11 (permalink)  
Antiguo 13/01/2012, 12:52
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Respuesta: Mostrar datos al azar de MYSQL

Si te he entendido, debes hacer una consulta select normalita, relacionando las dos tablas y pasando como condicion el producto, es decir

SELECT * FROM LAS DOS TABLAS UNIDAS where PRODUCTO=$producto

La variable $producto te vendrá por $_GET o $_POST, depende de como lo hagas.

Un saludo.
  #12 (permalink)  
Antiguo 13/01/2012, 13:31
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 14 años
Puntos: 55
Respuesta: Mostrar datos al azar de MYSQL

Yo tuve que hacer algo igual y lo solucione usando una sola tabla, le creas todos los campos necesarios para todos los productos y segun el producto, los llenas o los dejas en blanco luego puse un if para ver si el campo estaba lleno, si no, no lo mostraba

while($ver=mysql_fetch_object($result)){
$modelo=$ver->modelo;
if($modelo){echo"<u>Modelo:</u><br/>$modelo<br/>";}
  #13 (permalink)  
Antiguo 13/01/2012, 13:32
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Respuesta: Mostrar datos al azar de MYSQL

Si, pero como estemos hablando de muchos registros puedes tener problemas
  #14 (permalink)  
Antiguo 13/01/2012, 14:52
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Mostrar datos al azar de MYSQL

Cita:
Iniciado por waldragon Ver Mensaje
Yo tuve que hacer algo igual y lo solucione usando una sola tabla, le creas todos los campos necesarios para todos los productos y segun el producto, los llenas o los dejas en blanco luego puse un if para ver si el campo estaba lleno, si no, no lo mostraba

while($ver=mysql_fetch_object($result)){
$modelo=$ver->modelo;
if($modelo){echo"<u>Modelo:</u><br/>$modelo<br/>";}
Eso lo pense yo pero tener una tabla con todos esos campos me parece muy frustrante

Cita:
Iniciado por AitorLopez Ver Mensaje
Si, pero como estemos hablando de muchos registros puedes tener problemas
Alguna sugerencia?
  #15 (permalink)  
Antiguo 13/01/2012, 15:52
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Respuesta: Mostrar datos al azar de MYSQL

Cita:
Iniciado por JuJoGuAl Ver Mensaje
Eso lo pense yo pero tener una tabla con todos esos campos me parece muy frustrante



Alguna sugerencia?
Desde luego, a la solución que habeis propuesto, ni loco. Ya te propuse una unos post mas atras, pero claro, hay que estudiar y documentarte para poder ponerla en practica.

Un saludo.
  #16 (permalink)  
Antiguo 13/01/2012, 23:23
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 14 años
Puntos: 55
Respuesta: Mostrar datos al azar de MYSQL

OK, aunque defiendo mi propuesta porque hay campos que se repetiran en muchos productos, como color, modelo, marca, id_producto , etc....

.....lo que propone aitorlopez tiene sentido, ojala tengas suerte, saludos.
  #17 (permalink)  
Antiguo 14/01/2012, 07:27
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Mostrar datos al azar de MYSQL

Cita:
Iniciado por AitorLopez Ver Mensaje
Desde luego, a la solución que habeis propuesto, ni loco. Ya te propuse una unos post mas atras, pero claro, hay que estudiar y documentarte para poder ponerla en practica.

Un saludo.
pos el problema no es que son 2 tablas si no como 8 y aun no termino de definirlas... eso no seria muy pesado hacer una consulta que jale tantos campos?

Cita:
Iniciado por waldragon Ver Mensaje
OK, aunque defiendo mi propuesta porque hay campos que se repetiran en muchos productos, como color, modelo, marca, id_producto , etc....

.....lo que propone aitorlopez tiene sentido, ojala tengas suerte, saludos.
tu propuesta es aceptable para mi solo que no quiero crear una tabla con todas las opciones :S
  #18 (permalink)  
Antiguo 14/01/2012, 12:27
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar datos al azar de MYSQL

esta bien echo con 8 tablas o las que quiereas si lo que kieres es que al pulsar en pc aparezcan los datos del pc si pulsas en camara pues igual

asi segun lo quiEres yo aria una consulta x tabla selecionando todo para hacerlas mas rapido osea

SELECT *

la cuestion es que muestras todo en la misma pagina? o cada producto su pagina o como? al pulsar en pc mandas a otra pagina para ver el producto o como xq esto es importante
  #19 (permalink)  
Antiguo 14/01/2012, 14:46
Avatar de Chico3001  
Fecha de Ingreso: septiembre-2011
Ubicación: Mexico, DF
Mensajes: 112
Antigüedad: 12 años, 7 meses
Puntos: 12
Respuesta: Mostrar datos al azar de MYSQL

Mi sugerencia:

Genera varios numeros aleatorios en php que cubran el rango de numero de datos en la tablas que quieres buscar, despues esos numeros generados los usas como ID y con algunos select obtienes los datos

Asi no pones a SQL a trabajar en toda las tablas y obtienes los datos al azar..
  #20 (permalink)  
Antiguo 16/01/2012, 07:26
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Mostrar datos al azar de MYSQL

Cita:
Iniciado por webankenovi Ver Mensaje
esta bien echo con 8 tablas o las que quiereas si lo que kieres es que al pulsar en pc aparezcan los datos del pc si pulsas en camara pues igual

asi segun lo quiEres yo aria una consulta x tabla selecionando todo para hacerlas mas rapido osea

SELECT *

la cuestion es que muestras todo en la misma pagina? o cada producto su pagina o como? al pulsar en pc mandas a otra pagina para ver el producto o como xq esto es importante
ok esa fue mi idea originalmente, pero como hago para el php? creo uno por cada tipo de producto? porque no se como hago que un solo archivo php procese n cantidad de columnas (tomando en cuenta q no todos los productos poseen las mimas caracteristicas.)

Cita:
Iniciado por Chico3001 Ver Mensaje
Mi sugerencia:

Genera varios numeros aleatorios en php que cubran el rango de numero de datos en la tablas que quieres buscar, despues esos numeros generados los usas como ID y con algunos select obtienes los datos

Asi no pones a SQL a trabajar en toda las tablas y obtienes los datos al azar..
  #21 (permalink)  
Antiguo 16/01/2012, 10:41
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar datos al azar de MYSQL

vale yo lo haria asi un archivo para procesar todas las consultas o un include en todas las paginas eso ya como tu veas

ejemplo

Código PHP:
Ver original
  1. <a href="verificar.php?producto=camara&id=aki iria la id del producto a mostrar">camara</a>
  2.  
  3. todos los links los pasas a esa pagina y procesas con get
  4.  
  5. y en verificar
  6.  
  7. haces
  8.  
  9. if(isset($_GET)){
  10.  
  11. if($_GET == 'camara'){
  12.  
  13. hacemos la consulta y mostramos o lo que kieras o verificamos mas cosas
  14.  
  15. }elseif($_GET == 'pc'){
  16.  
  17. hacemos la consulta y mostramos o lo que kieras o verificamos mas cosas
  18.  
  19. }
  20.  
  21.  
  22.  
  23.  
  24.  
  25. }else{
  26.  
  27. echo 'no hay producto';
  28.  
  29. }

esto es lo que mejor te va a funcionar yo creo segun lo kieres tambien se puede hacer en la misma pagina eso ya como tu prefieras
  #22 (permalink)  
Antiguo 16/01/2012, 10:45
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Mostrar datos al azar de MYSQL

y segun el id o el tipo de producto mandaro a un archivo php donde muestre sus datos? osea que debo de crear una hoja en php por cada tabla que hice (por cada tipo de producto) ? es loq ue voy entendiendote y es la idae que seme habia ocurrido...
  #23 (permalink)  
Antiguo 16/01/2012, 10:47
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar datos al azar de MYSQL

no no una hoja para todas de ay las verificaciones para ver que producto es seleccionado y ejecutar su consulta tambien puede ser en el mismo archivo no tiene xq ser otro diferente pero yo lo prefiero en otro solo para eso y lo incluyes dnd desees mostrarlo
  #24 (permalink)  
Antiguo 16/01/2012, 10:50
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar datos al azar de MYSQL

por ejemplo un index yo lo aria asi

<?php
include'verificar.php';// aki todo el proceso que te e comentado

echo'<a href="'.$_SERVER['PHP_SELF'] .'?producto=camara&id=4">producto</a>';

en la misma pagina te funcionaria asi sin necesidad de enviar a otra eso si se recargaria la pagina, detecta que existe get y verifica y ya aces lo que kieras dentro de su if

y en el include esto

if(isset($_GET)){

if($_GET == 'camara'){

hacemos la consulta y mostramos o lo que kieras o verificamos mas cosas

}elseif($_GET == 'pc'){

hacemos la consulta y mostramos o lo que kieras o verificamos mas cosas

}





}else{

echo 'no hay producto';

}
  #25 (permalink)  
Antiguo 16/01/2012, 10:54
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Mostrar datos al azar de MYSQL

si eso entiendo osea segun el tipo hago la consulta pero por ejemplo yo tengo un panel donde muestro las caracteristicas principales y la verdad no es muy grande entonces si el prodcuto es una pc. obviamente dicho panel queda completamente lleno, pero si es una cama, queda mucho espacio libre..

por otra parte me confundo con el tema de las etiquetas:

PRODUCTO: echo $producto...

Pero como llamo las caracteristicas porque como te dije una pc tiene MARCA MODELO PROCESADOR. y una cama tiene TIPO DE MADERA, TAMAÑO DE LA CAMA. COLOR DE LA MADERA.

entonces como creo las etiquetas que cambien segun el dato que van a mostrar?
  #26 (permalink)  
Antiguo 16/01/2012, 11:01
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar datos al azar de MYSQL

asi deberia de ser

Código PHP:
Ver original
  1. <?php
  2.  
  3. if(isset($_GET['producto']) && isset($_GET['id'])){
  4.    
  5.     $id_producto = $_GET['id'];
  6.  
  7. if($_GET['producto'] == 'camara'){
  8.  
  9. $query = "SELECT * FROM camaras WHERE $id = '$id_producto'";
  10. $_query = mysql_query($query);
  11. $resultados = mysql_fetch_array($_query);
  12.  
  13. echo $resultados['modelo'];// asi muestras las caracteristicas cambiando modelo por el campo que tu desees
  14.  
  15.  
  16. }elseif($_GET['producto'] == 'pc'){
  17.  
  18.  
  19. $query = "SELECT * FROM pc WHERE $id = '$id_producto'";
  20. $_query = mysql_query($query);
  21. $resultados = mysql_fetch_array($_query);
  22.  
  23. echo $resultados['modelo'];
  24.  
  25.  
  26. }}else{
  27.  
  28. echo 'no hay producto';
  29.  
  30. }
  31.  
  32. echo'<a href="'.$_SERVER['PHP_SELF'].'?producto=camara&id=4">producto</a>';?>

Última edición por webankenovi; 16/01/2012 a las 11:16

Etiquetas: mysql, tabla
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 19:36.