Opcion de comentarios. Leido 23.197 veces

 
  Broco
Pregunta
Resuelta.
Aver quiero poner para que se pueda comentar en los perfiles... y que los mensajes los pueda borrar el dueño del perfil osea perfil=1 que el user con la id uno pueda borrar comentarios, tambien quiero que cada 8 comentarios se cre una pagina...

 

 





  Jesús
Respuesta correcta
Ha recibido:
1 premios
El while es para que lo haga siempre que responda la función asignando un resultado a la variable row.

Así te sacará los del sql2 también cada vez que se haga el bucle y cuando no queden más resultados en el $sql parará.

PD: En el código que has puesto te falta un dólar en el $sql2




while ( $row = mysql_fetch_array($sql) ) {
$row2=mysql_fetch_array($sql2);

}




 

 


  [NiCo]
Respuesta correcta
Lo haria pero estoy sin tiempo :S
Te dejo esto:

Sistema de Comentarios
Paginacion de Comentarios

Salu2

 

 


  Broco
E cambiado de idea, quiero que puedan poner un mensaje..
Con 11 campos.. xD por que are una tabla con 11 filas y en cadda fila tiene que mostrar una cosa..
Y que lo puedan modificar el creador :S
Las tablas se iran añadiendo en la misma pagina.. osea no quiero titulos ni nada de ese
estilo http://www.cinetube.es/
Que se añaden unas tablas encima de otras...
PD:añadiran tablas no filas..

 

 


  [NiCo]
Bueno, mira te explico solo necesitas lo que te voy a explicar y un poco de ingenio xD

Suponiendo que envias datos desde un form el codigo php para añadir, modificar, eliminar y listar son estos:

Asi agregas cosas a una base de datos:



mysql_query("insert into tabla(nombre,apellido,mail) values
('$_REQUEST[nombre]','$_REQUEST[apellido]',$_REQUEST[mail])",
$conexion) or die("Problemas en el select".mysql_error());


Asi modificas cosas de una base de datos:



mysql_query("update table
set nombre='$_REQUEST[nombre]'",$conexion) or
die("Problemas en el select:".mysql_error());


Asi eliminas cosas de una base de datos:



mysql_query("delete from tabla where nombre='$_REQUEST[nombre]'",$conexion) or
die("Problemas en el select:".mysql_error());


Asi listas cosas de una base de datos:



$sql=mysql_query("select nombre,nombre, apellido, mail
from tabla",$conexion) or
die("Problemas en el select:".mysql_error());
while ($row = mysql_fetch_array($sql))
{
echo 'Nombre: '.$row[nombre];
echo 'Apellido: '.$row[apellido];
echo 'Mail: '.$row[mail];
}


Luego tenes que implementar el diseño y como te dije tener un poco de ingenio.

Salu2

 

 





  Broco
Ok ahora lo miro, para no perder tiempo te hago una pregunta facil.
Si pongo
----------------------



if (.$row[nombre]=="hola")
{
echo 'Nombre: '.$row[nombre];
echo 'Apellido: '.$row[apellido];
echo 'Mail: '.$row[mail];
}


---------------------
¿eso funcionaria? osea de esa forma ¿solo se mostrarian los que tiene de nombre "hola"?
lo digo por que hare varia secciones.. pero son por lomenos 100 secciones xD no puedo crear 100 tablas xD lo digo por que si funcionase en cada seccion pondria un
if (.$row[nombre]=="loquesea")


 

 


  [NiCo]
Lo estas haciendo mal porque el punto del $row va cuando tienes una comilla delante por ejemplo:



echo 'hola '.$row[nombre];

Pero si no hay comilla:

echo $row[nombre];

Asi que en tu caso seria:

if ($row[nombre]=="hola")
{
echo 'Nombre: '.$row[nombre];
echo 'Apellido: '.$row[apellido];
echo 'Mail: '.$row[mail];
}


Sin el . en el if.

Salu2

 

 


  Broco
Me dice...
Problemas en el selectTable 'Nombrebasededatos.tabla' doesn't exist
Tengo tabla comentarios y dentro campos email nombre y apellidos..
La cuestion es que hay dice que se selecciona la tabla email la tabla apellidos..
¿pero no dice campos?
Nose muy bien como funciona.. digo mas o menos lo que me imagino..
Mi base de datos es asi...
Tabla:Comentario
Campo: Nombre
Campo: Apellido
Campo: email

 

 


  [NiCo]
Es que yo puse en nombre de la tabla: tabla
Vos tenes que reemplazar tabla por el nombre de tu tabla, por ejemplo:



$sql=mysql_query("select nombre, apellido, mail from tabla",$conexion) or
die("Problemas en el select:".mysql_error());
while ($row = mysql_fetch_array($sql))
{
echo 'Nombre: '.$row[nombre];
echo 'Apellido: '.$row[apellido];
echo 'Mail: '.$row[mail];
}


Reemplazalo por:
.



$sql=mysql_query("select nombre, apellido, mail from Comentario",$conexion) or
die("Problemas en el select:".mysql_error());
while ($row = mysql_fetch_array($sql))
{
echo 'Nombre: '.$row[nombre];
echo 'Apellido: '.$row[apellido];
echo 'Mail: '.$row[mail];
}


Salu2

 

 


  Broco
El codigo de leer desde la base de datos me dice.

Problemas en el select: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 'from tabla' at line 2

 

 





  [NiCo]
A ver dame tu codigo.

Salu2

 

 


  Broco
$sql=mysql_query("select email,
from comentarios",$conexion) or die("Problemas en el select:".mysql_error());
while ($row = mysql_fetch_array($sql))
{
echo 'Nombre: '.$row[email];
}
?>

 

 


  [NiCo]
Respuesta correcta
Es que luego del mail pones una ,



$sql=mysql_query("select email from comentarios",$conexion) or die("Problemas en el select:".mysql_error());
while ($row = mysql_fetch_array($sql))
{
echo 'Nombre: '.$row[email];
}


Por ahi tambien puede ser si tu tabla es Comentarios y no comentarios, osea con la 1º letra en mayusculas; en ese caso debes cambiar comentarios por Comentarios.

Salu2

 

 


  Broco
Ok, me funciona.. pero tengo un problema
Se agrega por abajo y necesito que sea por arriba, osea es asi:
1
2
3
4
5
6
Y quiero que sea
..
6
5
4
3
2
1

 

 


  !!r0Nk0!!



$sql=mysql_query("select email from comentarios order by ID desc",$conexion) or die("Problemas en el select:".mysql_error());

while ($row = mysql_fetch_array($sql))
{
echo 'Nombre: '.$row[email];
echo "<br>";
}
?>

ID = al campo donde guarda la id de lo que quieres mosrtrar, por ejemplo si lo quieres ordenar según el comentario de forma ascendente y tu tabla comentarios tiene el campo idcomentario

[codigo]
order by idcomentario desc


 

 


  Broco
lo guardo en un campo que se llama id, pero creo que ese lo crea automaticamente la base de datos..
Bueno e puesto lo que me as dicho pero no funciona :S

 

 


  !!r0Nk0!!
Respuesta correcta
Fallo mio era DESC puse lo contrrario que te los mostrara de forma ASC es decir ascendente 1,2,3,4,5...

Modificado el post anterior.

 

 


  Broco

oki muchas grax Ronko funciona 100%
Una dudita mas xD


mysql_query("delete from tabla where nombre='$_REQUEST[nombre]'",$conexion) or

die("Problemas en el select:".mysql_error());


¿como hago para que se muestre el boton "borrar" sola y exclusivamente al creador del comentario?
MODIFICO

¿Como cuento la cantidad de id que hay en un campo?
Por ejemplo: Hay 3 usuarios registrados...

 

 


  [NiCo]
Respuesta correcta
Te respondo la 2º
Tenes que hacerlo de esta forma:



$sql=mysql_query("select count(*) as cantidad from tabla",$conexion) or
die("Problemas en el select:".mysql_error());
$row = mysql_fetch_array($sql);
echo 'En esta tabla hay '.$row[cantidad].' registros';


Acordate de reemplazar tabla por tu tabla ;)

Salu2

 

 


  !!r0Nk0!!
Respuesta correcta
Más fácil



$sql = "SELECT CAMPO FROM TABLA";
$result = mysql_query($sql);
$numero = mysql_num_rows($result);
echo 'Hay' .$numero. 'usuarios registrados';




 

 


  Broco
Gracias a los 2 :) ¿Para mostrar solo los ultimos 10?
Seria con un for ¿no?
e creadoe esto
[codigo]
for(for=10|$f<==10[$f++|$F$row=mysql_fetch_array($sql))
{
echo "".$row[nombre];
} [/codigp]
Jeje, no funciona.. xD

 

 


  !!r0Nk0!!
Respuesta correcta
Ha recibido:
1 premios



$sql=mysql_query("select nombre from TABLA limit 10",$conexion) or die("Problemas en el select:".mysql_error());

while ($row = mysql_fetch_array($sql))
{
echo 'Nombre: '.$row[nombre];
echo "<br>";
}



 

 


  Broco
[codigo]
$sql=mysql_query("select nombre from usuarios limit 10 order by id DESC",$conexion) or die("Problemas en el select:".mysql_error());
while ($row = mysql_fetch_array($sql))[codigo]
:S, nose como ponerlo para que funcione el orden..

 

 


  [NiCo]
Respuesta correcta



$sql=mysql_query("select nombre from usuarios order by id DESC limit 10",$conexion) or die("Problemas en el select:".mysql_error());
while ($row = mysql_fetch_array($sql))


Salu2

 

 


  Broco
como pongo 2 variables en un while



while ($row = mysql_fetch_array($sql)|$wor=mysql_fetch_array(sql2))


Quiero hacer un if para que se muestre el boton de borrar

if (row[nombre]==$wor[nombre])
......

 

 


  [NiCo]
Creo que funciona asi:




while (($row = mysql_fetch_array($sql)) | ($wor=mysql_fetch_array(sql2)))
{

}



Si no funciona reemplaza el | con un and

Salu2

 

 


  Broco
No funciona :(

 

 


  Jesús
Respuesta correcta
Ha recibido:
1 premios
El while es para que lo haga siempre que responda la función asignando un resultado a la variable row.

Así te sacará los del sql2 también cada vez que se haga el bucle y cuando no queden más resultados en el $sql parará.

PD: En el código que has puesto te falta un dólar en el $sql2




while ( $row = mysql_fetch_array($sql) ) {
$row2=mysql_fetch_array($sql2);

}




 

 


  Broco
Oki jesus ese si funciona..
¿como pongo el if?
e probado cero que todas las formas que exsisten pero no me sale.
osea esto pero bien echo:



if (row[nombre]==row2[nombre])
{
echo "Borrar";
}


 

 


  Jesús
En principio le falta el dólar a las dos variables, después si usas mysql_fetch_array tendrás que acceder por número de campo $row[0]
 

 


  Broco
:S sorry pero no me funciona..
Nose que falla deveria ir..



$row2[1]=$row[nombre];
$row[1]=$row[nombre];
if ($row[1]==$row2[1]){
echo "hhhhhh";
}


 

 


  Jesús
Si quieres que mysql_fetch_array te de también los keys por id tendrás que ponerle el parámetro , MYSQL_BOTH, de ese modo el array tiene tanto las keys string como las keys integer.



while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {

}


Lee las definiciones y usos de mysql_fetch_array y mysql_fetch_row
http://es.php.net/manual/en/function.mysql-fetch-row.php
http://es.php.net/manual/en/function.mysql-fetch-array.php

De todos modos en el código que pones asignas primero un resultado al otro, eso no tiene sentido, ten en cuenta que si yo hago:


select campo0,campo1 from mitabla where campo1 = 22 ;


$row[0] es lo mismo que $row[coampo0] , hay que tener en cuenta que las matrices(arrays) empiezan por 0 siempre, por lo que el primer campo es el 0.


 

 


  Broco
lo siento pero me lo e leido y con ganas pero no me entero de nada :S
Las variables de mensaje de arriba estan mal xD osea eso no era lo que queria hacer a sido un fallo :)

 

 





    ¿Cuantas columnas?     | 2 columnas | 3 columnas | 4 columnas | 5 columnas | 6 columnas |  
    Escribe la dirección web de la imagen:
  Publica tu respuesta  |  Haz Click en el siguiente cuadro para escribir