Ses derniers messages sur les forums
(zebden) You'll die from my painfull madness !
Tu préfères une explication sans explication ?
for( instruction_init
; condition_continue
; instruction1) instruction2 ;
Bon, pour être constructif : c'est vraiment imbitable ce que j'ai écris ? Comment tu écrirais en français ce à quoi correspond la seconde instruction de la structure de langage for ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(La Globule) C'est pas bien de donner la solution sans donner l'explication :p
Pour compléter, la seconde clause de l'instruction for correspond à la condition sous laquelle l'instruction suivant for doit être reconduite.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Non, Pâcques c'est le dimanche. C'est pour ça qu'il y a le Lundi de Pâcques. À noter que les festivités (oui, les Chrétiens fêtes la mise en clous de leur prophète) démarrent le Jeudi Saint (précédent la Pâcques).
Et que le Vendredi Saint est férié en région Alsace et dans le département de la Moselle.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Je vais être méchant, même cinglant et sentencieux. Âmes sensibles s'abstenir.
Si 946 pages te font peur.
Ou la structure if te parait inutile.
Ou tu crois que programmer s'improvise.
Ou tu crois en la magie imbuée par le guru.
Alors abandonne.
Sinon prend ton courage et apprend.
946 pages, c'est rien pour un bouquin de programmation. Surtout les mauvais livres Micro Application sont orientés vers la mise en pratique rapide.
J'ai a côté de moi mon Stroustrup, qui fait un peu plus de 1000 pages, index et sommaire inclus. Avec peu d'exemple, des concepts souvent ardus. La prochaine édition devant certainement être bien plus étoffée en raison des ajouts à la norme ISO C++. Et bien que n'étant pas fréquenté le Bac L, 1000 pages ne m'ont jamais fait peur.
Alors si tu veux apprendre à programmer un site web dynamique, sécurisé et fonctionnel, reprends ton courage à demain, et utilises toutes les ressources dont tu disposes, à la demande.
Quand à moi, j'en profite pour conseiller le livre de Stéphane Mariel sur le PHP5, dans la collection « les Cahiers du Programmeur », aux éditions Eyrolles.
Ce n'est pas un grand livre de référence, mais il a la qualité d'aller à l'essentiel, de ne pas contourner la sécurité, et d'être concis, de ne pas être un catalogue de fonctions, de proposer des bonnes pratiques (GoF design patterns) et pas chère. Et surtout, il ne prétend pas au remplacement du manuel PHP officiel en ligne. 276 pages pour 29 €.
Ce livre est un bon début pour quiconque souhaite s'initier à la programmation de sites Web dynamiques.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Je rajouterais que le safe_mode peut échapper automatiquement les caractères spéciaux du XML. À savoir les chevrons et l'esperluette.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(davinci34) Ce n'est pas ce que La Globule a remarqué. L'image ne doit pas faire partie du document HTML, c'est une ressource externe au document.
Donc tu dois avoir un script qui génère le HTML, et un **autre** qui génère l'image.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(La Globule) Tu as raison en fait, la clé n'est pas utilisé pour la jointure :
+----+-------------+----------+-------+---------------+-----------+---------+------+------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+----------+-------+---------------+-----------+---------+------+------+----------------------------------------------+
| 1 | SIMPLE | voitures | index | NULL | modele_id | 5 | NULL | 1 | Using index; Using temporary; Using filesort |
| 1 | SIMPLE | modeles | ALL | NULL | NULL | NULL | NULL | 1 | |
| 1 | SIMPLE | marques | ALL | NULL | NULL | NULL | NULL | 1 | |
+----+-------------+----------+-------+---------------+-----------+---------+------+------+----------------------------------------------+
Je traduisais mal « on » :( mea culpa. Bref, il faut effectivement spécifier une condition complète.
select marques.id as marque_id , marques.marque as marque , modeles.id as modele_id , modeles.modele as modele , count(voitures.id) as total from voitures left join modeles on voitures.modele_id = modeles.id left join marques on modeles.marque_id = marques.id group by marque, modele order by marque, modele asc;
Avec le explain qui indique bien l'usage des clés :
+----+-------------+----------+--------+---------------+-----------+---------+-------------------------+------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+----------+--------+---------------+-----------+---------+-------------------------+------+----------------------------------------------+
| 1 | SIMPLE | voitures | index | NULL | modele_id | 5 | NULL | 1 | Using index; Using temporary; Using filesort |
| 1 | SIMPLE | modeles | eq_ref | PRIMARY | PRIMARY | 4 | test.voitures.modele_id | 1 | |
| 1 | SIMPLE | marques | eq_ref | PRIMARY | PRIMARY | 4 | test.modeles.marque_id | 1 | |
+----+-------------+----------+--------+---------------+-----------+---------+-------------------------+------+----------------------------------------------+
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
J'irais plus loin en proposant l'implémentation du singleton. Par exemple :
<?php
class ezSQL
{
protected function __construct()
{
}
static protected $instance ;
static public function get()
{
if(!self::$instance)
self::$instance = new self ;
if(!self::$instance)
throw new Exception("Sad sick world !") ;
return self::$instance ;
}
/** reste de la classe
*/
}
?>
On l'utiliserais ainsi :
<?php
try
{
$db = zeSQL::get() ;
}
catch($e)
{
/** Gestion de l'exception */
}
/** utilisation de la classe */
?>
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(La Globule) Non, Lorsque les tables sont liées par des clés, tu indiques la clé primaire sur laquelle tu veux joindre.
Pour t'en convaincre, demande à explain ce qu'il en pense :)
(Sammuel) Ça veut dire quoi, « elle ne marche pas » ? Message d'erreurs ? Les données fournies ne sont pas celles attendues ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Dans ton script, preg_match_all n'est exécuté qu'une fois le fichier récupéré.
D'ailleurs, quels sont les messages d'erreur de PHP lorsqu'il échoue ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.