Foros del Web » Programando para Internet » PHP »

Mostrar un solo registro en una BD

Estas en el tema de Mostrar un solo registro en una BD en el foro de PHP en Foros del Web. Hola: tengo un pequeño problemilla. haber he conseguido mostrar todos los registros de una base de datos MySQL que he creado. Cada fila tiene un ...
  #1 (permalink)  
Antiguo 21/04/2004, 18:28
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 14 años, 7 meses
Puntos: 3
Mostrar un solo registro de una BD

Hola:

tengo un pequeño problemilla. haber he conseguido mostrar todos los registros de una base de datos MySQL que he creado.
Cada fila tiene un ID diferente, el problema que tengo que ahora necesito mostrar solo una fila, para identificar la fila se hará por el numero de Id que será introducido mediante un formulario.
¿Que tengo que poner para poder mostrar solo dicha fila?

El codigo que he utilizado es el siguiente pero noha funcionado:

Código PHP:
<?
//Conexion con la base de datos
mysql_connect("localhost","fran","fran");

//Ejecutamos la sentencia SQL
$result=mysql_db_query("discapesl","select * from novedades");
?>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><div align="right"><img src="imagenes/novedades.gif" width="250" height="57"></div></td>
  </tr>
  <tr>
    <td><table width="100%"  border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
      <?
//Mostramos los registros
while ($row=mysql_fetch_array($result))
{
echo 
"<td width='15' valign='top'><a href='javascript:Abrir_Ventana(";
echo 
'"';
echo 
"novedades/novedad.php?numero=".$row["ID"];
echo 
'"';
echo 
")'><img src='imagenes/flechanovedades.gif' width='12' height='14' border='0'></a></td>
        <td>
          <div align='justify' class='novedades'><a href='javascript:Abrir_Ventana("
;
echo 
'"';
echo 
"novedades/novedad.php?numero=".$row["ID"];
echo 
'"';
echo 
")' class='novedades'>".$row["titulo"]."<br>
        ("
.$row["fecha"].")</a></div></td>
      </tr>
      <tr>
        <td height='10' colspan='2' valign='top'></td>
      </tr>"
;
}
mysql_free_result($result)
?>
    </table></td>
  </tr>
</table>
Gracias por vuestra ayuda

Última edición por yazo; 24/04/2004 a las 04:38
  #2 (permalink)  
Antiguo 21/04/2004, 22:46
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 14 años, 1 mes
Puntos: 1
mas bien debes hacerlo desde la consulta a mysql
"SELECT * FROM tabla WHERE campo = valor"
la palabra WHERE indica que va a seleccionar unicamente los campos que cumplan con las condiciones estipuladas, en ese caso solamente pide que cierto campo tenga cierto valor, lo que tu necesitas es decirle que el campo id sea igual al numero que deseas.
saludos
  #3 (permalink)  
Antiguo 21/04/2004, 22:56
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 16 años
Puntos: 0
el tema está en la sentencia sql, en vez de poner:
$result=mysql_db_query("discapesl","select * from novedades");

ponés:
$result=mysql_db_query("discapesl","select * from novedades where Id = $Id");
previamente, si $Id viene de un formulario, deberías poner esta línea:
$Id=$_POST['Id'];
ó $_GET según el método que uses
__________________
Julio
Clasificados Gratis
  #4 (permalink)  
Antiguo 22/04/2004, 07:18
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 14 años, 7 meses
Puntos: 3
El codigo que estoy utilizando es:

Código PHP:
<html>
<head>
<title>Novedades</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<LINK href="../estilo.css" type=text/css rel=stylesheet>
<script src="../javas/barra.js"></script>
<style type="text/css">
<!--
body {
    background-color: #E9E9E9;
}
-->
</style>
</head>

<body>
<?
//Conexion con la base de datos
mysql_connect("localhost","root","root");

//Ejecutamos la sentencia SQL
mysql_db_query("nombrebd","select * from novedades Where ID='$id");
?>
<?
//Mostramos los registros
echo "<p align='justify' class='texto'><strong>".$row["$titulo"]."</strong></p>
<table  border='0' align='right' cellpadding='0' cellspacing='0'>
  <tr>
    <td width='5'>&nbsp;</td>
    <td width='210'><span class='textopeque'><img src='imagenes/prueba.jpg' width='210' height='300' align='right'></span></td>
    <td width='5'>&nbsp;</td>
  </tr>
</table>"
;
echo 
"<p align='justify' class='textopeque'>".$row["$noticia"]."</p><p align='justify' class='textopeque Estilo1'>Escrita el ".$row["$fecha"]."</p>";
?>
</body>
</html>
¿Que me falla?
  #5 (permalink)  
Antiguo 22/04/2004, 07:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te faltó una comilla en la sentencia SQL ... y mejor si concatenas:

Código PHP:
mysql_db_query("nombrebd","select * from novedades Where ID='".$_GET['numero']."'"); 
También .. veo que en tu código generas links con el "ID" le das de nombre a la variable "numero" .. así que tendras que usar esa.

novedades/novedad.php?numero=".$row["ID"];


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 22/04/2004 a las 07:41
  #6 (permalink)  
Antiguo 23/04/2004, 03:31
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 14 años, 7 meses
Puntos: 3
¡QUE CAFRE QUE SOY!!

Sigue sin funcionarme, lo que quiero es mostrar solo los resultados de una fila ¿Como lo tengo que poner? ¿De que forma tengo que poner las variables para que funcione?

Muchas Gracias
  #7 (permalink)  
Antiguo 23/04/2004, 10:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. que código estás usando finalmente?

Que error/problema -concreto- tienes? ...

En fin .. si te "quejas" sólo del problema pero no nos describes el problema poco te podremos ayudar ..

Por cierto . vas entendiendo todas las recomendaciones que se han ido dando? .. alguna duda cocreta de teoría que si solventas AHORA no tendras que preguntar lo mismo otro dia sino que lo resolveras tu mismo?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 23/04/2004, 16:50
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 14 años, 7 meses
Puntos: 3
El codigo que he usado finalmente corrigiendo lo que me habeis aconsejado ha sido:

Código PHP:
<html>
<head>
<title>Novedades</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<LINK href="../estilo.css" type=text/css rel=stylesheet>
<script src="../javas/barra.js"></script>
<style type="text/css">
<!--
body {
    background-color: #E9E9E9;
}
-->
</style>
</head>

<body>
<?
//Conexion con la base de datos
mysql_connect("localhost","fran","fran");

//Ejecutamos la sentencia SQL
mysql_db_query("nombrebd","select * from novedades Where ID='".$_GET['numero']."'");
?>
<?
//Mostramos los registros
echo "<p align='justify' class='texto'><strong>".$titulo."</strong></p>
<table  border='0' align='right' cellpadding='0' cellspacing='0'>
  <tr>
    <td width='5'>&nbsp;</td>
    <td width='210'><span class='textopeque'><img src='imagenes/castrol.jpg' width='210' height='300' align='right'></span></td>
    <td width='5'>&nbsp;</td>
  </tr>
</table>"
;
echo 
"<p align='justify' class='textopeque'>".$row["$noticia"]."</p><p align='justify' class='textopeque Estilo1'>Escrita el ".$row["$fecha"]."</p>";
?>
</body>
</html>
Mi duda es como tengo que hacer ahora para mostrar el contenido de dicha novedad, es decir para mostrar el contenido de dicha variable.
Según lo tengo ahora no me aparece nada, ni miestra error ni na, se queda en blanco.
  #9 (permalink)  
Antiguo 24/04/2004, 04:37
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 14 años, 7 meses
Puntos: 3
¿Alguno tiene idea de como puedo hacerlo?
  #10 (permalink)  
Antiguo 24/04/2004, 16:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
puff ..

Si, ok .. hiciestes la conexión a tu BD .. seleccionastes la BD a usar y ejecutastes la consulta .. Pero, .. de donde crees que sale el "$row"?

Código PHP:
$consulta=mysql_db_query("nombrebd","select * from novedades Where ID='".$_GET['numero']."'");


$row=mysql_fetch_array($consulta);

echo 
"<p align='justify' class='textopeque'>".$row["noticia"]."</p><p align='justify' class='textopeque Estilo1'>Escrita el ".$row["fecha"]."</p>";
?> 
$row es un array .. Lo que va entre [] de $row (de un array) son indices (asociativos) .. NO son variables .. así que los $ .. sobran ahí.

Repasa las funciones de PHP para Mysql en:
www.php.net/mysql o lee algún tutorial como los que veras en las FAQ's de este foro.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 25/04/2004, 15:31
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 14 años, 7 meses
Puntos: 3
Muchas Gracias a todos por vuestra ayuda

YA LO HE CONSEGUIDO JEJEJE

Última edición por yazo; 25/04/2004 a las 15:58
  #12 (permalink)  
Antiguo 25/04/2004, 16:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues ahora habra que ver posibles errores en la conexión o en la sentencia SQL .. :

Código PHP:
$row=mysql_fetch_array($consulta) or die (mysql_error()); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 20:30.