Foros del Web » Programando para Internet » PHP »

Php y mysql

Estas en el tema de Php y mysql en el foro de PHP en Foros del Web. veran tengo varios problemitas estoy trabajando en un sistema de noticias y ya esta listo tambien le agregue un sistema de comentarios en cada noticia ...
  #1 (permalink)  
Antiguo 12/05/2009, 11:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 0
Php y mysql

veran tengo varios problemitas estoy trabajando en un sistema de noticias y ya esta listo tambien le agregue un sistema de comentarios en cada noticia en el archivo noticia.php esta el codigo de los comentarios el cual revisa los codigos de dicha noticia gracias a la tabla id de la noticia, la cuestion esque no deseo que todas las noticias lleven comentarios y teniendo ese codigo en el archivo noticia.php es inevitable.
mi pregunta es como poder hacer basicamente la opcion de generar en una tabla cierto valor por ejemplo desde un formulario crear el valor 1 o 0 que 1 significa si comentarios y 0 significa no comentarios y un codigo en el archivo noticia.php que consulte esa tabla revise el valor y si lleva comentarios entonces publica el codigo para verlos y el formulario para enviar nuestro comentario, pero si el valor de la tabla es 0 y no hay permiso para tener comentarios en esa nota entonces no publique nada.

segun yo si es posible con algo de if else pero no estoy seguro no he podido hasta ahora llegar a nada claro

agradeceria cualquier consejo que me pueda ayudar yo no soy un experto en php.
  #2 (permalink)  
Antiguo 12/05/2009, 12:24
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 2 meses
Puntos: 7
Respuesta: Php y mysql

  1. Agregá un checkbox donde hacés el alta de noticias, algo como: (*) Aceptar comentarios.
  2. Después en la tabla de noticias agregá un campo de tipo booleano (sí o no).
  3. Cuando vayas a imprimir en pantalla la noticia, usá un IF para evaluar si la noticia acepta o no comentarios de los visitantes. Acorde a eso, imprimís, o no, la parte de recepción y muestra de comentarios.
¿Se entiende?

Saludos.
  #3 (permalink)  
Antiguo 12/05/2009, 12:36
Avatar de alguienmas  
Fecha de Ingreso: mayo-2009
Mensajes: 62
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Php y mysql

Es dificil decir algo sin el modelo de dato, pero yo agregaria un campo al registro de la noticia , que indique si tiene o no comentario.

Digamos por ejemplo:

Código:
Noticias(id INTEGER, titulo VARCHAR, contenido TEXT, tiene_comentario BOOL)
Si puedes hacer esto, entonces cuando consultes a la BD rescatas el campo tiene_comentario y dependiendo del valor de este cargas o no el sistema de comentario.

en codigo es algo asi:

Código:
$sql = "SELECT * FROM noticias where id = $id";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
//el codigo para las noticias
if($row['tiene_comentario'])
{
   //codigo para los comentarios
}
Espero te sirva, Saludos
  #4 (permalink)  
Antiguo 12/05/2009, 12:45
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 5 meses
Puntos: 7
Respuesta: Php y mysql

Yo he usado otro tipo de dato, que es ENUM( 'si','no' ) (creo que asi se escribe xD), no se mucho de MySQL, nada mas lo básico, pero con eso me defiendo algo.

Como dijo Adolfiten: agregas un campo tipo checkbox. si esta seleccionado guardas como 'si' en mysql y 'no' de lo contrario.

Cuando cargo la fila, evaluó que tiene guardado.

Código PHP:

if($resultado['columna']=='si') {
    
//entro hago otra consulta y entro a otra tabla donde tengo el buzón de mensajes

No es el mejor método, pero para empezar esta bien xD
  #5 (permalink)  
Antiguo 12/05/2009, 12:48
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 7 meses
Puntos: 70
Respuesta: Php y mysql

Creo que el tipo de dato al que te refieres es bool en mysql Rudy69

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 13/05/2009, 10:44
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Php y mysql

Cita:
Iniciado por alguienmas Ver Mensaje
Es dificil decir algo sin el modelo de dato, pero yo agregaria un campo al registro de la noticia , que indique si tiene o no comentario.

Digamos por ejemplo:

Código:
Noticias(id INTEGER, titulo VARCHAR, contenido TEXT, tiene_comentario BOOL)
Si puedes hacer esto, entonces cuando consultes a la BD rescatas el campo tiene_comentario y dependiendo del valor de este cargas o no el sistema de comentario.

en codigo es algo asi:

Código:
$sql = "SELECT * FROM noticias where id = $id";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
//el codigo para las noticias
if($row['tiene_comentario'])
{
   //codigo para los comentarios
}
Espero te sirva, Saludos
esto suena bastante bien para lo que busco.
dejame te explico mas a fondo

tengo un archivo php donde las noticias se muestran del tipo noticia.php?id=1

entonces ya tengo la manera de meter a una tabla los comentarios acomodados por su ID para que cada comentario sepa a que noticia pertenece hasta ahi estoy bien siguiendo tu consejo el codigo de noticas.php para mostrar los comentarios sera asi

$sql = "SELECT * FROM noticias where id = $id";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
//el codigo para las noticias
if($row['tiene_comentario'])
{
<?
$resultComen = mysql_query("SELECT * FROM comentarios WHERE id_nota='$id' ORDER BY id ASC");
while($rowComen = mysql_fetch_array($resultComen))
{
?> ;
< FONT COLOR=RED>
< B><? echo $rowComen["nick"]; ?></B>
< /FONT>
:
< ? echo $rowComen["comentario"]; ?>
< BR>
< ?
}
mysql_free_result($resultComen);
}
?>

bueno de hecho continua un poco mas donde se encuentra el formulario para publicar nuestro comentario etc etc pero solo trato de puntualizar bien claramente esto por eso lo brinque.

ahora en el administrador de las noticias se maneja una tabla distinta a la que guarda los comentarios lo que no se bien es como ir a escribir este valor bool ahi, yo soy principiante en esto del php y bases de datos y este proyecto lo retome de uno ya hecho por eso se me complica.

es posible acomodar un checkbox en el administrador de noticias que inserte en la base de datos el valor de esta forma?

GetSQLValueString(isset($_POST['pod']) ? "true" : "", "defined","1","0"),

o como seria la manera correcta porque la base de datos ya existe y el formulario de noticias agrega muchos valores como el titulo, el texto, si lleva foto, o video etc etc y ahi abria que agregarle este valor

podrian ayudarme orientandome un poco??
  #7 (permalink)  
Antiguo 13/05/2009, 12:33
Avatar de alguienmas  
Fecha de Ingreso: mayo-2009
Mensajes: 62
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Php y mysql

La verdad es que no uso DW, por lo que no conozco la funcion GetSQLValueString, pero en teoria debes hacer esto:
1) debes encontrar la tabla en que es guardada la noticia (al parecer ya latienes por lo que dices aqui)
Cita:
el formulario de noticias agrega muchos valores como el titulo, el texto, si lleva foto, o video etc etc y ahi abria que agregarle este valor
2) debes modificar la estructura de la tabla para que tenga un nuevo campo BOOL
sql_1keydata_com/es/sql-alter-table_php ----> remplaza _ por . (aun no puedo poner enlaces)

3) modificar el formulario de ingreso y modificacion (bueno si lo tiene) de noticias, para que aparesca el checkbox de si tiene o no comentario.

4) modifica la pagina a la que direccionado el formulario ( esto lo ves en el atributo action del form), para que ahora agregue el campo nuevo en el INSERT de la BD. mmm para ser mas claro en alguna pàrte agrega la noticia a la BD pues ahora ademas de la informacion que tenia debe guardar en la BD, si lleva o no comentarios (similar si se puede modificar la noticia)
sql_1keydata_com/es/sql-insert-into_php ----> manual insert (para nuevas noticias) y update (para modificar noticias)


eso es todo, parece largo y dificil pero no lo es, de hecho es mas difil explicarlo XD, llendo al codigo es algo asi:

debe aparesca algo asi
INSERT INTO noticias VALUES(.......)

lo dejas asi
INSERT INTO noticias VALUES(....... , isset($_POST['pod']))

y con eso ya debiera funcionar.

Espero me hayas entendido y no haber sido demasido extenso en mi respuesta.
Saludos
  #8 (permalink)  
Antiguo 14/05/2009, 10:17
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 0
ok lo estoy checando en este momento, perdon por la tardanza pero tengo pocas horas al dia para esto ;)
en un momento publicare mis resultados gracias por los consejos :)

estoy teniendo un problema con un erro que me marca al mandar lso comentarios algo asi

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result

y otro con

Warning: mysql_free_result(): supplied argument is not a valid MySQL result

entonces estoy tratando de solucionarlo de hecho ya publique otro tema para conseguir ayuda en cuanto lo arregle revisare esta solucion

muchas gracias por su paciencia se que soy muy principiante aun

al parecer ya todo esta funcionando solo tengo un pequeño problema en el codigo que pasaste

Código PHP:
$sql "SELECT * FROM noticias where id = $id";
$result mysql_query($sql) or die(mysql_error());
$row mysql_fetch_assoc($result);
//el codigo para las noticias
if($row['tiene_comentario'])
{
   
//codigo para los comentarios

no puedo escribir el codigo en
{
//codigo para los comentarios
}

por alguna razon la llave no se cierra y se descompone todo el codigo siguiente no se si sea un problema con (") o algo asi el codigo que pondre tambien lleva formas en html

Última edición por GatorV; 16/05/2009 a las 19:28
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 06:27.