Foros del Web » Programando para Internet » PHP »

el script se detiene!!!!

Estas en el tema de el script se detiene!!!! en el foro de PHP en Foros del Web. tengo esta consulta Código PHP: <?      // publica cuantos comentarios hay validados      $request  =  mysql_query ( "SELECT id, estado FROM comentarios WHERE estado = 'apto' AND id = "  .  $_GET [ 'id' ] .  " ORDER BY id ASC" ) or die( mysql_error ());       $context  ...
  #1 (permalink)  
Antiguo 04/06/2009, 10:26
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta el script se detiene!!!!

tengo esta consulta

Código PHP:
<?
    
// publica cuantos comentarios hay validados
    
$request mysql_query("SELECT id, estado FROM comentarios WHERE estado = 'apto' AND id = " $_GET['id'] . " ORDER BY id ASC") or die(mysql_error()); 
    
$context mysql_num_rows($request) or die(mysql_error()); 
    echo 
$context;
    
?>
que me publica un numero determinado de comentarios que tiene un articulo y que se han validado como metodo de filtrado o de moderacion.

la cosa es que si la fila esta vacia, por ejemplo es un articulo nuevo y no se han publicado comentarios o sea esta vacia completamente, lo que sucede esque no corre el script y de hecho no continua corriendo nada de la pagina aun terngo muchas cosas como el articulo publicado un formulario etc etc etc pero al no encontrar ninguna fila la pagina simplemente ya no se ve.

como puedo arreglar esto para que ignore cuando no hay nada o me publique un cero para que siga funcionando.

soy muy principante en esto del php y bases de datos
  #2 (permalink)  
Antiguo 04/06/2009, 10:39
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: el script se detiene!!!!

ese codigo te devuelve el numero de registros que hay, por lo tanto te deberia devolver "0" en caso de no haber registros...te aparece algún error en el script o simplemente se detiene??
  #3 (permalink)  
Antiguo 04/06/2009, 10:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: el script se detiene!!!!

simplemente se detiene al llegar ahi no me muestra error ni me muestra cero simplemente se detiene por ejemplo hay un diseño html antes y cuando empieza el contenido hay un titulo que dice por ejemplo comentarios y leugo ya viene este codigo y la publicacion del articulo, y el formulario de comentario etc etc , la cuestion es que si la fila esta vacia se queda en donde esta el titulo comentarios publica el diseño y el texto ese del titulo pero ya no corre nada mas ni siqueira l oque esta despues de esta consulta como el articulo formulario etc etc
no se que pasa
  #4 (permalink)  
Antiguo 04/06/2009, 10:50
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: el script se detiene!!!!

Aparentemente no hay ningún error...Postea el código que viene después de este...
  #5 (permalink)  
Antiguo 04/06/2009, 10:53
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: el script se detiene!!!!

Código PHP:
<body>

    <h1>Blog Personal</h1>
    
    <?
    
// publica cuantos comentarios hay validados
    
$request mysql_query("SELECT id, estado FROM comentarios WHERE estado = 'apto' AND id = " $_GET['id'] . " ORDER BY id ASC") or die(mysql_error()); 
    
$context mysql_num_rows($request) or die(mysql_error()); 
    echo 
$context;    
    
?> 

    <h2><?php echo $noticia['tit']; ?></h2>
    
    <div><?php echo $noticia['cont']; ?></div>
    
    <h2>Comentarios</h2>
    <div>
        <? foreach ($arrComentarios as $comentario) { ?>
        <p>
            <b><? echo $comentario['usuario']; ?></b> dijo:<br />
            <i><? echo $comentario['comentario']; ?></i>
        </p>
        <? ?>    
    </div>
    
    <div>
        <?php if ( !empty( $arrUsuario ) ) { ?>
        
            <form action="vernoticia.php?id=<?php echo $_GET['id']; ?>" method="post">
                <p>
                    <label for="comentario">Dejar un comentario</label><br />
                    <textarea rows="3" cols="50" name="comentario"></textarea>
                </p>
                <p>
                    <input name="submit" type="submit" value="Enviar" />
                </p>
            </form>
        
        <?php } else { ?>
            <p>Para dejar un comentario hay que ser un usuario registrado. <a href="registrar.php">Registrar</a> o <a href="ingresar.php">Ingresar</a></p>
        <?php ?>
    </div>
</body>
  #6 (permalink)  
Antiguo 04/06/2009, 10:56
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: el script se detiene!!!!

Veo que antes de este código hay una consulta que te genera el array $arrComentarios. Deberías consultar primero el número de registros (comentarios en este caso) y hacer un if para que si el numero de registros es mayor que cero, hacer el foreach (y no hacerlo si hay cero registros)
  #7 (permalink)  
Antiguo 04/06/2009, 11:00
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 11 meses
Puntos: 0
pero esa es una funcion que viene despues en realidad no tiene mucho que ver con la priemra que te muetra cuantos comentarios hay, porque si quito el codigo que tye muestra el numero de comentarios que es con el que tengo problema el script jala perfectamente inclusive si no hay comentarios el script funciona, todo es a partir de que esta consulta

Código PHP:
    <?
    
// publica cuantos comentarios hay validados
    
$request mysql_query("SELECT id, estado FROM comentarios WHERE estado = 'apto' AND id = " $_GET['id'] . " ORDER BY id ASC") or die(mysql_error()); 
    
$context mysql_num_rows($request) or die(mysql_error()); 
    echo 
$context;    
    
?>
encuentre no una fila vacia sino una inexistente porque aun no se ha escrito en la base de datos lo cual hace que cuando no encuentra nada ya no deje que lo demas funcione asi que dudo mucho que sea el codigo que viene despues de hehco intente con otros codigos sin funciones solo codigo html despues de eso y tampoco se ve nada

debe de poderce hacer un if durante esta consulta o despues y antes del contenido siguiente que te publique el numero cero o un texto que diga que no hay comentarios o bien que no publique nada pero que deje a lo demas funcionar

ya lo solucione

es de esta manera

Código PHP:
    <?
    
// publica cuantos comentarios hay validados
    
$request mysql_query("SELECT id, estado FROM comentarios WHERE estado = 'apto' AND id = " $_GET['id'] . " ORDER BY id ASC") or die(mysql_error()); 
    if(
mysql_num_rows($request)!=0)
    {
    
$context mysql_num_rows($request) or die(mysql_error());
    echo 
$context;
    }
    else
    {
     echo 
'0';
    }
    
?>
gracias por todo

Última edición por GatorV; 04/06/2009 a las 11:39
  #8 (permalink)  
Antiguo 05/06/2009, 01:33
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: el script se detiene!!!!

De nada, me alegro de que funcione!!!
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 04:18.