Foros del Web » Programando para Internet » PHP »

pregunta sencilla: mostrar registro según variable

Estas en el tema de pregunta sencilla: mostrar registro según variable en el foro de PHP en Foros del Web. Hola buenas, estoy empezando con el php y mysql y les explico tengo una tabla sencilla con dos columnas: Id y campo y simplemente hay ...
  #1 (permalink)  
Antiguo 15/09/2005, 19:37
 
Fecha de Ingreso: septiembre-2005
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta pregunta sencilla: mostrar registro según variable

Hola buenas, estoy empezando con el php y mysql y les explico tengo una tabla sencilla con dos columnas: Id y campo y simplemente hay guardado en el id un valor numerico y en campo un pequeño texto.

bueno dentro de una misma página según en que trozo de la página quiero que aparezca un resgistro u otro

pense que si en la consulta hacia algo así:

$sql = mysql_query("select campo from tabla_p where id = $var", $conexion)

y luego indicando algo como
$var = "2"
echo $sql

y luego $var ="3"
echo $sql

me mostraria en cada caso el registro correspondiento, pero no me funciona, alguien me podria explicar algo mejor como mostrar en una misma pagina varios registros de una tabla, pero pasandole una variable(o si hay otra forma mejor, pues esa)

Porque por mucho que lo miro en el manual no se como hacerlo, se mostrarlos todos, se mostrarlos paginando y se mostrar el 1º pero no se como mostrar varios diferentes en la misma pagina y pudiendo elejirlos yo con la variable.

Muchas gracias
  #2 (permalink)  
Antiguo 15/09/2005, 20:12
 
Fecha de Ingreso: agosto-2005
Mensajes: 125
Antigüedad: 12 años, 3 meses
Puntos: 0
Bueno, yo lo hago de la siguiente manera, pero en esto de la programación siempre hay muchas formas de hacerlo.

Después de haberte conectado y seleccionado la BBDD con mysql_select_db, vendría este código:
Código PHP:
<?
$var 
$_POST['var']; //Esto sería para el caso de que recibas la variable por POST
//Luego compongo la consulta
$ssql "Select * from tabla_p where id = '" $var "'";
//Ejecuto la consulta

$rs mysql_query($ssql);

//Muestro los resultados
while($row mysql_fetch_object($rs)){
         echo 
$row->campo;
}
?>
Luego por supuesto liberar los resultados y cerrar con mysql_free_result y mysql_close

Espero que te sirva.

Saludos
__________________
Andrés Gattinoni
------------------------
¿Necesita un lugar en Internet? Hospedaje web en Argentina.
Planes desde $5 argentinos - Alojamiento ideal para Blogs
  #3 (permalink)  
Antiguo 16/09/2005, 04:00
 
Fecha de Ingreso: septiembre-2005
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 0
bueno lo primero gracias, bien o no entiendo bien del todo como funciona tu codigo y no se aplicarlo, o no me e explicado del todo bien, siguiendo tu codigo he construido lo siguiente:
Código PHP:
<?php require_once('/conexion.php'); ?>
<?php
$var 
$_POST['var'];
mysql_select_db($database_conexion$conexion);
$ssql "Select * from tabla_p where id = '" $var "'";
$rs mysql_query($ssql$conexion); 
?>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?php
while($row mysql_fetch_object($rs)){
         echo 
$row->campo;

?>
</body>
</html>
en conexion.php tengo lo siguiente
Código PHP:
<?php
$hostname_conexion 
"";
$database_conexion "";
$username_conexion "";
$password_conexion "";
$conexion mysql_pconnect($hostname_conexion$username_conexion$password_conexion) or trigger_error(mysql_error(),E_USER_ERROR); 
?>
pero no funciona correctamente, ya que yo no quiero pasarle la variable por post, imaginate que tengo una tabla con 3 filas y 3 columnas y quiero que:
en fila 1 columna 1 salga el registro id = 1
en fila 2 columna 2 salga el registro id = 2
en fila 3 columna 3 salga el registro id = 3
y que a esa pagina se acceda directamente no que venga de ningún formulario. ahora me he explicado mejor? esque no se bien como explicarlo, sino lo he hecho bien ahora, lo intento de otra forma
PD: la página no es al 100% php porque aún no se separar el diseño del codigo, aun estoy en ello :P
gracias
  #4 (permalink)  
Antiguo 16/09/2005, 04:13
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 15 años, 6 meses
Puntos: 0
Entonces, lo que quieres es mostrar todos los valores de la tabla o solo uno determinado?
si solo quieres mostrar uno es como te ha dicho el barto (modificando algo según de donde quieras cojer la variable). Si quieres mostrar todos es simplemente hacer la misma pregunta sql pero sin nada en el where.

No se si te he aclarado algo jeje

Saludos
  #5 (permalink)  
Antiguo 16/09/2005, 04:29
 
Fecha de Ingreso: septiembre-2005
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 0
yo lo que quiero es mostrar varios, ni uno ni todos :P pero los que quiero que muestre son unos determinados, tal vez con un ejemplo me explico mejor si tengo en la tabla 5 registros que seria en el id del 1 al 5 quiero que en una pagina me muestre el 1 y el 4, en otra el 2 4 y 5 y en otra el 3 entendeis ahora mejor lo que quiero?
  #6 (permalink)  
Antiguo 16/09/2005, 04:47
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 15 años, 6 meses
Puntos: 0
Pero aleatoriamente?
  #7 (permalink)  
Antiguo 16/09/2005, 04:52
 
Fecha de Ingreso: septiembre-2005
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 0
no no, como he dicho al principio indicandole la id por eso lo de la variable que comentamos todo el tiempo
  #8 (permalink)  
Antiguo 16/09/2005, 05:25
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 15 años, 6 meses
Puntos: 0
Bueno, haber si ahora he entendido bien En el fichero habrá una variable que cambiará según se vaya ejecutando el código php y en determinados momento querrás mostrar el campo asociado a la id almacenada en dicha variable. Es esto??

Si la tabla es grande y solo quieres mostrar unos pocos registros pues yo haría la consulta que escribio el barto para recuperarte cada uno.
Si el id se corresponde con las posiciones de los registros en la tabla tambien puedes usar la función mysql_data_seek.

Asi si en la tabla tienes:
position 0: id=0 campo
position 1: id=1 campo
position 2: id=2 campo
position 3: id=3 campo
...

$sql = mysql_query("select * from tabla_p");
mysql_data_seek($sql, $var);
while ($row = mysql_fetch_row($sql)){
echo $row->campo;

Saludos
  #9 (permalink)  
Antiguo 16/09/2005, 06:24
 
Fecha de Ingreso: septiembre-2005
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 0
sigo sin verlo :S lo pongo tal cual me lo pones tu, pero me sale todo en blanco, donde debo indicarle el valor de la variable???
podrias ponermelo cada cosa donde corresponde dentro de mi script el que he puesto más arriba, a ver si así lo veo más claro, gracias.
  #10 (permalink)  
Antiguo 19/09/2005, 11:50
 
Fecha de Ingreso: septiembre-2005
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 0
debe de ser muy sencillo, pero nada que no consigo verlo, a ver si puedo de nuevo replantear la pregunta

con la tabla que tengo (la del primer post)
como puedo mostrar varios de los registros en una página?
de forma determinada, NO aleatoria (yo lo planteo por id pero si hay una forma mejor...)

gracias y perdonar por mi persistencia
  #11 (permalink)  
Antiguo 23/09/2005, 19:39
 
Fecha de Ingreso: septiembre-2005
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 0
no me podria ayudar alguien??? la respuesta tiene que ser muy sencilla por lo que necesito que veo que sea algo normal, pero que no se utilizar por mucho que miro la documentacion
  #12 (permalink)  
Antiguo 24/09/2005, 10:57
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Hola...
El problema es que estás confundiendo los conceptos y las secuencias de ejecución.
Te recomieno revisar la documentación sobre la interacción entre PHP y MySQL.

- Y siempre empieza por lo más sencillo. En este caso, sería hacer una consulta y mostrar el resultado (olvídate por ahora de cambiar esa variable).

El orden debería ser el siguiente:
Código PHP:
//Realizar la consulta:
$result mysql_query("select campo from tabla where id=2");// Aquí tenemos un resultset.

// Pero aún falta extraer los resultados de ese resultset.
// Eso se hace con la función mysql_fetch_array() o similares.
$fila mysql_fetch_array($result);

// Ahora, $fila es un array que contiene los valores de los campos para ese primer registro.
echo $fila['nombre_de_campo']; 
Si quieres cambiar ese valor de la variable, deberás repetir todos los pasos.

Por favor investiga un poco más, porque lo que te está faltando son nociones básicas.

Saludos
  #13 (permalink)  
Antiguo 24/09/2005, 20:35
 
Fecha de Ingreso: septiembre-2005
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 0
muchas gracias por la ayuda. la verdad es que ese script que me has puesto es el primer paso que di, y lo conseguí me funcionó bien, es decir si cada vez hacia la consulta con un id determinado y luego mostrando el campo que me interesaba funcionaba perfectamente.
pero el siguiente paso en el que la id fuera una variable es el que no consigo leyendo la documentación, puede que al final me haya mareado un poco y me e desviado de el camino correcto.

ahora pensando un poco en C me pregunto según tu explicación, es posible hacer una consulta global a la tabla, y guardar en vez de un array una matriz? y si guardo una matriz, luego se puede hace algo así:?

Código PHP:
echo $fila['nombre_de_campo'][2]; 
eso en php es posible? bueno voy a revisar la documentación a ver si veo algo sobre matrices.

de todas formas gracias por centrar un poco mi cabeza

Última edición por AngelusWeb; 24/09/2005 a las 21:01
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 09:15.