Foros del Web » Programando para Internet » PHP »

mostrar en pantalla

Estas en el tema de mostrar en pantalla en el foro de PHP en Foros del Web. si en mi base de datos tengo dos campos relacionados con un identificador por ejemplo asin: id_contador campo1 campo2 ---------------------------------------------------------- 1 titulo texto ----------------------------------------------------------- yo ...
  #1 (permalink)  
Antiguo 11/05/2011, 17:29
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
mostrar en pantalla

si en mi base de datos tengo dos campos relacionados con un identificador por ejemplo asin:

id_contador campo1 campo2
----------------------------------------------------------
1 titulo texto
-----------------------------------------------------------

yo lo que quiero mostrar por pantalla seria el titulo con un enlace hacia el texto como tendria que hacerlo que pasos tendria que seguir?
  #2 (permalink)  
Antiguo 11/05/2011, 17:50
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 11 meses
Puntos: 26
Respuesta: mostrar en pantalla

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM tabla");
  2. while($row=mysql_fetch_assoc($sql)){
  3. echo "<a href='pagina.php?id=".$row['id_contador']."'>".$row['campo1']."</a>";
  4. }
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #3 (permalink)  
Antiguo 11/05/2011, 18:35
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

gracias bocho0610 ahora me lo miro y te digo algo
  #4 (permalink)  
Antiguo 11/05/2011, 19:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

Vale es esto mas o menos pero en realidad en la base de datos tengo mas datos y quiero mostrar un enlace por cada identificador como podria hacerlo.

ejemplo mas o menos:

-----------------------------------------------------------------------------------------------------
id_contador|campo1|campo2
-----------------------------------------------------------------------------------------------------
1|titulo|texto|
----------------------------------------------------------------------------------------------------
2|titulo|texto|
---------------------------------------------------------------------------------------------------
3|titulo|texto
--------------------------------------------------------------------------------------------------

claro si solo hay un identificador con un titulo y texto el codigo de arriba va bien pero de esta forma como seria?
tambien me gustaria saber como hacer si al clickear en titulo aparece en otra pagina el texto y tambien otros datos de otra tabla por ejemplo una tabla que se llame tabla 2 algo asin

tabla2:
-------------------------------------------------------------------------------------------------------------------
id_contador|opiniones|
--------------------------------------------------------------------------------------------------------------------
1|opinion
-----------------------------------------------------------------------------------------------------------------
2|opinion
-----------------------------------------------------------------------------------------------------------------
3|opinion
-----------------------------------------------------------------------------------------------------------------

espero que me puedas dar un ejemplo y gracias saludos
  #5 (permalink)  
Antiguo 11/05/2011, 20:20
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 11 meses
Puntos: 26
Respuesta: mostrar en pantalla

cuando teni el titulo como enlace le mandai la id y eso lo recojes con get.

menu.php
Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM tabla");
  2. while($row=mysql_fetch_assoc($sql)){
  3. echo "<a href='pagina.php?id=".$row['id_contador']."'>".$row['campo1']."</a>";
  4. }

pagina.php
Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM tabla WHERE id_contador='".$_GET['id']."' ");
  2. $row=mysql_fetch_assoc($sql);
  3.  
  4. echo "Titulo".$row['campo1']."<br/>";
  5. echo "Texto".$row['campo2']."<br/>";
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #6 (permalink)  
Antiguo 12/05/2011, 01:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

gracias era eso lo que queria lo probare y te dire algo

Última edición por pithon; 12/05/2011 a las 05:30
  #7 (permalink)  
Antiguo 12/05/2011, 05:30
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

Gracias bocho0610 hasta ahora me has resuelto lo que queria aprender pero ahora te lo voy a poner un poco mas dificil.

por ejemplo tengo una TABLA con tres campos 'ID_CONTADOR'(primary,autoincrement) segundo campo 'TITULO' tercer campo 'TEXTO' el campo 'TITULO' lo muestro como enlace pero el enlace tiene que ir a la misma tabla a un campo llamado 'TEXTO' (hasta aqui bien) pero si ademas tiene que ir tambien a otra tabla llamada TABLA2 con dos campo llamado 'ID_CONTADOR' (primary,autoincrement) y otro campo llamado 'IMAGENES' a este ultimo llamado 'IMAGENES' tambien quiero que balla el enlace lo que pasa que este ultimo campo guardo la ruta de los multiples de archivos subidos(que se pueden subir hasta tres) entonces hay un identificador para cada imagen y el problema esta ahi si subo tres imagenes como muestro las tres imagenes si tendria numero de identicadore diferentes.

algo asin:

TABLA 1
----------------------------------------------------------------------------------------------------
ID_CONTADOR|TITULO|TEXTO|
--------------------------------------------------------------------------------------------------
1|TITULO1|TEXTO|
---------------------------------------------------------------------------------

TABLA2
------------------------------------------------------------------------------------
ID_CONTADOR|NOMBRE_IMG|
-------------------------------------------------------------------------------------
1|COCHE.JPG|
--------------------------------------------------------------------------------------
2|PORTATIL.JPG
---------------------------------------------------------------------------------------
3|RADIO.JPG
--------------------------------------------------------------------------------------

espero que me haiga explicado bien en resumen.
-Como cambio de tabla para cojer resultados con el identificar correspondiente?
-como hago para mostrar resultados si son multiples archivos?
  #8 (permalink)  
Antiguo 12/05/2011, 06:00
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 10 meses
Puntos: 58
Respuesta: mostrar en pantalla

El problema lo tienes en el diseño de la base de datos. La tabla 2 no puede ser así porque si no no vas a poder recuperar las fotos para cada título. Debaría ser así:

ID_IMAGEN (primary, autoincrement)
ID_CONTADOR (el mismo de la tabla 1)
NOMBRE_IMG

Sería así:

TABLA 2
----------------------------------------------------
ID_IMAGEN| ID_CONTADOR|NOMBRE_IMG|
-------------------------------------------------------
1 | 1 | coche.jpg
2 | 1 | portatil.jpg
3 | 1 | radio.jpg
4 | 2 | arbol.jpg

¿Lo entiendes? Las tres primeras corresponden al mismo título; la 4ª corresponde a otro. Para recuperar las tres primera harías la siguiente consulta:

Código SQL:
Ver original
  1. SELECT NOMBRE_IMG FROM tabla1, tabla2 WHERE tabla1.ID_CONTADOR=tabla2.ID_CONTADOR AND tabla1.ID_CONTADOR=1
  #9 (permalink)  
Antiguo 12/05/2011, 06:15
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

a vale perfecto ahora le encuentro la logica a mi duda pero la verdad que no se adaptarlo:

yo hice algo asin:

codigo para el enlace
Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM tabla1");
  2.   while($row=mysql_fetch_assoc($sql)){
  3.    echo "<a href='pagina.php?id=".$row['id_contador']."'>".$row['titulo']."</a>";
  4.  
  5.       }

codigo resultado del enlace:

Código PHP:
Ver original
  1. $sql = mysql_query( SELECT NOMBRE_IMG FROM tabla1, tabla2 WHERE tabla1.ID_CONTADOR=tabla2.ID_CONTADOR AND tabla1.ID_CONTADOR=1");
  2. $row=mysql_fetch_assoc($sql));
  3.  
  4. echo "Titulo".$row['id_imagen']."<br/>";
  5. echo "Texto".$row['texto']."<br/>";

asin estaria bien
  #10 (permalink)  
Antiguo 12/05/2011, 06:48
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 10 meses
Puntos: 58
Respuesta: mostrar en pantalla

La segunda parte del código no está bien. Tienes que hacer un bucle while, como la primera parte, para extraer los datos de la consulta. Además te faltan unas comillas antes de SELECT

Lo que tienes que imprimir con "echo" ya no te lo puedo decir porque no entiendo bien como lo quieres. Ya no sé si las tablas esas que has puesto es como quieres que se vean en la web o son las tablas de la base de datos. No consigo comprenderte. Lo siento.
  #11 (permalink)  
Antiguo 12/05/2011, 07:10
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

gracias Nexus10 ahora te dire algo
  #12 (permalink)  
Antiguo 12/05/2011, 07:21
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

no me deja crear la tabla con phpmyadmin

yo el id_contador de la TABLA1 lo puse con primary autoincrement.

Y cuando intento crear en la TABLA2 el id_imagen primary autoincrement me deja pero el id_contador primary autoincrement no me deja

que estoy haciendo mal ?

Última edición por pithon; 12/05/2011 a las 08:43
  #13 (permalink)  
Antiguo 12/05/2011, 10:05
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 11 meses
Puntos: 26
Respuesta: mostrar en pantalla

Por que solamente un campo es primary key, Esto se refiere a que los datos de dicho campo son unicos e irrepetibles. No puedes tener dos campos primarios a menos que tu modelo lo especifique.
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #14 (permalink)  
Antiguo 12/05/2011, 10:20
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 10 meses
Puntos: 58
Respuesta: mostrar en pantalla

El id_contador de la tabla 2 no es primary key, además va a haber registros repetidos alguna vez, por lo tanto no lo puedes poner autoincrement. El id_contador sería una "foreign key" de la tabla 1, no se si sabes lo que es. De todas formas tampoco es importante, pero lo puedes mirar por internet para que vayas aprendiendo más de bases de datos.

Pruébalo así, sin ponerle autoincrement, verás como se puede.
  #15 (permalink)  
Antiguo 12/05/2011, 10:45
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

y como creo el foreign key de la tabla1 y tabla 2
  #16 (permalink)  
Antiguo 12/05/2011, 11:10
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 10 meses
Puntos: 58
Respuesta: mostrar en pantalla

No hace falta que crees una foreign key. Eso es necesario para bases de datos más complejas, para mantener la integridad referencial, pero para tu base de datos no es necesario. Con phpmyadmin se puede pero es un poco lioso. No te compliques.

Crea las tablas como te he dicho y mira si así puedes hacer lo que tu quieres.

Cuando te dije que ID_CONTADOR de tabla2 era el mismo que el de la tabla1 no me refería a que fuera primary key y autoincrement, sino a que fuera el mismo dato. Es decir, que id_contador=1 de la tabla2 se corresponde con id_contador=1 de la tabla 1, el 2 de la tabla2 se corresponde con el 2 de la tabla1 y así sucesivamente.

En la tabla 1 sí que tiene que ser primary key y autoincrement, pero en la tabla 2 no.
  #17 (permalink)  
Antiguo 12/05/2011, 13:42
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

entonces como seria lo de las tablas algo asin

TABLA1
----------------
ID_CONTADOR|TITULO|COMENTARIO
-----------------------------
id_contador autoincrement primary

TABLA2
----------------------------------------------
ID_IMAGEN|ID_CONTADOR|NOMBRE_IMGAN
--------------------------------------------------------
id_ imagen autoincrement|contador int unsigne|nombre_img un varchar normal
-----------------------------------------------------------------------------------------------------

pero si aparte de las imagenes quiero mostrar el comentario podria con esta base de datos?
  #18 (permalink)  
Antiguo 12/05/2011, 14:13
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

Nexus10 nexus estoy siguiendo tus pasos ahora te dire si me funciona venga gracias y hasta ahora
  #19 (permalink)  
Antiguo 12/05/2011, 14:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 10 meses
Puntos: 58
Respuesta: mostrar en pantalla

Con esas tablas puedes mostrar el comentario perfectamente, claro.
  #20 (permalink)  
Antiguo 12/05/2011, 14:37
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

codigo para mostrar resultados:
Código PHP:
Ver original
  1. $conexion=mysql_connect("localhost","root","");
  2. mysql_select_db("datos",$conexion);
  3. $sql = mysql_query( "SELECT nombre_imagenes FROM tabla1, tabla2 WHERE tabla1.id_contador=eroticosimagenes.id_contador AND eroticos.id_contador=1");
  4. $row=mysql_fetch_assoc($sql);
  5. echo $row['nombre_imagenes']."<br/>";
  6. mysql_close($conexion);

me da este error:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\pagina.php on line 7

de todas formas hice mal el campo id_contador de la tabla2 ya que me sale siemple un 0 y tendria que salir 1,2,3,4 como en la tabla1
  #21 (permalink)  
Antiguo 12/05/2011, 14:54
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 10 meses
Puntos: 58
Respuesta: mostrar en pantalla

Creo que te falta bastante por aprender, pithon, sobre todo de bases de datos. No sé si te he liado más que ayudarte con mis explicaciones.
El id_contador de la tabla 2 no tiene que salir 1,2,3,4.. sino que dependerá de los nombres de imágenes que hayas metido en la tabla.
Por ejemplo, si las tres primeras imágenes de la tabla corresponden al título 1 de la tabla1, el id_contador tendrá que ser 1. Si las tres siguientes corresponden al título dos, el id_deberá ser 2. Es decir, el id_contador de tabla2 será 1,1,1,2,2,2....
y así para el resto.
No sé si lo has entendido bien.

Luego, la consulta que has puesto no tiene ni pies ni cabeza por eso te sale ese error. Primero, después de FROM pones que las tablas son tabla1 y tabla2 pero luego después de WHERE pones otros nombre de tablas.
  #22 (permalink)  
Antiguo 12/05/2011, 15:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

ya esque hice un copia y pega de un codigo que vi y lo modifique bueno me lo mirare lo de la base de datos aunque lo corregui y funciona mal lo que me pasa que en mi base de datos el id_contador siemple marca cero como tendria que arreglar esto?
  #23 (permalink)  
Antiguo 12/05/2011, 15:21
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

como recojo el valor del id_contador de la tabla1

ya que tengo que crear una variable para ese valor y insertarla en $contador de la segunda tabla pero como recojo el valor de id_contador si es autoincrement y primary?

me habeis ayudado mucho y gracias ahora veo que es muy interesante manejar bien la base de datos mirare los tutoriales que me habeis posteados hasta otra
  #24 (permalink)  
Antiguo 12/05/2011, 16:21
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 9 meses
Puntos: 336
Respuesta: mostrar en pantalla

phyton, por favor te pido que no publiques doble respuesta (re-post), si quieres agregar información edita tu respuesta anterior agregando el nuevo contenido, en este tema tienes 5 re-posts, esto no es una advertencia, solo te lo pido para que no incomodes a otros usuarios, gracias :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #25 (permalink)  
Antiguo 12/05/2011, 17:06
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: mostrar en pantalla

lo hare stramin disculpa

Etiquetas: pantalla
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:10.