Foros del Web » Programando para Internet » PHP »

Catálogo de productos, me he estancado

Estas en el tema de Catálogo de productos, me he estancado en el foro de PHP en Foros del Web. Buenas, como estais? Lo primero k kiero es felicitar a el/los webmaster del foro, muy bueno el cambio. Mirad, he creado un script sencillito en ...
  #1 (permalink)  
Antiguo 31/05/2004, 05:03
Avatar de oskitar  
Fecha de Ingreso: junio-2002
Mensajes: 245
Antigüedad: 15 años, 5 meses
Puntos: 1
Catálogo de productos, me he estancado

Buenas, como estais?

Lo primero k kiero es felicitar a el/los webmaster del foro, muy bueno el cambio.

Mirad, he creado un script sencillito en php k conecta a la bd de mi sitio y muestra unos productos. Es este:

www.almeriaempresaria.com/pruebas/catalogo.htm

Si seleccionais cualkier producto, sale una imagen, y una pekeña descripción, más el precio del producto.

Bueno, pues yo kiero, k al pinchar sobre la imagen, salga una ventanita, con una imagen más grande, y una descripción más amplia del producto y algunas cosas más k tengo en la bd. No es javascript y apenas php, y no se como hacerlo. Este es el código k tengo:

<?php
$link = mysql_connect("localhost","user", "pass");

mysql_select_db("bd",$link);

if(!mysql_select_db)
echo "Se conectó con éxito";
else
{
$sql = "SELECT * FROM catalog WHERE tipo = '$tipo' order by nombre";

$result = mysql_query($sql,$link);

if($row=mysql_fetch_array($result))
{
echo "<title>".$row["tipo"]."--Pacman Computers</title><table align=center><tr><td style='border:1px solid red; font-size:12px; font-weight:bold'>".$row["tipo"]."</td></tr><tr height=10><td></td></tr></table>";
do{

echo "<table width=60% border='0'><tr><td rowspan=2><img src='imagenes/".$row["codigo"]. "p.jpg'></td><td class=arriba>" .$row["nombre"]. "</td></tr><tr><td class=arriba2><font color=red>".$row["precio"]. "€</font></td></tr><tr><td height=20></td></tr></table>";

}while($row=mysql_fetch_array($result));
}else{
echo "No se ha encontrado ningún resultado";}}
?>

Ahora me haría falta definir una función o crear un script, k me mostrara, para cada producto, una pekeña ventanita con toda la información, al hacer click en la imagen. Me podríais orientar?

saludos y gracias
  #2 (permalink)  
Antiguo 31/05/2004, 08:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes que abrir tu ventana con javacript tipo:

Código PHP:
window.open('tu_codigo_ver_producto_detalle.php?id_producto='<? echo $row['id_producto'?>,'detalle_producto','propiedades ventana')
pero, ese "javascript" debes lanzarlo en cada botón/link que pongas a cada registro que muestras en tu listado "ver detalle" ante algún evento (onClick() por ejemplo). Es decir, ese código lo usaras en tu bucle while() que ya usas para presentar esos N registros que te arroja tu consulta SQL.

Tu script "ver_producto_detalle.php" le pasarás el valor que de una variable que identifique a ese producto como único .. el típico "id_producto" (identificador único y autonumérico de tu tabla de "productos") para poder hacer una consulta SQL condicional tipo:

Código PHP:
$sql="SELECT * FROM productos WHERE id_producto='".$_GET['id_producto']."'"
y tu resto de lógica para obtener los datos que requieras de ese producto que lo abres en esa ventana.

Un saludo,

Última edición por Cluster; 31/05/2004 a las 08:22
  #3 (permalink)  
Antiguo 31/05/2004, 10:43
Avatar de oskitar  
Fecha de Ingreso: junio-2002
Mensajes: 245
Antigüedad: 15 años, 5 meses
Puntos: 1
buenas,tio, muchas gracias por responder..... eso es exactamente lo k busco, pero no soy capaz de hacerlo funcionar ni entiendo como he de hacerlo

le he metido en el bucle while esto:

<a href='javascript:var w=window.open('tu_codigo_ver_producto_detalle.php? id_producto='<? echo $row['id_producto'] ?>','_blank','scrollbars=yes,resizable=yes,width=6 00,height=400,top=0,left=100');' title='' target='_self'>

y me da este fallo, no me carga sikiera la web:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/virtual/site96/fst/var/www/html/pruebas/basededatos/catalogo.php on line 47


Además, lo de ver_producto_detalle, k es? un script k he de hacer a parte, o tengo k meterlo en ese mismo archivo o.... toy liao... me refiero al script ese k me has dicho k tendría k crear y meterle esto:

$sql="SELECT * FROM productos WHERE id_producto='".$_GET['id_producto']."'";


perdona mi torpeza,tio, apenas se php y de javascript ya ni hablo...

saludos y muchas gracias, a ver si con tu ayuda soy capaz de arreglar esto
  #4 (permalink)  
Antiguo 31/05/2004, 13:24
Avatar de oskitar  
Fecha de Ingreso: junio-2002
Mensajes: 245
Antigüedad: 15 años, 5 meses
Puntos: 1
buenas.............

he arreglado ese fallo de php, pero ahora me da uno de esos de javascript... poniendo esto:

<a href='#' Onclick='window.open('productodetalle.php?id_produ cto='<? echo ".$row['id_producto']." ?>','_blank','scrollbars=yes,resizable=yes,width=6 00,height=400,top=0,left=100');' title='' target='_self'>

sigo investigando

saludos
  #5 (permalink)  
Antiguo 31/05/2004, 13:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Los errores que obtienes son por qué no puedes mezclar comillas simples entre un "entrecomillado" con comillas simples .. El link en sí también estaba mal formado .. Te comenté que el ese "window.open" debes lanzarlo ante un evento .. por ejemplo noClick (si tienes dudas de esto primero aclararas en el foro de Javascript .. luego ya llegará la parte de "PHP").

Código PHP:
<a href="#" onClick="javascript:window.open('ver_producto_detalle.php?id_producto='<? echo $row['id_producto'?>,'_blank','scrollbars=yes,resizable=yes,width=600 ,height=400,top=0,left=100');" title='' target='_self'>ver detalle</a>
Y .. ver_producto_detalle.php es un script que tienes que crear que va a hacer esa consulta SQL a tu BD y va a mostrar ese único registro que (en teoría) debe arrojar tu consulta.

ver_detalle_producto.php

Código PHP:
<?
// conectas a tu BD y seleccionas tu BD a usar (como ya lo haces en tu ejemplo);
// mysql_connect() .. y mysql_select_db() ...

// Consulta SQL
$sql="SELECT * FROM productos WHERE id_producto='".$_GET['id_producto']."'"
// Se ejecuta la consulta SQL.
$resultado=mysql_query($sql) or die(mysql_error());
// se cuentan los registros que arrojó la cosunta SQL ejecutada.
$total=mysql_num_rows($registro);
if (
$total == 1){
    
// si hay resultados ...
    
$registro=mysql_fetch_array($resultado);
    echo 
$registro['nombre'];
    
// etc con el resto de campos de ese registro y resto de HTML que necesites ...
} else {
    
// si no hay resultados ... 
    
echo "ID_producto no válido ... bla blabla";
}
?>
En las FAQ's de este foro PHP (mensaje de los primeros del foro PHP) tienes tutoriales sobre PHP y ejemplos vários .. Te invito a leerlos y así saber y conocer la técnica ..

Un saludo,

Última edición por Cluster; 31/05/2004 a las 13:32
  #6 (permalink)  
Antiguo 31/05/2004, 14:03
Avatar de oskitar  
Fecha de Ingreso: junio-2002
Mensajes: 245
Antigüedad: 15 años, 5 meses
Puntos: 1
buenas,tio,,,, muchísimas graciasssssssssssssssssssssssssssssss.... ya había conseguido k por lo menos se abriera la ventanita.... lo k tu dices, follón total con comillas simples y dobles, k locura..... ya t digo k no se programar, no conozco bien el uso de comillas y todo eso, solo un poco de C k di en el insti y más o menos me entero de algo...

esto es lo k yo pongo para abrir la ventanita:

Código HTML:
<a href=\"javascript:var w=window.open('productodetalle.php?id=".$row['id']."','nardos','scrollbars=yes,resizable=yes,width=600,height=400,top=0,left=100');\" title=\"Detalle del Producto\" target=\"_self\"> 
Ya lo otro si lo comprendía un poco mejor.... aunk ahí has puesto cosas k no entiendo, como esto: $resultado=mysql_query($sql) or die(mysql_error()); , ejeje, y veo k lo usas de forma distinta a la mía(más depurado y eficaz, seguro), pero bueno... ya tengo parte de mi proyecto hecha.... ahora me keda algo k no se si seré capaz de hacer: Sistema de autenticación de users y diversas consultas y movidas para cada uno de ellos.....

saludos y muchas gracias,tio, me miraré los faq´s de php, a ver k tal...


www.almeriaempresaria.com/pruebas/catalogo.htm , ya abre el pop up

thanks

Última edición por oskitar; 31/05/2004 a las 14:10
  #7 (permalink)  
Antiguo 31/05/2004, 16:32
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 14 años, 5 meses
Puntos: 0
un consejo,

Hola, yo utilizo esta funcion en javascript, la podés meter en el mismo documento o en tu carpetas de j´s haciendole un llamado a la función...

function abrirpopup(theURL,winName,features, myWidth, myHeight, isCenter) {
if(window.screen)if(isCenter)if(isCenter=="true"){
var myLeft = (screen.width-myWidth)/2;
var myTop = (screen.height-myHeight)/2;
features+=(features!='')?',':'';
features+=',left='+myLeft+',top='+myTop;
}
window.open(theURL,winName,features+((features!='' )?',':'')+'width='+myWidth+',height='+myHeight);
}


en el HTML lo escribes asi:

<a href="javascript:;abrirpopup('productodetalle.php? id=<?=$row[id]?>','nombre_ventana','status=yes scrollbars=yes','640','400','true')">Clic para ver o colocas una imagen aqui</a>

también puedes ordenar los resultados en una tabla yu le colocas border="0" a la imagen para que no se le vea el borde azul feo
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.

Última edición por andinistas; 31/05/2004 a las 16:34
  #8 (permalink)  
Antiguo 31/05/2004, 18:42
Avatar de oskitar  
Fecha de Ingreso: junio-2002
Mensajes: 245
Antigüedad: 15 años, 5 meses
Puntos: 1
ejeje, si,tio , voy a kitarle ese borde askeroso, antes me kedé satisfecho con conseguir abrir la ventana y se me pasó...

la forma k tu dices de abrir el popup es la k yo siempre he usado, pero como yo lo he hecho ahorras un pokito de código y supongo k pesará menos....

mañana continuaré con el post, k tengo más dudas...

saludos y muchas gracias, de veras
  #9 (permalink)  
Antiguo 01/06/2004, 10:31
Avatar de oskitar  
Fecha de Ingreso: junio-2002
Mensajes: 245
Antigüedad: 15 años, 5 meses
Puntos: 1
buenas de nuevo...

tengo otra duda, y la voy a postear akí, para no petar esto de post.

Mirad, tengo un campo en la bd k es descripción. Pues bueno, al meter los datos, los metí con retorno de carro(salto de línea) y en la bd se kedan así, de puta madre, pero al mostrarlos en la web, salen uno detrás de otro.

Vease akí: http://www.almeriaempresaria.com/pru...talle.php?id=2

lo k yo kiero es k se muestren uno encima del otro, ya k son atributos del producto diferentes y así, todo seguido, kedan muy feos...

saludos y gracias
  #10 (permalink)  
Antiguo 01/06/2004, 12:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Usa la función:

nl2br() aplicada en el momento que obtengas tus datos de tu BD y los presentes en HTML ..

mas info:
www.php.net/nl2br

PD: Intenta publicar cada pregunta -distinta- en un nuevo tema. Y leer las FAQ's de este foro (estaba ahí la solución también).

Un saludo,
  #11 (permalink)  
Antiguo 01/06/2004, 20:08
Avatar de oskitar  
Fecha de Ingreso: junio-2002
Mensajes: 245
Antigüedad: 15 años, 5 meses
Puntos: 1
ok,tio, cojonudo....

Miraré los faqs antes de la siguiente.

Eso es exactamente lo que buscaba.

saludos y gracias, cluster, eres un crack!
  #12 (permalink)  
Antiguo 09/11/2004, 06:44
 
Fecha de Ingreso: abril-2003
Ubicación: 127.0.0.1
Mensajes: 359
Antigüedad: 14 años, 8 meses
Puntos: 0
hola oskitar:

estaba observando tu carrito de productos, pero mi duda es , tu al momento de agregar un producto el codigo se te genera automaticamente o tu lo dijitas en codigo?

si fuese atomatico como lo generas, podrias postear el php como generas el codigo del producto automaticamente.
__________________
Practicando se Aprede
:-) :-)
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:38.