Soyez le premier à donner votre avis sur cette source.
Vue 13 111 fois - Téléchargée 990 fois
<?php function crealink($nvtri) { $p = mysql_real_escape_string($_GET['p']); $tri = mysql_real_escape_string($_GET['tri']); $sens = mysql_real_escape_string($_GET['sens']); if ($tri === $nvtri) { if($sens==='ASC') $sens = 'DESC'; else $sens = 'ASC'; } else { $sens = 'DESC'; } $link = 'index.php?p='.$p.'&tri='.$nvtri.'&sens='.$sens; return $link; } function creatable($Tables,$Linksa,$Fields,$Names) { $Tables=explode(',',$Tables); $Links=explode(',',$Linksa); $Fields=explode(',',$Fields); $Names=explode(',',$Names); $p = mysql_real_escape_string($_GET['p']); $tri = mysql_real_escape_string($_GET['tri']); $sens = mysql_real_escape_string($_GET['sens']); $T = Count($Tables); $L = Count($Links); $F = Count($Fields); $N = Count($Names); if($F!==$N) die('Erreur de la fonction creatable(). Envoyez autant de Noms que de Champs...<br>'); else if($T===0 || $F===0) die('Erreur de la fonction creatable(). Envoyez au moins une Table et un Champ...<br>'); if(empty($tri)) $tri=$Fields[0]; print'<table><tr>'; for($cpt=0;$cpt<$F;++$cpt) { print"<th><a href='".crealink($Fields[$cpt])."'>".$Names[$cpt]."</a></th>"; } print'</tr>'; $req="SELECT * FROM "; for($cpt=0;$cpt<$T;++$cpt) { if($cpt>0) $req.=", "; $req.="`".$Tables[$cpt]."`"; } if(!empty($Linksa)&&$L>0) { $req.=" WHERE "; for($cpt=0;$cpt<$L;++$cpt) { if($cpt>0) $req.=" AND "; $temp = explode('%',$Links[$cpt]); $req.="`".$Tables[$temp[0]-1]."`.`".$temp[2]."`=`".$Tables[$temp[1]-1]."`.`".$temp[2]."`"; } } $req.=" ORDER BY $tri $sens ;"; $res=mysql_query($req) or die("La fonction creatable() a causé une erreur SQL. Vérifiez les paramètres."); while($val=mysql_fetch_array($res)) { print'<tr>'; for($cpt=0;$cpt<$F;$cpt++) { if(ereg('\.',$Fields[$cpt])) { $temp=explode('.',$Fields[$cpt]); print '<td>'.$val[$temp[1]].'</td>'; } else { print '<td>'.$val[$Fields[$cpt]].'</td>'; } } print'</tr>'; } print'</table>'; } ?>
7 avril 2008 à 17:49
0111
Donc, la variable $a n'est incrémentée qu'après son affichage.
En simple(juste pour retenir), lisez de gauche à droite^^.
echo $a++; = echo $a; $a++;
tandis que
echo ++$b; = $b++; echo $b;
4 avril 2008 à 22:10
Parce que une incidence, il peut y en avoir une!! Et pas une petite...exactement comme en C si mes souvenirs sont bons, d'ailleurs, et très exactement comme en assembleur (parce que oui, j'en ai fait, j'ai même commencé par ça...enfin non, j'ai commencé par le basic de mon C64...puis j'ai enchaîne sur l'assembleur). Un exemple valant 1000 discours :
<?php
$a = 0;
$b = 0;
echo $a++;
echo ++$b;
echo $a;
echo $b;
?>
Le différence est énorme...donc les 2 écritures se justifient : tout dépend du contexte.
4 avril 2008 à 22:04
Pourquoi pas le bar!
Parce que j'ai mon avis dessus ;-) et j'aimerais beaucoup entendre celui d'autres développeurs.
4 avril 2008 à 21:57
Oui pour le strpos, pour une fois, j'ai oublié de le rappeler ;-)
Quand à Zend Framework, je le cite car je travaille dessus en ce moment, et son modèle d'abstraction de bases de données est vraiment bien fait (Ca et le reste). Et bien sur, il utilise PDO (faut être logique, vu l'équipe des développeurs).
Bon, il demande d'assimiler pas mal de choses (bien plus que Jelix), mais on y gagne.
4 avril 2008 à 21:42
Ne t'en fais pas je comprends tout à fait, il est vrai que l'impact est nul, et que on ne devrait certainement pas reprocher à quelqu'un d'utiliser $var++, au contraire puisque justement l'impact est nul. Comme tu as dû t'en douter, j'ai sortie ça parce qu'il demandait une optimisation et je voulais sortir quelques choses de peu connu, tout en restant simple :). Note bien que je ne me prends pas pour un pro (enfin,je travail tout de même dans le domaine..), et je n'ai certainement pas la prétention d'être ne serait-ce qu'à moitier aussi bon que toi ;-) Ceci dit il est vrai qu'il est très courant (sur ce site et ailleurs) que certain reprennent une remarque vu quelque part en la reprochant à tout le monde ensuite, je suppose qu'ils sont fier de ce qu'ils ont appris et veulent montrer qu'ils sont meilleurs... Si ma remarque à une tel incidence, alors je serai le premier à le regretter.
PS: Revenons à l'incrémentation, J'ai découvert cette subtilité du langage dans mon (bref) passé de codeur c++, alors corrige moi si je me trompe (ceci est une question, par curiosité), mais est-ce que les incrémentations en php sont faites directement par du code en c++ ? Puisqu'en c++ ++i et i++ n'est pas executé de la même façon d'un point de vu assembleur (Je n'entrerai pas dans les détails que tu dois sans doute déja connaitre :-)), alors je suppose que php c'est pareil puisqu'il repose sur ça ?. Et d'après toi, pourquoi php comporte t'il les deux méthodes et les executes de manière différentes, si de toute façon ça n'a pas d'incidence direct sur le code ? (Enfin, après cette question fauderait pas partir un grand débat, parce qu'on s'éloigne un peu du sujet haha)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.