Foros del Web » Programando para Internet » PHP »

Alguien me ayuda?

Estas en el tema de Alguien me ayuda? en el foro de PHP en Foros del Web. Hola, mi problema es, que al tratar de devolver una valor desde una base de datos Mysql no muestra el resultado. Los codigos que utilizo ...
  #1 (permalink)  
Antiguo 25/01/2010, 20:12
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Alguien me ayuda?

Hola, mi problema es, que al tratar de devolver una valor desde una base de datos Mysql no muestra el resultado.

Los codigos que utilizo son estos:
mostrar.php
Código PHP:
include "config.php";
if (isset(
$_SESSION['s_username'])){
echo 
'
<table width="450" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="300"><div align="center">Tema</div></td>
    <td><div align="center">Autor</div></td>
  </tr>
</table>
<table width="450" border="0" cellspacing="0" cellpadding="0">'
;
$query 'Select id_post,titulo,autor FROM noticias WHERE cat="Noticias" ORDER BY titulo ASC';
$result mysql_query$query );
while (
$row mysql_fetch_row($result)) {
echo 
'<tr>
    <td width="300"><a href="ver.php?i='
.$row[0].'">'.$row[1].'</a></td>
    <td><div align="center">'
.$row[2].'</div></td>
  </tr>'
;
}
echo 
'</table>';
}else{
echo 
'<tr>
    <td><center>Para ver esta Seccion, necesitas esta logeado</center></td>
  </tr>'
;
echo 
"<meta http-equiv=\"refresh\" content=\"2;URL=index.php\">";
}
$conn=mysql_close(); 
ver.php
Código PHP:
include "config.php";

// Conexión a la base de datos

mysql_connect ($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die('No se puede seleccionar la base de datos'); 

$i $_GET['i'];
$query "Select id_post,titulo FROM noticias WHERE id_post='$i'";
$result mysql_query$query );

//Mostrando Contenido

while ($row mysql_fetch_row($result)) {
echo 
'<center>'.$row[1].'</center>';
}
mysql_close(); 
config.php
Código PHP:
// Configura la información de tu cuenta
$dbhost='localhost';
$dbusername='root';
$dbuserpass='test';
$dbname='test';

session_start();

// Conexión a la base de datos
mysql_connect ($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die('Cannot select database'); 
Cuando modifico esta parte :
WHERE id_post='$i'
y lo dejo asi por ej:
WHERE id_post='2'

Ahi recien muestra el valor que esta en la base de datos.

Ese es mi problema, si alguien me puede ayudar se lo agradecere

Saludos ...
  #2 (permalink)  
Antiguo 25/01/2010, 20:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Alguien me ayuda?

Para saber si tienes problemas con tu consulta, usa la funcion mysql_error
Código PHP:
Ver original
  1. mysql_query("aqui va tu consulta") or die(mysql_error());
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 25/01/2010, 20:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Alguien me ayuda?

Gracias por la ayuda, pero sigue igual, no muestra ni error ni contenido.

Y de nuevo al modificar esta parte:
WHERE id_post='$i'
por:
WHERE id_post='2'

Aparece el contenido.

Saludos ...
  #4 (permalink)  
Antiguo 26/01/2010, 06:20
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 1 mes
Puntos: 17
Respuesta: Alguien me ayuda?

Hola, no se si estaré equivocada, pero yo veo mal esto:

Código PHP:
$query "Select id_post,titulo FROM noticias WHERE id_post='$i'"
Yo diría que es:

Código PHP:
$query "Select id_post,titulo FROM noticias WHERE id_post=' " $i .  " ; 
vamos que tal y como lo tienes, si pones echo $query te escribiría:

blablabla WHERE id_post=$i en lugar del valor de esta variable, yo creo que por eso no te funciona y sí poniendo directamente un valor.

Saludos


No se porque no sale la comilla simple después de $i . debería aparecer...
  #5 (permalink)  
Antiguo 26/01/2010, 06:25
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Alguien me ayuda?

Sí , lo mejor es encerrarlo con escapes, como te dijeron en la respuesta anterior.
Además, si el campo id_post es de tipo numérico (int) lo mejor es que quites las comillas simples, por el tipo de dato:

Código PHP:
Ver original
  1. $query = "Select id_post,titulo FROM noticias WHERE id_post=".$i;

Edito:
Por cierto, no es mejor que en este trozo:
Código PHP:
Ver original
  1. $query = "Select id_post,titulo FROM noticias WHERE id_post='$i'";
  2. $result = mysql_query( $query );
  3.  
  4. //Mostrando Contenido
  5.  
  6. while ($row = mysql_fetch_row($result)) {
  7. echo '<center>'.$row[1].'</center>';
  8. }
Hagas así?:
Código PHP:
Ver original
  1. $query = "SELECT * FROM noticias WHERE id_post=".$i;
  2. $result = mysql_query( $query );
  3.  
  4. //Mostrando Contenido
  5.  
  6. while ($row = mysql_fetch_array($result)) {
  7.      echo "<center><a href='leer.php?id=".$row['id_post']."'>".$row['titulo']."</a> (".$row['fecha'].")</center>";
  8. }

Por ejemplo?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #6 (permalink)  
Antiguo 26/01/2010, 10:56
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Alguien me ayuda?

Esta igual, sigue sin mostrar los valores.
  #7 (permalink)  
Antiguo 26/01/2010, 11:19
Avatar de gigoz  
Fecha de Ingreso: noviembre-2009
Mensajes: 106
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Alguien me ayuda?

Primero que todo hasle un echo a la variable $i

echo "i= ".$i;

y mira si te trae algun resultado sino te trae nada obtenlo con request

$i = $_REQUEST['i'];

Pruebalo y me dices
  #8 (permalink)  
Antiguo 26/01/2010, 12:22
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Alguien me ayuda?

Lo solucione, el problema no estaba en los los codigos que yo deje aqui.

Ahora si muestra los valores con el codigo que yo pensaba estaba andando mal.

Gracias a los que se tomaron la molestia de contestar.

Etiquetas: Ninguno
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 20:01.