Foros del Web » Programando para Internet » PHP »

Como generar paginas cogiendo datos de la base

Estas en el tema de Como generar paginas cogiendo datos de la base en el foro de PHP en Foros del Web. Buenas amigos les cuento mi problema, El caso es que tengo una pagina en la que muestro mis productos , hago un select y luego ...
  #1 (permalink)  
Antiguo 18/01/2016, 11:59
 
Fecha de Ingreso: abril-2015
Mensajes: 189
Antigüedad: 9 años, 7 meses
Puntos: 14
Como generar paginas cogiendo datos de la base

Buenas amigos les cuento mi problema,

El caso es que tengo una pagina en la que muestro mis productos , hago un select y luego muestro en un div cada producto con un poco de información , obteniendo este resultado para que me entendais.



Vamos un listado de mis productos sencillo, les dejo el codigo.

Código:
<html>
	<head>
	<link rel="stylesheet" type="text/css" href="../css/estiloGeneral.css" />
	<link rel="stylesheet" type="text/css" href="../css/style2.css" />
	<link rel="stylesheet" href="../css/estiloMenu.css" />
	<link rel="stylesheet" type="text/css" href="../css/estiloPoster.css" />
	<link href="../css/movil.css" rel="stylesheet" type="text/css" media="handheld, only screen and (max-device-width: 480px)" />
	<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
	<script src="../script/script.js"></script>
	<script src="../script/modernizr.custom.js"></script>
	<script src="../damper/script.js"></script>
	<link href='http://fonts.googleapis.com/css?family=Roboto+Condensed' rel='stylesheet' type='text/css'>
	<link rel="stylesheet" type="text/css" href="../estilos/demo.css" />
    <link rel="stylesheet" type="text/css" href="../estilos/style_common.css" />
    <link rel="stylesheet" type="text/css" href="../estilos/style1.css" />
	</head>
	<body>
	<?php require_once('../damper/menu.php'); ?>
	<div id="contenido">
	<?php
	  $conx = mysql_connect ("xddd","xddd","xddd");
	  if (!$conx) die ("Error al abrir la base <br/>". mysql_error()); 
	  mysql_select_db("qsb951") OR die("Connection Error to Database");

	$sql="select * from producto where externo_subfam='1' and idioma='EN'";
	$result= mysql_query($sql) or die(mysql_error());
	if(mysql_num_rows($result)==0) die("No hay registros para mostrar");
	echo "<div class='main'>";
				while($row=mysql_fetch_array($result)){
                echo "<div class='view view-first'>";
                    echo "<img src='http://www.tejasa.es/img/productos/$row[imagen_principal]' />";
                    echo "<div class='mask'>";
                        echo "<h2>$row[nombre]</h2>";
                        echo "<p id='textoProd'>$row[descripcion]</p>";
						echo "<p>Carga minima:$row[carga_minima] - Carga maxima:$row[carga_maxima]</p>";
                        echo "<a href='../damper/$row[nombre]' class='info'>Ver hoja de producto</a>";
						//$row[nombre]=str_replace (' ', '-', $row[nombre]);
                    echo "</div>";
                echo "</div>";
				}
            echo "</div>";
	?>
	</div>
	</body>
</html>
Lo que yo quiero es que al darle a hoja de producto al boton , me dirija a una pagina individual de cada producto pero claro no hacer esa pagina 1000 veces para todos los productos sino hacerlo como he hecho esta cogiendo los datos por SQL y que me salga con la URL del nombre del producto , es decir si el producto es balon de futbol y ese es su nombre en la base pues que poniendo en el href="../carpetaenlaqueesta/$row[nombre] me lleve a esa pagina que yo ya tendre creada y se puede llamar productos.php por ejemplo.

Nose si me explico :S , pero hay un paso que me falta para lograr esa redireccion.
  #2 (permalink)  
Antiguo 18/01/2016, 14:07
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: Como generar paginas cogiendo datos de la base

Cuando muestras la lista de los productos usa la id, por ejemplo ponle o un boton a cada producto, o un enlace en la imagen o donde quieras y luego le pasas el id pasas por $_GET y en la página del producto haces una consulta condicionando con la id que le pasas por $_GET
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #3 (permalink)  
Antiguo 19/01/2016, 03:44
 
Fecha de Ingreso: abril-2015
Mensajes: 189
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: Como generar paginas cogiendo datos de la base

Cita:
Iniciado por rodrypaladin Ver Mensaje
Cuando muestras la lista de los productos usa la id, por ejemplo ponle o un boton a cada producto, o un enlace en la imagen o donde quieras y luego le pasas el id pasas por $_GET y en la página del producto haces una consulta condicionando con la id que le pasas por $_GET
Vale muchas gracias!

Voy a echarle un ojo que creo que tengo una idea de como es ahora gracias :D , sino me sale volvere a la carga por aqui XD
  #4 (permalink)  
Antiguo 19/01/2016, 05:53
 
Fecha de Ingreso: abril-2015
Mensajes: 189
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: Como generar paginas cogiendo datos de la base

No consigo sacarlo :S , al menos ya se por donde van los tiros pero no consigo aclararme del todo hace mucho tiempo desde la ultima vez que me puse con esto.

Estoy intentando usar el nombre del producto para enviarlo por la URL y en la otra pagina recogerlo y meterlo en el SELECT pero no lo consigo.

Este es el codigo de las 2 paginas - el listado de productos :

Código:
<html>
	<body>
	<?php require_once('../damper/menu.php'); ?>
	<div id="contenido">
	<?php
	  $conx = mysql_connect ("qsb951.tejasa.es","qsb951","Te1875sil");
	  if (!$conx) die ("Error al abrir la base <br/>". mysql_error()); 
	  mysql_select_db("qsb951") OR die("Connection Error to Database");

	$sql="select * from producto where externo_subfam='1' and idioma='EN'";
	$result= mysql_query($sql) or die(mysql_error());
	if(mysql_num_rows($result)==0) die("No hay registros para mostrar");
	echo "<div class='main'>";
				while($row=mysql_fetch_array($result)){
                echo "<div class='view view-first'>";
                    echo "<img src='http://www.tejasa.es/img/productos/$row[imagen_principal]' />";
                    echo "<div class='mask'>";
                        echo "<h2>$row[nombre]</h2>";
                        echo "<p id='textoProd'>$row[descripcion]</p>";
						echo "<p>Carga minima:$row[carga_minima] - Carga maxima:$row[carga_maxima]</p>";
                        echo "<a href='../damper/productoTest?$row[nombre]' class='info'>Ver hoja de producto</a>";
						//$row[nombre]=str_replace (' ', '-', $row[nombre]);
                    echo "</div>";
                echo "</div>";
				}
            echo "</div>";
	?>
	</div>
	</body>
</html>
Puedo usar $row como uso para sacar los nombres de los productos para enviarlo ?

Y esta es la pagina que sería la individual de cada producto :

Código:
	<body>
	<?php require_once('../damper/menu.php'); ?>
	<div id="contenido">
		<?php
			$_GET[nombre]=$nombre;
			$conx = mysql_connect ("qsb951.tejasa.es","qsb951","Te1875sil");
			  if (!$conx) die ("Error al abrir la base <br/>". mysql_error()); 
			  mysql_select_db("qsb951") OR die("Connection Error to Database");

			$sql="select * from producto where externo_subfam='1' and idioma='EN' and nombre=$nombre";
			$result= mysql_query($sql) or die(mysql_error());
			if(mysql_num_rows($result)==0) die("No hay registros para mostrar");
			
			echo '<div id="catalogo">';
				echo '<div id="titulo">';
					echo '<h2>'.$nombre.'</h2>';
				echo '</div>';
			echo '</div>';
		?>
	</div>
	</body>
</html>
De momento solo con el nombre para ver si me recoge algo.

Alguno me puede dar un empujoncito ?
  #5 (permalink)  
Antiguo 19/01/2016, 17:33
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 11 años, 2 meses
Puntos: 145
Respuesta: Como generar paginas cogiendo datos de la base

Cita:
Iniciado por javy7v Ver Mensaje
Código:
$conx = mysql_connect ("qsb951.tejasa.es","qsb951","Te1875sil");
Gracias, lo tendremos todos muy en cuenta
__________________
¿Te sirvió la respuesta? Deja un +1
  #6 (permalink)  
Antiguo 20/01/2016, 04:05
 
Fecha de Ingreso: abril-2015
Mensajes: 189
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: Como generar paginas cogiendo datos de la base

XDDDDDDDD

Lo triste es que no es la primera vez que me pasa :S , soy muy despistado.

Como se editaban los mensajes ? Y si editas tu tu cita mejor.

Por cierto aun no he sacado esto , iba a ponerme un rato que tengo libre ahora , cualquier ayuda sera bienvenida.
  #7 (permalink)  
Antiguo 20/01/2016, 06:21
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 9 meses
Puntos: 69
Respuesta: Como generar paginas cogiendo datos de la base

No se como tendrás tu bd definida pero asumo que debes tener un campo id para cada producto, usa ese campo para armar la url p ej:

Código PHP:
Ver original
  1. $id = $row [id];
  2. $link = "producto.php?id=". $id;
  3. echo "<a href='{$link}'>link</a>";

Algo así se crearía el link. Y luego en la página producto.php verificas si llega la variable id por get:

Código PHP:
Ver original
  1. If (isset ($_GET ['id']))
  2. {
  3.      Lo que tengas que mostrar del producto desde la BD
  4. }

Más o menos así sería, ajustalo a lo que necesites.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #8 (permalink)  
Antiguo 20/01/2016, 06:46
 
Fecha de Ingreso: abril-2015
Mensajes: 189
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: Como generar paginas cogiendo datos de la base

Cita:
Iniciado por chronos682 Ver Mensaje
No se como tendrás tu bd definida pero asumo que debes tener un campo id para cada producto, usa ese campo para armar la url p ej:

Código PHP:
Ver original
  1. $id = $row [id];
  2. $link = "producto.php?id=". $id;
  3. echo "<a href='{$link}'>link</a>";

Algo así se crearía el link. Y luego en la página producto.php verificas si llega la variable id por get:

Código PHP:
Ver original
  1. If (isset ($_GET ['id']))
  2. {
  3.      Lo que tengas que mostrar del producto desde la BD
  4. }

Más o menos así sería, ajustalo a lo que necesites.
Muchas gracias :D

Lo hare por el ID, creo que me ha quedado mas claro ahora, voy a ver que sale!

EDIT

Ya consigo transportar el ID a la otra pagina por la URL , es un avance pero aun no consigo sacar la info de la base relacionada con ese ID.

Esto es lo que tengo en esa pagina:

Código:
	<div id="contenido">
		<?php
			$_GET[nombre]=$nombre;
			$conx = mysql_connect ("","","");
			  if (!$conx) die ("Error al abrir la base <br/>". mysql_error()); 
			  mysql_select_db("qsb951") OR die("Connection Error to Database");

			/*$sql="select * from producto where externo_subfam='1' and idioma='EN' and nombre=$nombre";
			$result= mysql_query($sql) or die(mysql_error());
			if(mysql_num_rows($result)==0) die("No hay registros para mostrar");*/
			
			if (isset ($_GET ['id_producto']))
			{ 
			$_GET['id_producto']=$idproducto;
			$sql="select * from producto where externo_subfam='1' and idioma='EN' and id_producto=$idproducto";
			$result= mysql_query($sql) or die(mysql_error());
			if(mysql_num_rows($result)==0) die("No hay registros para mostrar");
			
			echo '<div id="catalogo">';
				echo '<div id="titulo">';
					echo '<h2>'.$nombre.'</h2>';
					echo '<p>'.$descripcion.'</p>';
				echo '</div>';
			echo '</div>';
			}
		?>
	</div>
	</body>
</html>
No me salta ningun error ahora pero algo hay mal obviamente XD

Última edición por javy7v; 20/01/2016 a las 07:19

Etiquetas: html, mysql, registro, select, sql
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 14:42.