Problema PHP & MySQL (Urgente)

Iniciado por Rayao, 8 Marzo 2009, 01:14 AM

0 Miembros y 1 Visitante están viendo este tema.

Rayao

Hola Gente!!
Estoy construyendo una pagina web y necesito que se registren en el foro.
La idea es la siguiente:
1r -Se registran en un formulario, los datos pasen a la base de datos, una vez echo esto cuando el usuario introduzca el nombre de unsuario y la clave acceda al foro.
2n -Despues de haber echo estos pasos para hacer una consulta a la base de datos de los usuarios, donde se registran.
3r -Una consulta a la base de datos del foro, con la ID, nombre, fecha, mensaje.
Tengo que seguir estos pasos:
-Conexion
-Acceso
       -Consulta de registro
       -Modificacion registro
       -Añadir registro
-Desconexion
Mi pregunta es la siguiente: ¿Como hago todo esto? :huh:




^Tifa^

#1
Citar1r -Se registran en un formulario, los datos pasen a la base de datos, una vez echo esto cuando el usuario introduzca el nombre de unsuario y la clave acceda al foro.

Pues deberias tener 2 tablas.

Código (sql) [Seleccionar]


mysql> create table formulario( id smallint,
    -> nombres char(15) not null,
    -> contraseña varchar(40) not null,
    -> pais varchar(30),
    -> edad int,
    -> constraint pk_id primary key(id),
    -> unique(nombres));
Query OK, 0 rows affected (0.09 sec)

mysql> create table datos( id smallint,
    -> fecha date,
    -> mensaje varchar(80))
Query OK, 0 rows affected (0.08 sec)

mysql> create index indice on datos(id);



Citar2n -Despues de haber echo estos pasos para hacer una consulta a la base de datos de los usuarios, donde se registran.

Esto no lo entendi bien, pero supongo que se te pidio para que guardes el campo ID del usuario en cuestion en una variable de session o algo así que podras utilizar para insertar datos en la tabla Datos (Mensaje, fecha por ejemplo). utilizando el mismo valor del campo ID correspondiente al usuario en cuestion.

Citar3r -Una consulta a la base de datos del foro, con la ID, nombre, fecha, mensaje.

pues podrias hacer tu consulta filtrando por ID utilizando usuario y fecha como predicados.

Código (sql) [Seleccionar]


mysql> select id, nombres, fecha, mensaje from formulario natural join datos;
+----+---------+------------+----------------------+
| id | nombres | fecha      | mensaje              |
+----+---------+------------+----------------------+
|  1 | pepe    | 2005-11-23 | No me gusta ducharme |
|  1 | pepe    | 2008-10-23 | La lechuga es Mala   |
|  2 | lucia   | 2003-05-23 | Las rosas rojas      |
|  2 | lucia   | 2007-02-25 | Lavando la ropa      |
+----+---------+------------+----------------------+
4 rows in set (0.00 sec)


mysql> select id, nombres, fecha, mensaje from formulario natural join datos wh
re fecha = '2003-05-23';
+----+---------+------------+-----------------+
| id | nombres | fecha      | mensaje         |
+----+---------+------------+-----------------+
|  2 | lucia   | 2003-05-23 | Las rosas rojas |
+----+---------+------------+-----------------+
1 row in set (0.01 sec)

mysql> select id, nombres, fecha, mensaje from formulario natural join datos whe
re nombres = 'pepe';
+----+---------+------------+----------------------+
| id | nombres | fecha      | mensaje              |
+----+---------+------------+----------------------+
|  1 | pepe    | 2005-11-23 | No me gusta ducharme |
|  1 | pepe    | 2008-10-23 | La lechuga es Mala   |
+----+---------+------------+----------------------+
2 rows in set (0.02 sec)



Un poquito de Tunning para asegurarnos que los indices le estamos sacando el beneficio que es :

Código (sql) [Seleccionar]


mysql> explain select datos.id, nombres, fecha, mensaje from formulario, datos w
here formulario.nombres = 'pepe' and formulario.id = datos.id\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: formulario
         type: ref
possible_keys: PRIMARY,indecito
          key: indecito
      key_len: 60
          ref: const
         rows: 1
        Extra: Using index condition
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: datos
         type: ref
possible_keys: indice
          key: indice
      key_len: 3
          ref: primaria.formulario.id
         rows: 2
        Extra:
2 rows in set (0.00 sec)

mysql> select datos.id, nombres, fecha, mensaje from formulario, datos where for
mulario.nombres = 'pepe' and formulario.id = datos.id
    -> ;
+------+---------+------------+----------------------+
| id   | nombres | fecha      | mensaje              |
+------+---------+------------+----------------------+
|    1 | pepe    | 2005-11-23 | No me gusta ducharme |
|    1 | pepe    | 2008-10-23 | La lechuga es Mala   |
+------+---------+------------+----------------------+
2 rows in set (0.00 sec)





Espero que mas o menos esto te sirva de guia, no es la manera mas correcta lo admito, pero hasta la fecha no he generado desde cero ningun foro con PHP. :P

Rayao

Cita de: Rayao en  8 Marzo 2009, 01:14 AM
Hola Gente!!
Estoy construyendo una pagina web y necesito que se registren en el foro.
La idea es la siguiente:
1r -Se registran en un formulario, los datos pasen a la base de datos, una vez echo esto cuando el usuario introduzca el nombre de unsuario y la clave acceda al foro.
2n -Despues de haber echo estos pasos para hacer una consulta a la base de datos de los usuarios, donde se registran.
3r -Una consulta a la base de datos del foro, con la ID, nombre, fecha, mensaje.
Tengo que seguir estos pasos:
-Conexion
-Acceso
       -Consulta de registro
       -Modificacion registro
       -Añadir registro
-Desconexion
Mi pregunta es la siguiente: ¿Como hago todo esto? :huh:
PS: Si pede ser con PHP

                                                                               Un saludo!


^Tifa^

Citar
Tengo que seguir estos pasos:
-Conexion
-Acceso
       -Consulta de registro
       -Modificacion registro
       -Añadir registro
-Desconexion

Como pretendes hacer lo anterior... sin haber primero estructurado y creado tus tablas???? Yo te expuse el primer paso. Lo otro que solicitas (conectarse, desconectarse he Insertar) Que han sido las unicas 3 cosas que no explique a tu peticion, y esos 3 pasos no son nada complicados no tanto en PHP sino con cualquier lenguaje de programacion....

La parte mas dificil no es programar en PHP y conectarte a la DB, una de las situaciones mas complicadas de la programacion web con base de datos es precisamente estructurar las tablas antes de....

Eso que pides perfectamente se hace en PHP.

conexión :

Código (php) [Seleccionar]


<?php

$conexión 
mysql_connect('localhost','usuario','contrasena');

   if ( 
$conexión ) {
   
mysql_select_db('base_datos'$conexión) or die('Problemas con la DB');

  
mysql_query('INSERT INTO TABLA ...bla bla bla'$conexión);

  } else {

  echo 
"Problemas en la Base de datos intentelo nuevamente<br>";

 }

?>



No es tan complicado, te he expuesto una parte muy importante de tu peticion, pero no puedo realizarte el trabajo completo.

Rayao

necesito crear para hoy mismo un registro a un foro para que puedan acceder los usuarios al foro ya registrados. Ya tengo creado el formulario y las dos tablas en mysql me hace falta crear:
la conexion a la base de datos
consultas
registros.
Las tablas las guardo con la extension de mysql es decir qbquery, no se si eso es correcto a la hora de ponerlo en codigo php.
si pudiera poner mi pagina aqui para que la beais, pero no se como ponerla.

espero que me echeis una mano, urgente mente.

^Tifa^

Porque continuas preguntando como conectarte a la base de datos con PHP? Y igual continuas como hago una consulta a la base de datos por PHP????

O sea  :-\

Código (php) [Seleccionar]


<?php $conexión mysql_connect('localhost','usuario','contraseña');   

 if ( 
$conexión ) { 
  
mysql_select_db('base_datos'$conexión) or die('Problemas con la DB');  

mysql_query('INSERT INTO TABLA ...bla bla bla'$conexión);   } 

else {  

 echo 
"Problemas en la Base de datos intentelo nuevamente<br>";  } ?>





Tu objetivo es que te den todo el codigo PHP realizado en base a tu peticion. Y aca hasta lo que tengo entendido, nadie te da nada realizado, te exponen algun ejemplo para que veas como deberias tu realizarlo pero de ahi a dartelo hecho... creo que haz propuesto mal tu pregunta.

Que tiene de complicado validar en un foro en PHP los usuarios si tienes las tablas como yo te la expuse ya, hay una tabla llamada formulario que es la que obtuvo todo lo que el usuario inserto al registrarse por el formulario HTML. entonces para validar en PHP hacia el foro bastaria con un simple query..

$consulta = mysql_query("select nombres, contrasena from formulario where nombres = $variable_usuario and contrasena = md5($variable_contrasena", $conexión);

Donde las 2 variables que sirven de condicion son las que obtienes en PHP a traves de las dos etiquetas INPUT de acceso Html. solo es valido lo de md5 si guardaste el registro de contrasena cifrada en md5 (Lo cual es sumamente conveniente) entonces que tiene de complicado eso? Si concuerdan el usuario y la contrasena insertados el usuario en si tendra acceso full al foro... en caso que no concuerden te toca a ti como programador denegarle el acceso y eso tambien es simple :

Código (php) [Seleccionar]


if ($consulta) {
acceso al foro
} else {
echo "Lo siento error de usuario o contrasena<br>";
}



Yo hecho no puedo dartelo... yo me pregunto como estructuraste tablas en MySQL y armaste formularios HTML y desconoces la parte mas sencilla de todo.... validar usuario y redericcionarlo a distintas webs acorde a su validacion  :-\