Foros del Web » Programando para Internet » PHP »

Que sea publico o privado

Estas en el tema de Que sea publico o privado en el foro de PHP en Foros del Web. Hola amigos tengo mi gestor de noticias y un campo de tipo chek cuando es 1 quiere decir q se va a poder leer y ...
  #1 (permalink)  
Antiguo 02/04/2009, 15:15
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Que sea publico o privado

Hola amigos tengo mi gestor de noticias y un campo de tipo chek cuando es 1 quiere decir q se va a poder leer y cuando es 0 no se va apublicar esa noticia hice esto en mi listar.php
Código php:
Ver original
  1. <td><?php echo $row["titulo"]; ?></td>
  2.                        <td><?php echo $row["fecha_publicacion"]; ?></td>
  3.                        <td><?php if($row['estado'] == 1) echo "Si"; else echo "No"; ?></td>

Y esto en mi controlador
Código php:
Ver original
  1. <?php  
  2. include('vistas/conectar.php');
  3. $link=Conectarse();
  4. $listado = ("select * from noticia");
  5. $consulta = mysql_query ($listado, $link);
  6. $row = mysql_fetch_array ($consulta);
  7. ?>
  8. <?php
  9.     $pagina = $_GET['pag'];
  10.     switch($pagina) {
  11.         case 'insertar':
  12.  
  13.       //  bla bla bla
  14.  
  15.    case 'listado_noticia':
  16.         default:
  17.         if(!empty($_SESSION['usuario_id'])&&($_SESSION['usuario_nivel']==3)){
  18.           if ($row['id']) {
  19.               include('modulos/noticias/vistas/listar.php');
  20.           } else {
  21.                 echo 'No existen Noticias publicadas';
  22.           }
  23.         } else {
  24.           if ($row['id']) {
  25.                 include('modulos/noticias/vistas/listado_visitante.html.php');
  26.                 } else {
  27.                     echo 'No existen Noticias  publicadas';
  28.                 }
  29.         }  
  30.     }

Para empezar no se pq me sale este mensaje:
Fatal error: Cannot redeclare conectarse() (previously declared in C:\xampp\htdocs\proyecto_cisco\modulos\noticias\vi stas\conectar.php:4) in C:\xampp\htdocs\proyecto_cisco\modulos\noticias\vi stas\conectar.php on line 18
  #2 (permalink)  
Antiguo 02/04/2009, 15:25
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Que sea publico o privado

es que estás incluyendo dos veces el archivo que tiene la función, en otras palabras estás redeclarando la función, utiliza require_once, include_once.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #3 (permalink)  
Antiguo 02/04/2009, 15:39
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Respuesta: Que sea publico o privado

Gracias ARGY pero tengo una consulta en mi tabla noticias tengo un campo type="checkbox" bien este campo me sirve para poder publicar una noticias o sea que los usuarios puedan leerla cuando esta en 1 pero cuando esta en 0 que se quede en mi tabla que solamente el admistrador pueda leerla sin q los usuarios puedan leerla no entiendo como debe hacer el control para q sea publico una notica o no
Esto hice en mi listado.php
Código php:
Ver original
  1. <td><?php echo $row["fecha_publicacion"]; ?></td>
  2.                        <td><?php if($row['estado'] == 1) echo "Si"; else echo "No"; ?></td>

Pero ahora en controlador no se como debe controladar para q verifique primeri q se es = 1 muestre esa noticia y sino diga que no existan noticias publicadas
Código php:
Ver original
  1. case 'general':
  2.         $categoria = $_GET['categoria'];
  3.          if ($row['estado']==1) {
  4.             include('modulos/noticias/vistas/listado_visitante.html.php');
  5.           } else {
  6.                 echo '<center> No existen Noticias publicadas </center>';
  7.           }
  8.         break;

Hago esto y todas mis noticias de distintas categorias me sale el mensaje No existen Noticias publicadas aunque estas tengan como estado==1 osea no me verifica
  #4 (permalink)  
Antiguo 02/04/2009, 19:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Que sea publico o privado

Porque no lo haces desde SQL al listar las noticias?
Código sql:
Ver original
  1. SELECT * FROM tabla WHERE estado=1

De cualquier forma si te fijas en tu código, haces if( $row['estado'] == 1) aunque $row no la defines en ningún lado.

Saludos.
  #5 (permalink)  
Antiguo 03/04/2009, 08:53
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Que sea publico o privado

Tengo una duda es posible hacer esto

Código php:
Ver original
  1. if ($listado = mysql_query("select * from noticia where categoria='$categoria' and estado=1"))
  2.   {// etc } else
  3.  {
  4.   echo "No se puedo hacer";
  5. }
  #6 (permalink)  
Antiguo 03/04/2009, 09:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Que sea publico o privado

mysql_query te devuelve por defecto true o un resource dependiendo del tipo de consulta, si fallo te da false, lo que tu debes de hacer para comprobar si hay resultados es usar mysql_num_rows.

Saludos.
  #7 (permalink)  
Antiguo 03/04/2009, 09:29
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Que sea publico o privado

Exacto Gator hice esto
Código php:
Ver original
  1. $listado = mysql_query("select * from noticia where categoria='$categoria' and estado=1");
  2.  $nfilas = mysql_num_rows ($listado);
  3. if ($nfilas > 0)
  4.       {  /// todas mis operaciones
  5.        }
  6.       else
  7.       echo (" <center> No existen noticias Publicadas... </center>");
  8.       mysql_close($link);

Me funciona perfectamente Muchas Gracias
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 10:08.