Beruflich Dokumente
Kultur Dokumente
Vinculos
http://notas-de-codigo.tumblr.com/post/17893112113/chat-sencillo-jquery-phpmysql
http://www.youtube.com/watch?v=feKAJwhQFSk
http://html5up.net/
Crear la base de datos y o las tablas de nuestro proyecto desde php puede ser til de vez
en cuando, o por lo menos cmodo, ya que no tenemos que estar abriendo nuestro editor
de mysql para despus terminar haciendo lo mismo, simplemente podemos crear una clase
en php que contenga las funciones que necesitemos para crear la base de datos y nuestras
tablas, slo basta con conocer un poco la sintaxis de mysql para poder hacer las consultas
que necesitamos.
Como otras tantas veces crearemos una clase y nos conectaremos a nuestro servidor
utilizando la extensin PDO, como veremos no le pasaremos la base de datos a la que
queremos conectar, slo le pasaremos el servidor, el user y la pass y a continuacin
crearemos en una funcin la base de datos y las tabla users y posts.
Como veremos simplemente con ejecutar esa funcin se crear tanto la base de datos como
las tablas, as que nunca ser un caso prctico hacer esto as, deberamos hacer
comprobaciones como por ejemplo quin est accediendo al script y dependiendo de eso
dejar o no ejecutar la funcin, pero eso lo dejo para que cada uno lo haga por su cuenta
porque est ms que explicado como crear usuarios y establecer sesiones.
Veamos como crear nuestra clase, nuestra conexin y la funcin encargada de armar nuestra
base de datos.
PHP
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
<?php
class Create_database
{
protected $pdo;
public function __construct()
{
$this->pdo = new PDO("mysql:host=servidor;", "root", "password");
}
//creamos la base de datos y las tablas que necesitemos
public function my_db()
{
//creamos la base de datos si no existe
$crear_db = $this->pdo->prepare('CREATE DATABASE IF NOT EXISTS nueva COLLATE
utf8_spanish_ci');
$crear_db->execute();
//decimos que queremos usar la tabla que acabamos de crear
if($crear_db):
$use_db = $this->pdo->prepare('USE nueva');
$use_db->execute();
endif;
//si se ha creado la base de datos y estamos en uso de ella creamos las tablas
if($use_db):
//creamos la tabla usuarios
$crear_tb_users = $this->pdo->prepare('
CREATE TABLE IF NOT EXISTS users (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(100) COLLATE utf8_spanish_ci NOT NULL,
lastname varchar(150) COLLATE utf8_spanish_ci NOT NULL,
username varchar(100) COLLATE utf8_spanish_ci NOT NULL,
password varchar(100) COLLATE utf8_spanish_ci NOT NULL,
email varchar(100) COLLATE utf8_spanish_ci NOT NULL,
registro date NOT NULL,
fecha datetime NOT NULL,
PRIMARY KEY (id)
)');
$crear_tb_users->execute();
//creamos la tabla posts
$crear_tb_posts = $this->pdo->prepare('
CREATE TABLE IF NOT EXISTS posts (
id int(11) NOT NULL AUTO_INCREMENT,
id_user int(11) NOT NULL,
titulo varchar(255) COLLATE utf8_spanish_ci NOT NULL,
contenido text COLLATE utf8_spanish_ci NOT NULL,
fecha_post datetime NOT NULL,
PRIMARY KEY (id)
)');
$crear_tb_posts->execute();
endif;
}
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
}
//ejecutamos la funcin my_db para crear nuestra bd y las tablas
$db = new Create_database();
$db->my_db();
?>
Como podemos ver es un script bien sencillo, y al final vemos como creamos una instancia de
la clase Create_database y accedemos a la funcin my_db, de esta forma al acceder a este
script esa funcin ser ejecutada y nuestra base de datos con las dos tablas ser creada,
espero que se haya entendido, un saludo.
cargar-mensajes.php
<?php<br>
require('conexion_a_la_bd');
mysql_select_db('base_de_datos');
4
5
6
7
8
9
10
$arrDate = explode("-",
11
12
13
$arrDateTime[0]);<br>
$arrTime = explode(":", $arrDateTime[1]);<br>
if($arrDateTime[0] == date("Y-m-d"))<br>
$dia = "Hoy, ";<br>
else<br>
$dia = $arrDate[2].'/'.$arrDate[1].'/'.$arrDate[0].', ';<br><br>
if($arrTime[0] >
12)<br>
$hora = ($arrTime[0]-12).':'.$arrTime[1].'pm';<br>
else<br>
$hora = $arrTime[0].':'.$arrTime[1].'pm';<br>
<br>
$ret = '<div><span title="'.
$dia.$hora.'" class="chat-usuario">'.$msj->usuario.'</span>: '.$msj>mensaje.'</div>'."\n".$ret;
}
14
15
// Liberamos la consulta
16
mysql_free_result($resultado);
17
18
19
echo $ret;
?>
<?php <br>
3
4
5
6
$u = false;
if(isset($_POST['chat-usuario']) and strlen(trim($_POST['chatusuario'])) > 0)
{
$usuario = $_POST['chat-usuario'];
$u = true;
8
9
require('conexion_a_la_bd');
10
11
12
13
14
$m = true;
15
}
16
17
$ret = '';
18
19
20
21
22
23
24
25
mysql_select_db('base_de_datos');
mysql_query("INSERT INTO chat (usuario,mensaje) VALUES ('".
$usuario."','".$mensaje."')");
$ret = '<div><span title="Hoy, '.date('h:i').'" class="chatusuario">'.$usuario.'</span>: '.$mensaje.'</div>'."\n";
26
27
28
echo $ret;
?>
<div id="chat">
44
<div id="chat-mensajes"></div>
45
<form id="chat-form">
46
47
48
49
50
51
</form>
</div>
#chat-mensajes {
2
3
overflow: auto;
}
<script type="text/javascript">
7
8
9
10
11
12
13
14
15
16
$(document).ready(function() {
// Accion que nos ubica en el mensaje mas reciente
function setScroll(){
$('#chat-mensajes').scrollTo('div:last', 1000 );
}
// Aadir el nuevo
17
18
$('#chat-form-mensaje').val('');
setScroll();
19
});
20
21
// Limpiar el cuadro
de texto
return false;
});
22
23
24
25
26
27
28
} else {
29
setScroll();
30
31
}
});
32
33
34
35
$('#chat-mensajes').load('cargar-mensajes.php');
36
setScroll();
37
},15000);
38
39
40
});
</script>