Ver Mensaje Individual
  #8 (permalink)  
Antiguo 30/04/2007, 11:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Si la variable de URL no existe, no mostrarla

Me alegro que hayas solucionado tu problema. Ahora, optimizemos tu codigo:

Código PHP:
<?php 
$sql 
mysql_query("SELECT * FROM comments");
$num mysql_num_rows($sql);
$result mysql_query('SELECT id FROM comments');
$id $_GET['id'] - 1;
if(
$num 1) {
echo 
"No hay comentarios. Sé el primero en escribir <a href=\"write_comment.php?id="; echo mysql_result($result$id); echo "\">uno</a>.";
} else {
echo 
"Lee los <a href\"read_comments.php?id="; echo  mysql_result($result$id); echo " \">$num</a> comentarios";
}  
?>
Puedes simplificar un poco el codigo, haciendo una sola consulta en vez de dos a la base de datos. La consulta en $sql (que supongo la usas para determinar el numero de registros) y la consulta en $result (de donde sacas la lista de id's) en el fondo pueden ser y son la misma cosa:
Código PHP:
/**
En vez de
$sql = mysql_query("SELECT * FROM comments");
$num = mysql_num_rows($sql);
$result = mysql_query('SELECT id FROM comments');
**/
 
$result mysql_query('SELECT id FROM comments');
$num mysql_num_rows($result);
 
/**
Te ahorraste no solo una linea de codigo, sino una consulta 
innecesaria a la BD (save time!)
**/ 
Luego, en PHP puedes concatenar cadenas (usando el operador punto (.), al igual que en Javascript (con el sigo +) y en todos los demas lenguajes de programacion. Léete este articulo sobre concatenación de cadenas con PHP. y aqui tienes otro interesante articulo sobre concatenacion. Sigamos simplificando tu codigo:
Código PHP:
if($num 1) {
/**
En vez de
echo "No hay comentarios. Sé el primero en escribir <a href=\"write_comment.php?id="; echo mysql_result($result, $id); echo "\">uno</a>.";
**/
echo "No hay comentarios. Sé el primero en escribir <a href=\"write_comment.php?id=" mysql_result($result$id) . "\">uno</a>.";
 
} else {
/**
En vez de
echo "Lee los <a href\"read_comments.php?id="; echo  mysql_result($result, $id); echo " \">$num</a> comentarios";
**/
echo "Lee los <a href\"read_comments.php?id=" mysql_result($result$id) . " \">$num</a> comentarios";

Al final, despues de todo, tienes este codigo:

Código PHP:
$result mysql_query('SELECT id FROM comments');
$num mysql_num_rows($result);
if(
$num 1) {
echo 
"No hay comentarios. Sé el primero en escribir <a href=\"write_comment.php?id=" mysql_result($result$id) . "\">uno</a>.";
} else {
echo 
"Lee los <a href\"read_comments.php?id=" mysql_result($result$id) . " \">$num</a> comentarios";


Un saludo,