burinho Posté 25 Février 2005 Posté 25 Février 2005 bonjour, je suis arrivé a ecrire sur ma BDD, a recupere des infos de la base. mais comment faire pour faire une mise en page correct
xpatval Posté 25 Février 2005 Posté 25 Février 2005 (modifié) Plusieurs méthodes pour ce faire: 1: dans le cadre de ta page xxx.php, tout ce qui concerne le html se code ainsi: <?phpinclude "connect.php";$var = "toto";print "<table><tr><td>";print "Mon nom". $var;print "</td></tr></table>";$sql = "select....";?> ou encore comme ceci: 2: <?phpinclude "connect.php"; // (par exemple)$var = "toto";?><table><tr><td>Mon nom est <?php echo $var;?></td></tr></table><?php$sql = "select...";?> Et puis ensuite, il faudra essayer de séparer véritablement la partie html, du code php. xpatval Modifié 25 Février 2005 par xpatval
burinho Posté 25 Février 2005 Auteur Posté 25 Février 2005 en faite j'ai déjà fais mon tableau pour récuperer les donnees de la base. voilà ce que j'ai essayé de faire. <?php mysql_connect("localhost", "root", "") or die("Impossible de se connecter : " . mysql_error()); mysql_select_db("acps"); //$req_compte = "SELECT nom,prenom, adresse,cp,ville,mail,date_adhesion,date_fin FROM membres"; $reponse = mysql_query("SELECT nom FROM membres"); // Requête SQL //if ($result= mysql_query($req_compte)) //execution de la requette et test de réussite //{echo "requete reussie"; //} //else { echo mysql_errno() . ": " . mysql_error(). "\n" ; exit(1);}//message d'erreur while ($donnees = mysql_fetch_array ($reponse) ) { ?> <table> <tr> <td> <?php echo $donnees['nom'] ; ?> </td></tr> </table> <? } mysql_close(); ?> mais apparament ça marche pas
xpatval Posté 25 Février 2005 Posté 25 Février 2005 As-tu un message d'erreur ? De plus, il est fortement conseillé d'initialiser les variables dont tu vas te servir, au départ du script. Pour ce faire, la méthode la plus simple (à mon sens) est la suivante: Tu crées un fichier initvar.php dans lequel tu vas initialiser les variales de la sorte: <?php$var= ( isset ( $_REQUEST['var'] ) ) ? $_REQUEST['var'] : '';?>pour toi ce sera:$nom = ( isset ( $_REQUEST['nom'] ) ) ? $_REQUEST['nom'] : ''; Ensuite, au départ de ton script, tu inclus initvar.php, comme cela: <?phpinclude "initvar.php";le reste de ton script... Mais surtout, quel est le message d'erreur ? xpatval
burinho Posté 25 Février 2005 Auteur Posté 25 Février 2005 merci, j'ai trouvé mon erreur, je pense que je n'ai pas du mettre quelque chose correctement en commantaire. maintenant ça marche
lupucide Posté 25 Février 2005 Posté 25 Février 2005 De plus, il est fortement conseillé d'initialiser les variables dont tu vas te servir, au départ du script. Ah, un sujet qui m'intéresse Pourrais tu m'expliquer pourquoi cela est conseillé ? je tripote un peu MySQL et j'aimerais vraiment pouvoir optimiser mes scripts.
Anonymus Posté 26 Février 2005 Posté 26 Février 2005 Initialiser ses variables au début du script peut avoir une certaine importance.. logique. En fait, un programme prend des parametres en début de script, les traite, et execute des actions. Mais logiquement, on ne commence pas le programme pour analyser au beau milieu de celui-ci, les parametres qui ont été entrées au début. De plus, le controle des variables en début de script conditionne le script dans sa globalité. Par exemple, tu ne peux envoyer d'entetes (header) si d'autres données ont déjà été envoyées. Par contre, je déconseille fortement l'utilisation de la variable $_REQUEST. On doit savoir si l'on envoie une données d'une page à une autre en method POST ou GET, et c'est une erreur de récupérer dans un 'super tableau' l'une ou l'autre. Un exemple : vous faites un formulaire, que vous envoyez en method POST, vous récupérer les données en method REQUEST, en pensant que ca récupérera les données de la méthode POST, alors que quelqu'un pourrait très bien ajouter des champs dans l'url, ce qui ferait passer le REQUEST en methode GET. Nico.
xpatval Posté 26 Février 2005 Posté 26 Février 2005 (modifié) Par contre, je déconseille fortement l'utilisation de la variable $_REQUEST..En partie d'accord avec Anonymous, à ceci près: à mon (petit) niveau de programmeur php, il m'arrive parfois d'avoir, pour une variable, l'utilisation des deux méthodes (POST et GET), suivant l'action proposée dans les pages. Dans ce cas, l'utilisation du $_REQUEST règle l'affaire. Je n'ai pas trouvé d'autres solutions. A moins qu'il soit possible de tester quelle méthode est employée lors de la réception d'un paramètre. xpatval Modifié 26 Février 2005 par xpatval
Ex-floodeur Posté 1 Mars 2005 Posté 1 Mars 2005 Plusieurs méthodes pour ce faire: Et puis ensuite, il faudra essayer de séparer véritablement la partie html, du code php. xpatval <{POST_SNAPBACK}> PAr rapoort à ces deux méthodes, est ce que la deuxieme est melleure que la première ou bien le fait de sortir le HTML des éléments PHP ne change rien ?
lupucide Posté 1 Mars 2005 Posté 1 Mars 2005 Ne serait-il pas mieux de faire un include du <td> avec la requête dans le tableau ?
xpatval Posté 1 Mars 2005 Posté 1 Mars 2005 PAr rapoort à ces deux méthodes, est ce que la deuxieme est melleure que la première ou bien le fait de sortir le HTML des éléments PHP ne change rien ? Il faudrait normalement séparer le php du html, car même si les deux s'implémentent mutuellement, leur utilité n'est pas la même. Je préfère la deuxième méthode, par souci de clarté dans le html, car il est beaucoup plus simple de trouver une erreur de "" dans du html que dans du php générant du html, surtout si ton script fait 500 lignes (je pense à des lignes de ce genre: <?phpprint "<div class=\"classcss\" style=\"margin: 5px;\">". $i['var'] ."<span class=\"...\">" etc... Ne serait-il pas mieux de faire un include du <td> avec la requête dans le tableau ? C'est à dire ? je n'ai pas compris ta question. xpatval
Portekoi Posté 1 Mars 2005 Posté 1 Mars 2005 Ne lui complique pas la chose avec les includes Pour ma part, je te conseille d'aller voir ici : http://www.phpdebutant.org On ne conduis pas tout de suite.. d'abord, on a une phase d'apprentissage Ensuite pour ce qui est du $_REQUEST, je ne l'utilise pas. Lorsque je transmet mes variables des 2 facons, je le fais ainsi : $var = $_POST["var"]; if ($var == "" ) $var = $_GET["var"]; Naturellement, j'utilise une fonction pour virer tout ce qui est espace, quote, slash.... toussa quoi ++ Portekoi
lupucide Posté 1 Mars 2005 Posté 1 Mars 2005 Je voulais dire : <table><tr><?php include ('requete_sql.php'); ?></tr></table>
Ex-floodeur Posté 1 Mars 2005 Posté 1 Mars 2005 Il faudrait normalement séparer le php du html, car même si les deux s'implémentent mutuellement, leur utilité n'est pas la même.Je préfère la deuxième méthode, par souci de clarté dans le html, car il est beaucoup plus simple de trouver une erreur de "" dans du html que dans du php générant du html, surtout si ton script fait 500 lignes (je pense à des lignes de ce genre: <?phpprint "<div class=\"classcss\" style=\"margin: 5px;\">". $i['var'] ."<span class=\"...\">" etc... oui, quand on a un gros code, c'est vrai que c'est plus clair de faire cette séparation nette : niveau efficacité ca change quelque chose ?
xpatval Posté 1 Mars 2005 Posté 1 Mars 2005 (modifié) Je ne saurais répondre à ta question, Ex_Floodeur. IL faudrait faire un tuning entre code séparé et non-séparé, je suppose, et encore, pour des scripts comportant 95 boucles imbriquées... <table><tr><?php include ('requete_sql.php'); ?></tr></table> Tu imagines, si tu dois faire 20 sauts de lignes, avec 65 cellules, dans requête_sql.php ? et que tu loupes un simple </tr> ? c'est vite le foutoir... xpatval ps: tiens, il faudrait que je teste if (!($_POST['var']))... Modifié 1 Mars 2005 par xpatval
Ex-floodeur Posté 2 Mars 2005 Posté 2 Mars 2005 en fait, je me pose la question car tu très bien avoir ton PHP explosé en 50 petits morceaux dans ton code : n'est ce pas trop chiant pour le serveur ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant