Foros del Web » Programando para Internet » PHP »

Problema con dos consultas!!!

Estas en el tema de Problema con dos consultas!!! en el foro de PHP en Foros del Web. A ver si me sé explicar. Tengo una página que con php voy a hacer que cargue unos datos en una zona de la página ...
  #1 (permalink)  
Antiguo 30/12/2006, 17:35
 
Fecha de Ingreso: diciembre-2006
Mensajes: 111
Antigüedad: 17 años, 4 meses
Puntos: 1
Problema con dos consultas!!!

A ver si me sé explicar.
Tengo una página que con php voy a hacer que cargue unos datos en una zona de la página y en otra zona quiero que cargue otros datos pero los datos los obtengo con dos selcts diferentes, not iene nada que ver la una con la otra. Habí pensado hacer una conexion, mostrar los datos, cerar la conexion y abrir la otra conexion y lo mismo pero no puedo hacerlo asi ya que la segunda conexion es la que crea la paginacion y no se cierra hast ale final de la pagina y en medio de todo esto tendría que hacer otra select y cargar un par de datos en una esquina de la página. Se puede hacer algo asi?? Perdonar pero soy novata, llevo dos horas dándole vueltas y no caigo como hacerlo, lo unico que se me ocurre es meterlo todo en la misma tabla pero entonces repetiría datos para parar un carro.
Espero vuestra ayuda

Gracias

Un saludo

Alejandra
  #2 (permalink)  
Antiguo 30/12/2006, 21:26
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Problema con dos consultas!!!

Movido a PHP.

Por favor lee la Función de la sección de Base de Datos.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 30/12/2006, 22:12
 
Fecha de Ingreso: diciembre-2006
Mensajes: 111
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Problema con dos consultas!!!

Por qué me recomiendas que lo lea?
  #4 (permalink)  
Antiguo 31/12/2006, 01:52
Avatar de MoDoRrO  
Fecha de Ingreso: septiembre-2005
Ubicación: Php+Flash+AS
Mensajes: 1.072
Antigüedad: 18 años, 7 meses
Puntos: 12
De acuerdo Re: Problema con dos consultas!!!

haber... no te entiendo, deja expongo lo ke kiza pueda ser...
tengo dos BDS, una de clientes y una de productos
kiero elegir un cliente, y al mismo tiempo, desplegar los productos comprados por ese cliente
ya que cada tabla (clientes y productos) tienen varios registros (hay muchos clientes, y cada cliente ah comprado varios productos) deseo extraer solo los productos de un solo cliente, entonces hago esto:
mis tablas contienen:
CLIENTES: ID,NOMBRE,EDAD
PRODUCTOS: ID,CID,PRODUCTO,PRECIO
explico:
Clientes: tiene el ID unico (primario,autoincrementario), Nombre del cliente, y la edad del cliente
Productos:tiene el ID unico(primario,autoincrementario), CID (referencia de producto-cliente),Nombre del producto y Precio
entonces, hago mis Consultas:
Código PHP:
$cliente="Miguel Marquez";
$consulta=mysql_query("SELECT * FROM clientes WHERE nombre='$cliente' LIMIT 1",$conexion);
$row=mysql_fetch_array($consulta);
$resultado=mysql_query("SELECT * FROM productos WHERE CID='$row[ID]' ORDER by ID DESC",$conexion);

echo
"<b>Nombre del Cliente:</b> $row[nombre]<br>";
echo
"<b>Edad del Cliente: </b> $row[edad]<br>";
echo
"<b>Productos en el Carrito de Compras:</b><br><br>";
$i=1;
while(
$rew=mysql_fetch_array($resultado)){
echo
"$i: $rew[producto] ~ $$row[precio] <br>";
$i++;
}
mysql_free_result($resultado);
mysql_free_result($consulta); 
asi te entendi yo, corrigeme si me ekivoko.
Saludos!
  #5 (permalink)  
Antiguo 31/12/2006, 01:54
Avatar de MoDoRrO  
Fecha de Ingreso: septiembre-2005
Ubicación: Php+Flash+AS
Mensajes: 1.072
Antigüedad: 18 años, 7 meses
Puntos: 12
Re: Problema con dos consultas!!!

a kabron! yo no meti mi respuesta en este post :S ke paso???
  #6 (permalink)  
Antiguo 31/12/2006, 13:30
 
Fecha de Ingreso: diciembre-2006
Mensajes: 111
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Problema con dos consultas!!!

Gracias por la aclaración Modrro, pero no es eso, eso ya sé hacerlo, por eso mi pregunta, intentaré explicarme.
Tengo dos tablas, productos y secciones.
Productos= cod_prod(codigo producto, clave primaria,unico y autoincremental), nombre, imagen, precio
Secciones= cod_seccion(codigo de seccion, clave primaria, unico y autoincremental), nombre, descripcion
Codigo_total=Cod_seccion (foreign key), cod_prod(foreign key), cod_talla (foreign key), cod_color (foreign key), todo es una primary, numero único para cada articulo con una tala y color.

Tengo una página que cuando le das a camas pasa la cariable $id=CAM, que es el cod_seccion de camas y tiene que mostrar todos los productos que sean camas, entonces lo que quiero, es que muestre el nombre de la seccion en la cabecera, con su descripcion y debajo una tabla con los productos, lo que hago es lo siguiente:

SELECT * FROM secciones where cod_seccion='$id', para que muestre los datos de la seccion y luego
select * from productos inner join codigo_total on productos.cod_prod=codigo_total.cod_prod where codigo_total.cod_seccion='$id', parta que cree una tabla con las camas.

No sé si me explico, estoy haciendo dos consultas a dos tablas que entre ellas no están unidas y megustaría saber como lo harías vosotros, yo lo he hecho y funciona pero no se yo.... Os voy a pegar el codigo y me decís que os parece, es muylaro asi que omito el html.


$id=$HTTP_GET_VARS["id"];

$conn = mysql_connect("localhost","root","")
or die ('Lo sentimos, no se pudo establecer la conexi&oacute;n');
mysql_select_db("hasiandasha",$conn)
or die ('Lo sentimos, no se pudo establecer la conexi&oacute;n');

$ssql = "SELECT * FROM secciones where cod_seccion='$id'";

$resultid = mysql_query($ssql,$conn)

or die ("Fallo en la consulta");

$num_filas = 0;
while ($damefila=mysql_fetch_object($resultid))
{
echo strip_tags($damefila->nom_seccion_es);
echo strip_tags($damefila->texto_es);

$criterio = "";
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
$criterio = "where cod_seccion='$id'" . $txt_criterio;
}

//Limito la busqueda
$TAMANO_PAGINA = 10;

//examino la página a mostrar y el inicio del registro a mostrar
$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
}
else {
$inicio = ($pagina - 1) * $TAMANO_PAGINA;
}

//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql = "select * from productos inner join codigo_total on productos.cod_prod=codigo_total.cod_prod
where codigo_total.cod_seccion='$id'";

$rs = mysql_query($ssql,$conn)
or die ("Fallo en la consulta");
$num_total_registros = mysql_num_rows($rs);
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);

echo "P&aacute;gina " . $pagina . " de " . $total_paginas ." encontradas";
if(($pagina - 1) > 0) {
echo "<a href='seccion.php?id=".$id."&pagina=".($pagina-1)."&criterio=" . $txt_criterio . "'><< Anterior</a> ";
} ?>
&nbsp; &nbsp; &nbsp; &nbsp;
<? //muestra el enlace a la pagina siguiente
if(($pagina + 1)<=$total_paginas) {
echo "<a href='seccion.php?id=".$id."&pagina=" .($pagina+1) . "&criterio=" . $txt_criterio . "'>Siguiente >></a>";
}

$ssql = "select * from productos inner join codigo_total on productos.cod_prod=codigo_total.cod_prod
where codigo_total.cod_seccion='$id'" . $criterio . " limit " . $inicio . "," . $TAMANO_PAGINA;
//Variable que guarda el resultado de la consulta realizada.
$rs = mysql_query($ssql)
or die ("Fallo en la consulta");

if ($total_paginas>0) {
$num_lineas=0;
while ($linea = mysql_fetch_object($rs)){
echo $linea->cod_prod;
echo $linea->nombre_es;
$num_filas++;
}
}
else{echo "No hay productos en esta categor&iacute;a";}
if ($total_paginas > 1){
for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i)
//si muestro el índice de la página actual, no coloco enlace
echo $pagina . " ";
else
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
echo "<a href='seccion.php?id=".$id."&pagina=" . $i . "&criterio=" . $txt_criterio . "'>" . $i . "</a> ";
}
}
$num_filas++;
}

//cerramos el conjunto de resultados y la conexión con la base de datos
mysql_free_result($rs);
mysql_free_result($resultid);
mysql_close($conn);
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 10:00.