Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 2 de 2

Tema: Fallo en código

  1. #1
    Esto empieza a ser un vicio... Habitante Avatar de Rabs
    Fecha de Ingreso
    16 jun, 11
    Ubicación
    Madrid
    Mensajes
    780
    Poder de Reputación
    16

    Fallo en código

    Bien, pues como haze ya timepo que no hago, os voy a preguntar sobre un código:
    Código:
    <!DOCTYPE html> 
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es-ES"> 
    <!-- Zona de carga -->
    <?php
    include ("../enlaces.php");
    
    ?>
    <!-- Fin zona de carga -->
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Sistema de noticias en PHP</title>
    <?php 
    include ("../conexionsql.php");
    //conectamos a la base 
    $connect=mysql_connect("xxxxx","xxxxxxxx" ,"xxxxxxxxxx"); 
    //Seleccionamos la base 
    mysql_select_db("xxxxxxxxxxxxxxx",$connect);
    
    //hacemos las consultas 
    $result=mysql_query("SELECT * FROM `$database`.`novedades`", $connect); 
    $totalregistros=mysql_num_rows($result); 
    ?>
    </head>
    
    <body>
    
    <? 
    // Recibimos la variable llamada id, que es la que se pone en la URL (novedad.php?id=ID DE LA NOTICIA)
    $id = htmlentities($_GET[id]);
    $id = strip_tags($id);
    
    //conectamos a la base 
    $connect=mysql_connect("xxxxxxxxxxxxx","xxxxxxxxxx" ,"xxxxxxxxxxxxx"); 
    //Seleccionamos la base 
    mysql_select_db("xxxxxxxxxxxxxx",$connect);
    
    // Hacemos las consultas para seleccionar la noticia correspondiente
    $result=mysql_query("select * from `$database`.`novedades` where id_noticia=$id", $connect) or die (mysql_error());
    
    // Aquí lo que hacemos es que si alguien pone en la url algo así como novedad.php?id=-1 le rediriga a una página en concreto de error, ya que poner el número negativo lo aprovechan los crackers. Este código me lo pasó Rabs, gracias!
    if ($id<0) {
    header ("location: URL");
    }
    
    // Aquí es lo mismo que arriba pero para si ponen de ID el número 0
    if ($id==0) {
    header ("location: URL");
    }
    
    if (mysql_num_rows($result)) { 
       while ($qry = mysql_fetch_array($result)) {
    
    echo "$qry[titulo]<br/>Publicado por $qry[autor] el día $qry[fecha]<br/><br/>$qry[novedad]<br/><br/>";
    }
    }
    ?>
    </body>
    </html>
    Está sacado del sistema de noticias de Doodleo, pero modificado.
    El error es:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

    A ver si me podies ayudar ;)
    Última edición por Rabs; 28/06/2012 a las 12:24
    Mericherno.es - Web del servidor DayZ hecha con la inestimable ayuda de johnetrep :)
    http://www.fernandosalcedo.com

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    24
    Hola Rabs:

    Cuando tengas un problema con SQL en el que hayan variables involucradas, lo mejor es mostrar el contenido de todas las variables y ver que ocurre. El error que mencionas es porque alguna variable esta vacía, así que debes revisar que $database y $id no estén vacías:

    Código:
    <!DOCTYPE html> 
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es-ES"> 
    <!-- Zona de carga -->
    <?php
    include ("../enlaces.php");
    
    ?>
    <!-- Fin zona de carga -->
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Sistema de noticias en PHP</title>
    <?php 
    include ("../conexionsql.php");
    //conectamos a la base 
    $connect=mysql_connect("xxxxx","xxxxxxxx" ,"xxxxxxxxxx"); 
    //Seleccionamos la base 
    mysql_select_db("xxxxxxxxxxxxxxx",$connect);
    
    //hacemos las consultas 
    $tmp = "SELECT * FROM `$database`.`novedades`";
    echo "Primera consulta: $tmp<";
    $result=mysql_query($tmp, $connect); 
    $totalregistros=mysql_num_rows($result); 
    ?>
    </head>
    
    <body>
    
    <? 
    // Recibimos la variable llamada id, que es la que se pone en la URL (novedad.php?id=ID DE LA NOTICIA)
    $id = htmlentities($_GET[id]);
    $id = strip_tags($id);
    
    //conectamos a la base 
    $connect=mysql_connect("xxxxxxxxxxxxx","xxxxxxxxxx" ,"xxxxxxxxxxxxx"); 
    //Seleccionamos la base 
    mysql_select_db("xxxxxxxxxxxxxx",$connect);
    
    // Hacemos las consultas para seleccionar la noticia correspondiente
    $tmp = "select * from `$database`.`novedades` where id_noticia=$id";
    echo "Segunda consulta: $tmp<br />";
    $result=mysql_query($tmp, $connect) or die (mysql_error());
    
    // Aquí lo que hacemos es que si alguien pone en la url algo así como novedad.php?id=-1 le rediriga a una página en concreto de error, ya que poner el número negativo lo aprovechan los crackers. Este código me lo pasó Rabs, gracias!
    if ($id<0) {
    header ("location: URL");
    }
    
    // Aquí es lo mismo que arriba pero para si ponen de ID el número 0
    if ($id==0) {
    header ("location: URL");
    }
    
    if (mysql_num_rows($result) > 0) { 
       while ($qry = mysql_fetch_array($result)) {
    
    echo "$qry[titulo]<br/>Publicado por $qry[autor] el día $qry[fecha]<br/><br/>$qry[novedad]<br/><br/>";
    }
    }
    ?>
    </body>
    </html>
    Ejecútalo con esas modificaciones y busca las salidas "Primera Consulta" y "Segunda Consulta".

    Suerte :D.

Temas Similares

  1. ¿Donde esta el fallo en este codigo PHP que a veces no guarda las variables?
    Por victor5atodogas en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 2
    Último Mensaje: 03/02/2012, 06:47
  2. Fallo en código de "rastreo"
    Por Rabs en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 16
    Último Mensaje: 24/09/2011, 12:21
  3. Fallo en un codigo de CCTW
    Por Rabs en el foro Foro General
    Respuestas: 11
    Último Mensaje: 09/09/2011, 21:27
  4. Fallo de código de suma o resta de un valor en MySQL mediante PHP
    Por Rabs en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 2
    Último Mensaje: 19/07/2011, 16:22
  5. Hacer un codigo que muestre un codigo
    Por panchi en el foro Foro General
    Respuestas: 7
    Último Mensaje: 12/10/2009, 04:06

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •