Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FONCTION D'AFFICHAGE DE DONNÉES MYSQL


Information sur la source

Catégorie :Base de données Classé sous : mysql, tables, lien, tri, affichage Niveau : Débutant Date de création : 03/04/2008 Date de mise à jour : 04/04/2008 18:09:48 Vu / téléchargé: 7 640 / 469

Note :
Aucune note

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Cette fonction permet d'afficher des données provenant d'une ou plusieurs tables MySQL avec, si nécessaire, des liens entre les tables, des libellés de colonnes et le tri des données par colonne.

Pour utiliser cette fonction il faut inclure le fichier contenant la source et envoyer un certain nombre de paramètres, comme ci-dessous: (se retrouve dans le fichier page_d_appel.php)

<?php
include('TableGed.php');
//Inclure le fichier avec la source
//*********************************
$Tables='nom_de_la_table_1,nom_de_la_table_2,nom_de_la_table_3';
//Indiquer sur quelles tables on travaille
//**********************************
$Links='1%2%IDTable1,1%3%IDTable3';
//Indiquer quels tables sont liées entre elles par un champ de même nom
//(Souvent IDnom_de_la_table)
//Dans cet exemple les tables nom_de_la_table_1 et nom_de_la_table_2 sont liées par IDTable1 (1%2%IDTable1)
//et les tables nom_de_la_table_1 et nom_de_la_table_3 sont liées par IDTable3 (1%3%IDTable3)
//**********************************
$Fields='IDTable1,nom_de_la_table_1.IDTable2,ChampDivers1,ChampDivers2,ChampDivers3,ChampDivers4';
//Indiquer les champs à afficher d'après leur nom dans la base de donnée
//Pour afficher un champ dont le nom est le même dans deux table, préciser la table (NomTable.NomChamp)
//**********************************
$Names='ID,Tralala,Pouet pouet,Camion,Boumboum,Tequila';
//Le titre des colonnes du tableau, dans l'ordre des champs correspondant à ces colonnes.
//**********************************
creatable($Tables,$Links,$Fields,$Names);
//Appel de la fonction
?>
 

Source

  • <?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>';
  • }
  • ?>
<?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>';
}	
?>

Conclusion

Fonction à développer pour pouvoir envoyer un paramètre $Edit et un paramètre $Delete pour pouvoir choisir quels champs sont éditables et quels champs sont supprimables, ainsi que pour la pagination.

Merci de vos retours.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

04 avril 2008 18:05:31 :
Merci beaucoup à DEPRESSION et YOMAN64 pour leurs critiques et leurs conseils ;) Modifications: - Suppression des variables temp qui étaient inutiles (je voulais éviter l'empilement de tableaux mais c'était absurde) - Suppression de la partie concernant la pagination car rien n'était prévu pour l'utiliser (je la réintroduirais proprement par la suite) - Regroupement des GET en début de code, respect des quotes et protection contre l'injection SQL - Amélioration du respect des standards (je dis amélioration car je n'ai pas la certitude d'être à 100%) - Gestion de l'échec de la requête SQL - Suppression d'un certain nombre d'aberrations diverses
04 avril 2008 18:09:48 :
- Regroupement des Get et protection contre les injections SQL - Amélioration du respect des standards - Correction d'aberrations diverses (ex: $_GET[tri]) - Suppression des variables temps qui étaient inutiles - Suppression de la partie concernant la pagination car pas encore fonctionnel Merci à DEPRESSION et YOMAN64 pour leurs critiques et leurs conseils ;)

Commentaires et avis

signaler à un administrateur
Commentaire de depression le 03/04/2008 23:35:55

Allez, je vais devoir endosser le rôle du grand méchant.

L'intention est louable, peut être qu'elle est pratique pour toi, mais cela fait une nouvelle "syntaxe" spécifique à apprendre.

En plus, je ne vois pas trop l'intérêt. Ca paraît trop fastidieux pour ce que tu fais. Tu devrais plutôt regarder du côté de PDO, ou t'essayer au Zend Framework.

Ensuite, je vais te repprocher ce que l'on repproche souvent ici (ou sur d'autres sites) :
On n'écrit plus <? mais <?php
Mets des simples quotes à la place des doubles
Faire de l'affichage dans une fonction, je ne suis pas pour du tout.
Les expressions régulières en ereg() sont obsolètes, renseigne toi plutôt autour de preg_match()


Enfin voila quoi.


J'espère ne pas t'avoir vèxé (ben si c'est le cas tant pis), mais bon, je pense que tu devrais repenser tout ça, et surtout simplifier, ou regarder d'autres solutions (Comme Zend Framework que j'ai déja cité).

signaler à un administrateur
Commentaire de yoman64 le 04/04/2008 06:29:02

Et moi j'vais prendre le role du boulet qui complête le grand méchant xD.

Pas besoin de se tapper un framework pour faire ça, c'est trop simple pour s'encombrer d'un framework.
Mais je suis d'accord avec tout le reste.

J'ajouterais que: $_GET[tri] ... berk tu sais que il doit y avoir des quotes la dedans ? si ça fonctionne c'est que quand php trouve aucune correspondance pour une constante ben il lui donne la valeur de son nom.
C'est pour ça que echo blablabla va afficher blablabla mais faut pas faire pour autant $_GET[tri], plutot $_GET['tri']

Ensuite préfère les opérateur de comparaison de type genre === !== plutot que == et != .


Tu ne vérifie même pas que la requête abouti bien, si c'est pas le cas ton code va planter sans avertir,ce qui est mal. Tu ne respecte pas du tout les standards (x)html , ce qui est mal aussi.

Ton code peut être beaucoup, mais vraiment BEAUCOUP raccourcit et optimisé.

Bonne chance :)

signaler à un administrateur
Commentaire de yoman64 le 04/04/2008 06:30:14

Ah ouais et fait gaffe au injections SQL, informe toi sur mysql_real_escape_string.

signaler à un administrateur
Commentaire de Snakegun le 04/04/2008 12:01:38

Pourquoi méchant? C'est pas de la méchanceté c'est des bonnes critiques, objectives et qui me sont directement utiles. Si j'avais la certitude de coder parfaitement je ne perdrais pas de temps sur un site communautaire ! :)

Je vais m'atteler à améliorer cela, merci pour vos conseils.

Après quand à l'utilité de la fonction elle est discutable, effectivement, mais j'en avais besoin pour un cas précis et j'apprécie d'avoir un retour...

signaler à un administrateur
Commentaire de Snakegun le 04/04/2008 12:34:15

En fait, sans vouloir abuser de votre temps et de votre générosité, j'aurais besoin de quelques éclaircissements avant de poster une nouvelle version...

Pourquoi utiliser les opérateurs de comparaison qui prennent en compte le type des variables? Je comprendrais si les données provenaient d'un formulaire mais là je vois pas bien... Idem pour mysql_real_escape_string.

Et pourquoi préférer les simples quotes, sachant que je suis de toute façon obligé d'utiliser des doubles lorsque je concatène du code HTML nécessitant des quotes avec des variables?

Et puis évidemment, nonobstant le fait que ca ne soit plus Noël, je ne déconsidérerais pas un petit exemple de simplification possible et un petit exemple de non respect des standards.

Enfin, je rougis, puis blanchis et re-rougis encore en comprenant que ce n'était pas ici qu'il me fallait poster cette source mais dans le forum... J'implore votre clémence!

signaler à un administrateur
Commentaire de yoman64 le 04/04/2008 12:54:03

Hum avec des simples quotes on peut tout faire ce que les doubles font, mais en plus rapide (hormis les chars spéciaux)
echo 'Salut '.$nom.' et bienvenue'; est plus rapide que "Salut $nom et bienvenue" de toute façon.

Le problème est que tu utilises les doubles quotes à tout va, par exemple dans tes explodes "," c'est inutile, ',' serait beaucoup plus beau. Quand tu veux inclure des variables, ou des \n, alors vas y , mais sinon c'est inutile...


Ensuite tes données proviennent bien d'un formulaire, $_GET[tri].... $_GET les données viennent de où tu crois ? Donc les échapper est essentiel...

Les opérateur de comparaisons qui prennent le type de variables n'ont RIEN a voir avec la sécurité , au contraire puisque les données venant d'un formulaire sont toujours de type string de toute façon.

En fait c'est simplement une bonne habitude à prendre, parce que sinon php va faire des conversions d'un type à l'autre inutiles. Le problème est le manque de typage et de rigueur de php à la base qui pousse à coder comme un cochon, mais il est toujours bien d'utiliser les bons types de variables pour ce qu'on veut faire.

Plus d'infos: http://fr3.php.net/operators.comparison

Un exemple de non respect des standards:

print"<th><a href=".crealink($Fields[$cpt]).">$Names[$cpt]</a></th>";


l'url devrait être entouré de doubles quotes,

print"<th><a href=\"".crealink($Fields[$cpt])."\">$Names[$cpt]</a></th>";

Ou encore mieu:
print '<th><a href="'.crealink($Fields[$cpt]).'">'.$Names[$cpt].'</a></th>';


Une petite optimisation pour la route (celle la j'lai cherché loin :P) :

for($cpt=0;$cpt<$F;$cpt++)

++$cpt est plus rapide que $cpt++

donc
for($cpt=0;$cpt<$F;++$cpt)


Bref tu ferais mieu de rendre ta source fonctionnelle directement, sinon j'ai bien peur qu'un admin la supprime éventuellement...

Bonne chance :)

signaler à un administrateur
Commentaire de malalam le 04/04/2008 19:59:56 administrateur CS

Hello,

@yoman => pour ta dernière remarque, tu es allé chercher en effet très, très loin...la différence est tellement infime qu'aucun applicatif web n'en profiterait vraiment. Fais le test, tu verras :-)

Concernant la source :
- une fonction qui utilise directement les GET a un problème : elle ne peut s'utiliser quand dans un contexte bien précis. A ta place, je passerais les GET en paramètre.

- ça :
#  if ($tri === $nvtri)
# {
# if($sens==='ASC')
# $sens = 'DESC';
# else
# $sens = 'ASC';
# }
# else
# {
# $sens = 'DESC';
# }
peut se condenser ainsi :
if ($tri === $nvtri && $sens = 'ASC') {
    $sens = 'DESC';
} else {
    $sens = 'ASC';
}
- ça :
#  $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]."`";
# }
peut se résumer largement avec un implode(). Ca évite une boucle. Je ne suis pas sûr que ce soit plus rapide néanmoins.
- on t'a dit d'utilier preg_* plutôt qu'ereg_*, certes. Néanmoins, on ne t'a pas dit d'utiliser strpos()quand tu n'avais pas besoin d'expression régulière. Ce qui est le cas.
- mysql_fetch_array() renvoie un tableau doublement indexé. Si tu n'utilises que les index numériques, autant passer la constante MYSQL_NUM  à cette fonction.

Dernière chose (je n'ai pas exploré le code à fond) : je ne suis pas d'accord avec Yoman sur le "framework". Utiliser PDO par exemple permettrait sans aucune modification d'utiliser ton code pour n'importe quelle bdd, ce qui n'est pas le cas actuellement (c'est mysql ou rien). D'autant plus que la connexion à la base se fait en dehors de ton code (seul moment ou le type de bdd utilisée est important avec PDO).

signaler à un administrateur
Commentaire de yoman64 le 04/04/2008 20:24:32

@malalam : Sur un applicatif web non en effet aucune différence , il faut une boucle de plusieurs dizaines de millions d'itérations pour voir une différences de quelques dixièmes de seconde :P.

Mais une optimisation ça reste une optimisation non? :-)

PS: Pour PDO je suis d'accord avec toi, mais pour Zend Framework je maintiens mon point de vu (pour mon commentaire j'avou que je n'avais pas vu PDO, je m'étais arreté à Zend :))

signaler à un administrateur
Commentaire de malalam le 04/04/2008 20:47:09 administrateur CS

@yoman => je n'avais pas vu Zend Framework, je m'étais arrêté à PDO ;-) Egalité! Donc je suis d'accord avec toi sur le framework.
Bref, je suis d'accord sur le zend Framework (excellent, hein...là n'est pas la question...on n'utilise pas un framework pour 3 fonctions génériques).
Une optimisation reste une optimisation : oui. C'est vrai. Si ça ne fait pas forcément du bien...ça ne peut pas faire du mal (en tous cas, pas dans ce cas: l'impact sur le code est nul). MAIS...je devais le préciser,parce que je ne voudrais pas que les futurs débutants se voient fustigés parce qu'il ont utilisé la post-incrémentation au lieu de la pré-incrémentation...si je sais que ce n'est pas ton but et que tu ne feras jamais de ce genre de remarques ton cheval de bataille, je me méfie de certains huluberlus se prenant pour des pros, et qui pourraient prendre ta remarque pour argent comptant, l'utilisant à chaque code pour descendre son auteur.
J'avais prévenu : je serai désormais plus intransigeant...donc, ne vois là aucun reproche : tu as raison :-) Et tu pourras le re-préciser au prochain code ! Je veux juste être sûr que ce ne soit pas utilisé à mauvais escient par d'autres plus tard.

signaler à un administrateur
Commentaire de yoman64 le 04/04/2008 21:42:47

Salut malalam,

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)

signaler à un administrateur
Commentaire de depression le 04/04/2008 21:57:47

@malalam:

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.

signaler à un administrateur
Commentaire de malalam le 04/04/2008 22:04:46 administrateur CS

@Depression => les frameworks...voilà encore un sujet qui aurait sa place dans un débat public, quelque part sur le site :-)
Pourquoi pas le bar!
Parce que j'ai mon avis dessus ;-) et j'aimerais beaucoup entendre celui d'autres développeurs.

signaler à un administrateur
Commentaire de malalam le 04/04/2008 22:10:55 administrateur CS

@yoman => attention...quand j'ai parlé d'incidence, c'était contextuel. Dans ce cas là (celui d'une boucle for), ça n'a pas d'incidence. Et à vrai dire dans mon message, je ne parlais que d'incidence sur l'écriture du code (pas plus long, pas plus court), pas même sur ce que ces différntes notations font.
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.

signaler à un administrateur
Commentaire de Eregon le 07/04/2008 17:49:42

Pour ceux qui sont trop fainéants pour tester ça , ça donne:
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;

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Bug avec mon affichage page par page [ par FilipeZA ] Bonjour &#224; tous,Mon probl&#232;me concerne l'affichage des liens de mon code "Affichage page par page".lorsque dans la news 1 j'ai 8 commentaires pb d'affichage avec mysql_fetch_array [ par rocknroll2 ] Slt à tousj'ai 1 blême d'affichage après un select dont voici le code:mysql_select_db($database, $connectbase);$reponse = mysql_query($query_reponse, aide pour affichage aleatoire mysql [ par pidjot ] bonjour, j'aimerez faire un script de gestion de banniere j'ai deja fais les tables ect mais je n'arrive pas a faire un affichage aleatoire avec mysql affichage info bd via lien html [ par laubro ] Bonjour,j'utilise des form pour faire des recherches de petites annonce dans le site sur lequel je bosseet j'aimerai savoir comment on peut utiliser u Affichage de date MySQL [ par mightteam ] Salut a tous,alors voila je cherche une simple fonction qui me permettrais d'inverser les date de MySQLActuellement elle sortent comme suit : AAAA-MM- positionner affichage sur lien sélectionné [ par richardd ] Salut,A partir d'un tableau contenant une liste de lien.Quelle solution pour: &nbsp; - qu'apr&#232;s s&#233;lection d'un des liens.&nbsp;&nbsp; - au r Interroger 2 tables d'une meme base (php+mysql) [ par alex1025 ] Bonjour,Je vous expliqueje veux ajouter un système d'annonce qui est reservé aux membressauf que j'ai 2 types de membres rangées dans 2 tables différe Tri sur 2 champs mysql [ par arnold002 ] Bonjour,J'ai une base de données mysql qui contient 2 champs note & nb_votantJe calcule une moyenne :$moyenne = note/nb_votant;Je voudrai faire un tri je débute...probleme de lien suite à un while [ par deodato ] Bonsoir à tous, avant tou bonne année. :-)Voilà mon probleme, je vais parler avec des mots simples car le monde du php est tout nouveau pour moi.j'ai probleme de connexion [ par gromito ] Je suis chez multimania et j ai un petit probleme de connexion a ma base de donn&#233;e si quelqu u n pouveit m aider. Mon code est le suivant: &lt;


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.