× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum des Webmasters
 Creer une page html à partir d'une page phpSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
loulou84
  Posté le 07/02/2010 @ 17:46 
Aller en bas de la page 
Petit astucien

Bonsoir,

Je m'explique un peu: j'aimerais automatiser un peu les creations de mes pages web. En effet dans la page catalogue, j'aimerais à l'aide d'un formulaire et un peu de php creer ma page catalogue ou quelques details changent pour les produits, mais tout le reste est pareille.

Donc je releve mes variable prix,nom,details mais aprés je ne sais pas comment creer une page html ou meme un fichier .html a l'aide du php ?

Je sais pas si c'est comme cela qui faut faire?

Un petit coup de main s'il vous plait!

merci

Publicité
Dreamer
 Posté le 07/02/2010 à 17:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Salut

C'est un site qui existe et que tu veux transformer en e-commerce avec une interface d'administration ???

Si oui , un lien serait utile !!

SkyNet
 Posté le 07/02/2010 à 18:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bjr,

C'est bien comme cela qu'il faut faire, seulement le PHP est un language de programmation à part entière et il y a beaucoup de chose à apprendre. On ne vas pas tout t'écrire ici, ce serait trop long.

En revanche, je te conseille l'excellent tutoriel du zéro sur le PHP, c'est là que j'ai tout appris.

PHP est un langage très puissant qui, coupler avec une base de donnée SQL, te permettra de générer des centaines de pages dynamiques visibles grâce à une dixaine de page php réels, le tout avec une gestion très simple.

loulou84
 Posté le 07/02/2010 à 18:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Dreamer: je veux pas vendre directement, c'est just pour exposer les produits!

Et ensuite pour ce qui est du php et sql, je commence a y voir le jour!

Je veux just une idée et aprés je bosse dessus!Mon soucie c'est que j'ai aucune idée!

J'explique mieux. j'ai un catalogue quand tu clique sur la photo d'un produit ca va sur une fiche details. Et en faite c'est cette fiche details que je veux creer automatiquement. Je rentre le prix, le details et le chemin absolu de l'image et voila c'est fait.

Merci

loulou84
 Posté le 07/02/2010 à 19:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Parfait

Merci,

Malcolm
 Posté le 07/02/2010 à 19:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

C'est *relativement* simple, pour peu que tu prennes le temps de décortiquer les étapes de raisonnement.

- il te faut un lieu de stockage pour stocker des données "brutes", c.à.d. prix, image, détails.

- il te faut relier les données par produit : un produit a justement un prix, une image et des détails.

- le plus simple est de travailler avec une base de données. Tu peux aussi le faire avec un fichier (texte) mais le traitement est plus lourd.

Partant de là, tu dois déjà avoir fait une table nommée par exemple table_produits avec au moins 4 champs :

- un identifiant en clé primaire, auto incrémenté nommé "id" (produits ID=1, ID=2, ID=3 ... ID=X)

- un champ texte "nom"

- un champ texte "détails"

- un champ float "prix" (si ton prix peut contenir des décimales)

- un champ texte "vignette" ou "image".

Partant de là, lorsque tu enregistre un produit avec les données qui le composent, tu adjoins un prix, une vignette et des détails.

Donc le produit dont l'ID vaut 50 aura le prux lambda, les détails lambda2, et la vignette lambda3.

Une fois ceci fait, il ne te reste que la page à créer.

Tu fais donc un "template", c'est à dire un "moule" où viendront s'insérer les données. Puisque ton template va utiliser PHP, il faut qu'il ait l'extension .php

Dans ce template, en tête de fichier, mets ceci :

<?php

$id_produit = (isset($_GET['id'])) ? abs(intval($_GET['id'])) : 0;

Ceci va récupérer l'ID de produit passé par URL. On supposera que ta page sera appelée ainsi : http://tonsite/produits.php?id=50

et c'est ce "id=50" qu'on récupère et on stocke la valeur (50) dans la variable $id_produit.

A propos de l'écriture "bizarre" : abs renvoie la valeur absolue (opération mathématique) du coup on sera sûr que $id_produit sera supérieur ou égal à zéro.

intval renvoie la valeur entière, numérique, donc si un petit malin s'amuse à appeler http://tonsite/produits.php?id=-3.141592654, alirs $id_produits vaudra forcément 3 (valeur absolue + entier numérique)

Et si jamais on retire l'ID du paramètre (http://tonsite/produits.php) alors $_GET ne contiendra plus "id=" et $id_produit prendra la valeur de zéro par défaut.

A cette étape, on est sûr d'avoir un $id_produit :

- qui existe

- qui est un entier numérique positif ou nul

ensuite, on va effectuer la requête dans la base pour savoir si un produit existe ou non correspondant à cet ID.

Toujours à la suite, ajoute ce code :

$query = sprintf("SELECT nom, prix, image, details FROM table_produits WHERE id='%d';", $id_produit);

Cette requête deviendra au final, si on appelle http://tonsite/produits.php?id=50 :

SELECT nom, prix, image, details FROM table_produits WHERE id='50';

Toujours à la suite, on exécute la requête :

$reponse = mysql_query($query) or die ($query.'<br>'.mysql_error());

Si une ligne est renvoyée par MySQL, ça veut dire qu'il y a un produit correspondant. Sinon, pas de produit (l'ID étant unique, il ne peut pas y avoir 2 produits dont l'ID vaut 50)

Toujours à la suite :

if (mysql_num_rows($reponse) != 1)

{

$message_erreur = '<p class="erreur">Il n'y a aucun produit correspondant.</p>';

}

else

{

$message_erreur = ''; // on déclare la variable vide.

$produit = mysql_fetch_array($reponse);

}

?>

Maintenant, on fait la page HTML "normalement", et à l'endroit où tu veux afficher les données, il suffit de voir si $message_erreur est rempli (donc pas de produit) ou non, auquel cas on affiche les données du produit.

<html>

<head>...</head>

<body>

<?php

if ($message_erreur != '') // message d'erreur non vide = pas de produit correspondant

{

echo $message_erreur;

}

else // message d'erreur vide = un produit a été trouvé

{

echo '<h1>Produit : '.$produit['nom'].'</h1>';

echo '<p><img src="images/'.$produit['image'].'" width="120" height="100" alt="Produit"></p>';

echo '<p>Prix : <strong>'.$produit['prix'].' &euro;</strong> '.$produit['details'].'</p>';

}

?>

Après, avec MySQL, tu peux faire bien plus ... Voici d'autres exemples : http://www.php-astux.info/script-mysql.php

ATTENTION : j'ai laissé un die mysql_error

c'est intéressant pour toi de le mettre en phase de test pour savoir quelle est la requête qui a foiré (puisque je fais afficher la requête) et pourquoi (j'affiche mysql_error = l'erreur retournée par mysql). Sur un site "en ligne", il faut bien entendu supprimer cela, il ne faut pas donner d'indications sur tes erreurs mysql aux gens.

Malcolm
 Posté le 07/02/2010 à 19:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

je viens de mettre à jour mon message avec des couleurs, mais vu que ce forum ne sait toujours pas interpréter de code PHP, j'ai du l'effacer puis le recréer.

loulou84
 Posté le 08/02/2010 à 14:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Malcom j'ai lu plusieurs fois ton explication,

J'ai creer ma base de donné, mon formulaire pour remplir ma base de données.

Mais quelque chose m'échappe, c'est le template comment on sait quel valeur de l'Id on va chercher?

En effet je viens de remplir mon formulaire, d'uploader ma base de donnée, mais rien ne me donne L'id?

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
34,77 €LEGO Harry Potter 75979 Edwige à 34,77 € livré
Valable jusqu'au 27 Septembre

Amazon Royaume-Uni fait une belle promotion sur le set LEGO Harry Potter 75979 Edwige qui passe à 26,25 £. Avec la conversion en euros et la livraison en France, il vous reviendra à 34,77 € livré alors qu'on le trouve ailleurs à partir de 49,99 €. Ce modèle authentique immortalise la chouette blanche Hedwige en train d'apporter un courrier important de Poudlard. 

Vous pouvez utiliser votre compte Amazon FR sur Amazon UK et il n'y a pas de douane.


> Voir l'offre
79,99 €Ecran Samsung 22 pouces LED Full HD 2ms VGA / HDMI à 79,99 €
Valable jusqu'au 28 Septembre

Cdiscount fait actuellement une vente flash sur l'écran Samsung S22F350F qu'il propose à 79,99 € alors qu'on le trouve ailleurs autour de 90 €. Cet écran de 22 pouces est Full HD (1920x1080), dispose d'un temps de réponse rapide de 5ms et d'entrées VGA et HDMI.


> Voir l'offre
18,95 €Carte mémoire microSDXC UHS-I SanDisk A1 Ultra 128 Go à 18,95 €
Valable jusqu'au 28 Septembre

Le vendeur sérieux Base propose sur Amazon la carte mémoire microSDXC UHS-I SanDisk A1 Ultra 128 Go à 18,95 €. Cette carte mémoire offre des vitesses jusqu'à 100 Mo/s et est idéale pour les téléphones, caméras et appareils photo HD. La livraison est gratuite.


> Voir l'offre

Sujets relatifs
Sauver modifs fich Excel à partir d'1 page HTML
Créer une page web responsive ?
Page html en CSS
Intégrer mp3 et video sur une page html
mot de passe pour accéder une page html
créer une page web sans codage avec photoshop
Créer un code pour page fan Facebook
Rechargement de page HTML
impossible d'utiliser CSS à partir d'une page JSP
créer page perso chez free
Plus de sujets relatifs à Creer une page html à partir d''une page php
 > Tous les forums > Forum Forum des Webmasters