Le Blog du Piaf

Aller au contenu | Aller au menu | Aller à la recherche

Programmation

C, C++,PHP, MySQL bref, tout ce qui touche à la prog' !

Fil des billets - Fil des commentaires

vendredi, février 5 2010

Ma classe pour accéder facilement à MySQL, TiSQL

Un matin, on se dit : "tiens? et si je faisais une classe mysql en php" :angel: (et oui, je rêve souvent de pHp la nuit :rolleyes: ). Cette classe permet d'effectuer des requêtes a un server MySQL facilement. Il suffit d'écrire la requête, et le resultat est retourné. L'avantage, c'est qu'il n'y y plus besoin de faire plusieurs ligne. Et les requêtes sont préparés. Optimisation et surtout protection contre l'injection SQL.

La classe est disponible sur ce lien class.tisql.phps.

Comment l'utiliser?

Inclure et instancier la classe.


  1. <?php
  2. require_once('class.tisql.php');
  3. $tisql = new TiSQL('localhost', 'utilisateur_mysql', 'motDePasseMysql');
  4. ?>

Deux méthodes principaux : singleQuery et multiQuery.

singleQuery renvoie le résultat sous forme d'objet par défaut. Il est possible de changer le format de retour.


  1. <?php
  2. $result = $tisql->singleQuery('SELECT * FROM user WHERE id = ?', array('1'));
  3. echo $result->id;
  4. ?>

Pour changer le type de donnée, il faut mettre une 3ème options.


  1. <?php
  2. $result = $tisql->singleQuery('SELECT * FROM user WHERE id = ?', array('1'), PDO::FETCH_ASSOC);
  3. echo $result[id];
  4. ?>

La seconde méthode est multiQuery. Elle est utilisé lorsque la requête renvoie plusieurs lignes de résultat. Elle renvoie une ressource MySQL. Il faut donc la traiter.


  1. <?php
  2. $result = $tisql->multiQuery('SELECT * FROM user WHERE id > ? and id < ?', array('1', '10'));
  3. while($data = $result->fetch()){
  4. echo $data->id;
  5. }
  6. ?>

D'autre méthode ont été implémenté, pour avoir des infos sur le nombre de requête ou la dernière entrée insérer. La doc dispo sur doc.tisql.phps

Enjoy ;)

Signature

dimanche, mai 3 2009

Une image qui change en PHP

La bannière de mon blog change a chaque changement de page. J'aurais pu faire une fonction en PHP et le mettre dans le thème, mais on ne peut pas (ou difficilement). Une autre méthode existe, on peut créé un fichier PHP qui va se comporter comme une image en png par exemple. Il y a des en-tête à mettre, et ainsi, le fichier php n'est plus un fichier texte, mais une image.

samedi, mai 2 2009

Lister les fichiers d'un dossier avec PHP

Sur le site du zéro, il y a un tutoriel pour pouvoir rendre "plus jolie" la liste des fichiers d'un dossier grâce au htaccess. Ca marche très bien, mais le souci, c'est que je ne peux pas faire de htaccess sur mon serveur. Comment faire ? Avec du PHP :P (une évidence :D ). J'ai fait un petit script qui fait la liste des fichiers, il lit l'extension, le poids, la date de modification du fichier, et il l'affiche. En plus de ca, on peut associer des icones. Très pratique et simple, le script est disponible sur le lien "Lire la suite"

Signature

lundi, août 18 2008

Fréquence News : L'actu informatique en live !

Etant toujours à la pointe de la technologie, je me dois aussi être au courant des dernières actualités. Il y a quelques temps, j'ai découvert un site : Fréquence News . Super site, de nombreux site y sont regroupé, fini les onglets à gogo :drop: .

Le problème, c'est que toute les news sont mélangés (surtout sur cette page ) et la page ne se rafraichi pas toute seule. Parce que les news, il y en a toute les minutes :mdr: .

Grâce à ce script, je peux avec toute les news, mais seulement ceux que je veux afficher. Comme les jeux ne m'intéresse pas, je les exclus et je ne garde que ce que je veux voir. De plus ça rafraichi la page toute les 30 sec (ou plus, c'est réglable).

Pour afficher le code source, cliquer sur Lire la suite

Design le plus simple du monde (ou pas de design :lol: ). Je vais aussi faire en sorte de différencier les news déjà lu et non lu. Merci qui ? :clapclap:

Et au final ça donne ca : http://www.lepiaf-blog.com/frequencenews/index.php

Signature

vendredi, juillet 18 2008

Hébergement d'image

Hehehehe !!! Je suis mon propre hébergeur d'image. Comme imageshark ou hiboox, il y a toute une interface pour l'envoie, la génération de miniature et la génération du code HTML et BBcode.

lundi, juin 30 2008

Hop ! Un livre d'or

Je progresse bien, je viens de créé un livre d'or. Rien de compliqué, je me suis basé sur le minichat et j'ai améliorer le script.

http://www.lepiaf-blog.com/1php/livre_or.php

Signature LePiaf

Apprentissage du PHP

Ça y est ! C'est les vacances ! No Stress :lol: . J'en profite pour apprendre les langages de programmation, tel que le C et le PHP/MySQL. Pour le moment je vais me concentrer sur ces deux langages car ils se ressemblent beaucoup. Le PHP est beaucoup plus simple.

Avec l'aide du site du zéro, je progresse bien. Faut dire qu'avec le PPE, j'en ai mangé de la programmation, du PicBasic.

J'ai réalisé un Mini Chat avec toute les améliorations proposé. C'est chouette :D

Il ne me manque plus qu'un super design.

Voici la page : http://www.lepiaf-blog.com/1php/minichat.php :yipee:

Aller ! La prochaine fois je créé mon forum :blblbl:

<?php
/* 
Script Mini Chat by LePiaf 
30/06/2008
Amélioration : Effacement des messages supérieur a 1000
			   Vérifiaction du double envoie
			   Horodatage des message
			   Compteur total de message posté.
*/
 
$server = "localhost";
$nom = "lepiaf";
$db = "lepiaf";
$motDePasse = "************";
 
// On vérifie si les variables existent
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
	// On vérifie si les variables ne sont pas vides.
	if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
	{
		mysql_connect($server,$nom,$motDePasse);
		mysql_select_db($db);
		$reponse = mysql_query("SELECT * FROM mini_chat ORDER BY id DESC LIMIT 0,1"); //On récupère le dernier message
		$last_msg = mysql_fetch_array($reponse); //On enregistre le dernier message dans un variable
		mysql_close();
 
		if ($_POST['message'] != $last_msg['message']) // On verifie si le message n'a pas été envoyer deux fois
		{	//On test si le message envoyer n'est pas le meme que celui de la BDD
			// Connection à la BDD
			mysql_connect($server, $nom, $motDePasse);
			mysql_select_db($db);
 
			$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
			$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
 
			mysql_query("INSERT INTO mini_chat VALUES('','$pseudo', '$message')"); // Ajout d'un nouveau message
 
			$compter2 = mysql_query("SELECT COUNT(*) AS nbs_message2 FROM mini_chat"); //On compte le nombre de message
			$messageTotal2 = mysql_fetch_array($compter2);	// on renvoie un tableau
 
			if ($messageTotal2['nbs_message2'] == "1000") // Si il y a 10 message ou plus, on supprime l'ancien.
			{
				$toutMessage = mysql_query("SELECT * FROM mini_chat");
				$dernierMessage = mysql_fetch_array($toutMessage);
				$IDdelete = $dernierMessage['id'];		//On enregistre l'ID du premier message
				mysql_query("DELETE FROM mini_chat WHERE id=$IDdelete "); //On supprime le message correspondant à l'ID
			}
			mysql_close();
		} //Fin de l'enregistrement du message
	}
}
//On affiche le formulaire et les 10 derniers message
 
?>
 
 
<form action="minichat.php" method="post">
<input type="text" name="pseudo" value="< ?php echo $_POST['pseudo']; ?>"/>
 
<input type="text" name="message" />
 
<input type="submit" />
</form>
 
<?php
//Connection a la BDD
mysql_connect($server, $nom,$motDePasse);
mysql_select_db($db);
$list = mysql_query("SELECT * FROM mini_chat ORDER BY id DESC LIMIT 0,10");
 
mysql_close();
while ($donnees = mysql_fetch_array($list))
{
?>
 
Message posté le < ?php echo date('d'); echo "/"; echo date('t'); echo "/";
echo date('Y'); ?> à < ?php echo date('H');?>:< ?php echo date('i'); ?>
par < ?php echo $donnees['pseudo']; ?>
 
<?php echo $donnees['message']; ?>
 
 
 
 
<?php
}
 
// On compte le nombre d'entrée et on l'affiche.
mysql_connect($server,$nom,$motDePasse);
mysql_select_db($db);
$compter = mysql_query("SELECT * FROM mini_chat ORDER BY id DESC");
$messageTotal = mysql_fetch_array($compter);
mysql_close();
?>
Il y a eu <?php echo $messageTotal['id']; ?> message posté.

mercredi, février 20 2008

Jeux sur TI-82 : Les 30 bâtons

On viens de me lancer une idée comme ça, et je l'ai réaliser. On m'a parlé de ce jeu qui consiste à retirer des bâtons. Il y a 30 bâtons sur la table, on a le droit d'en retirer 1,2 ou 3. Le but est donc de tous les enlever, mais, il ne faut pas être le dernier à prendre le dernier bâton. Il y a toute un stratégie, tout dépend de l'intelligence de l'adversaire :grin: .

Ca c'est dans la vie réel. Mais dans ce jeu on va jouer contre l'ordinateur, plus précisément, contre la calculatrice. C'est une TI-82 Stats doté d'un processeur de 6Mhz : Génial ! :drop:

C'est un programme très simple. Le joueur joue en donnant un chiffre entre 1 et 3. Ensuite c'est au tour de la calculatrice. Il tire au hasard un chiffre entre 1 et 3. Il faut vérifier avant que le joueur joue si le nombre de bâton est suffisant. Sinon, L'un perd, l'autre gagne.
J'ai aussi développer une Intelligence Artificielle (IA pour les intimes ^_^ ). Il a la capacité d'agir en fonction du nombre de bâton restant, et il se débrouille toujours pour que le nombre de bâton lui soit favorable.

Voici quelques photos du jeu, je vais mettre a disposition le code source dès que possible.

Image Image Image Image

Pour anecdote, j'ai créé ce jeu pendant les 2 heures de cours de maths :drop:

Signature LePiaf