Catalogue produits

Eléphant du PHP | 224 Messages

24 juin 2009, 15:20

Bonjour à tous :)

Voilà, pour ne pas réinventer la roue, je cherche un "petit" script de catalogue produits juste pour illustrer un site vitrine...

Il me faudrait quelque chose d'assez simple d'utilisation et facile d'installation et de configuration.

Donc, grosso-modo, il faudrait que le script gère des références produits, leur nom, leur description, leur prix et une ou deux images... c'est tout.

J'ai évidemment pas mal cherché, mais je tombe sur des véritables usines à gaz, essentiellement orientées e-commerce...

Toute piste est la bienvenue :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

ViPHP
ViPHP | 2291 Messages

24 juin 2009, 18:05

Salut,

Pourquoi ne pas essayer de le faire toi même :?:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 224 Messages

24 juin 2009, 18:10

Salut,

Pourquoi ne pas essayer de le faire toi même :?:
Oui, si je ne trouve rien qui me convienne, je pense que j'y serais un peu contraint, mais je voulais justement éviter de consacrer du temps à ça si jamais quelque chose d'adapté existait déjà...

Merci pour ton message et si jamais tu découvres une quelconque piste, n'hésites pas à la partager :)

;)

ViPHP
ViPHP | 2291 Messages

24 juin 2009, 18:15

Oui mais imagine que ZEUS passe par ici :?
Modifié en dernier par dunbar le 24 juin 2009, 18:53, modifié 1 fois.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 224 Messages

24 juin 2009, 18:18

Oui mais imagien que ZEUS passe par ici :?
euh... :shock: ... j'ai dis une bêtise là :?:
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

24 juin 2009, 18:44

Ben, zeus est un modérateur sanguinaire et terriblement cruel :afraid:
et je le crois capable de te répondre par un message de ce type ...

Modération :
PHPFrance n'est pas un site de distribution de scripts gratuits,
ni de débuggage de scripts téléchargés et utilisés sans compréhension.

Merci de prendre le temps de lire les règlements.


Tu cours vite ? :lol:

ViPHP
ViPHP | 2291 Messages

24 juin 2009, 18:53

Et bien voilà, c'est à cela que je voulais faire allusion :wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 224 Messages

24 juin 2009, 18:54

Modération :
PHPFrance n'est pas un site de distribution de scripts gratuits,
ni de débuggage de scripts téléchargés et utilisés sans compréhension.
Bein, oui, je sais... j'ai dû sûrement mal formuler ma demande d'aide, donc :

Je ne souhaite pas qu'on me donne ou qu'on me fasse un script pour mon besoin, je demande juste si certains membres du forum connaissent des outils adaptés déjà existants...

Si c'est le cas, je serais heureux d'avoir un peu plus d'infos, sinon, je continuerais mes recherches et, le cas échéant, je me lancerai au développement du "truc" si je ne trouve rien qui corresponde...

C'est mieux comme-ça ou suis-je encore hors charte ? :shock:

;)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

24 juin 2009, 19:02

Comme ça, c'est parfait ! :pouce:

Je vais essayer de calmer zeus... :lol:

Eléphant du PHP | 224 Messages

24 juin 2009, 19:05

Comme ça, c'est parfait ! :pouce:

Je vais essayer de calmer zeus... :lol:
J'avais déjà mis mes baskets de sprint... au cas où :lol:
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 juin 2009, 20:01

il faudra courir plus vite que la foudre alors ;)

Pour un revenir à ton soucis, non, je n'ai pas de lien à te donner.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 2291 Messages

24 juin 2009, 20:08

ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 224 Messages

24 juin 2009, 20:53

il faudra courir plus vite que la foudre alors ;)
Bein oui, largement plus vite même... t'as qu'a voir mes pompes de sprint et tu comprendras :
Image
:D :D
Merci Dunbar, excellente piste, elle n'est pas très loin de ce que je cherche, mais malheureusement ce n'est pas encore ça... je cherche encore un peu, si je ne trouve pas, je serais obligé de mettre les mains dans le cambouis :cry: (et pourquoi pas après tout... :idea:)

:wink:
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

ViPHP
ViPHP | 2291 Messages

25 juin 2009, 23:25

Salut,

Alors comme je suis un gentil méconnu |(X , voici un exemple de script.
Le fichier qui va te permettre d'encoder tes articles.
Et je me suis vraiment casser la tête #-o pour lui trouver un nom.
encodage.php
<?php
// se connecter et sélectionner la base
$connexion = mysql_connect("localhost","","");
//$connexion = mysql_connect();
$ok = mysql_select_db("testphpfrance",$connexion);

// traitement du formulaire
if (isSet($_POST["OK"])) {

	//--> récupérer le tableau contenant la saisie
	$lignes = $_POST["saisie"];
	foreach($lignes as $identifiant => $ligne) {

		// nettoyage de la saisie
		$libelle = $ligne["libelle"];
		$prix = $ligne["prix"];
		$prix = str_replace(",",".",$prix); //--> Remplace la , par un .
		$prix = str_replace(" ","",$prix); //--> supprime les espaces

		// Attention à ce niveau, il faudrait vérifier la saisie des données.--//
		$requete = "";
		if ($identifiant < 0 and $libelle.$prix != "") {
			// identifiant négatif et quelque chose de saisi
			// = création = INSERT
			$requete = "INSERT INTO articles(libelle,prix)
										VALUES('" . $libelle . "','" . $prix . "')";
		} elseif (isSet($ligne["supprimer"])) {
			// case « supprimer » cochée = suppression = DELETE
			$requete = "DELETE FROM articles
										WHERE id = '" .$identifiant. "'";
		} elseif (isSet($ligne["modifier"])) {
			// zone « modifier » TRUE (1) = modification = UPDATE
			$requete = "UPDATE
			               articles
						SET
						   libelle = '" .$libelle. "',
						   prix = '" .$prix. "'
						WHERE
						   id = '" .$identifiant."'";
		}
		// si une requête a été déterminée, l'exécuter.--//
		if ($requete != "") {
			mysql_query($requete);
			//--> A ce niveau, il faudrait tester les erreurs ...--//
		}
	}
}

//-->Recherche les articles éventuelle.--//
$requete = "SELECT * FROM articles";
$resultat = mysql_query($requete);

// à ce niveau, il faudrait tester les erreurs ...

// Affichage de la page ...

?>

<HTML>
<HEAD><TITLE>Gestion des articles</TITLE></HEAD>
<BODY>

<!-- construction d'une table HTML à l'intérieur d'un formulaire -->

<FORM NAME="formulaire" METHOD="post">
<TABLE BORDER="1" CELLPADDING="4" CELLSPACING="0">
<!-- ligne de titre -->
<TR ALIGN=\"center\">
<TH>Id</TH><TH>Libellé</TH><TH>Prix</TH><TH>Supprimer</TH>
</TR>
<!-- code PHP pour les lignes du tableau -->
<?php
if ($resultat) // s'il y a un résultat à afficher
  {
	// initialisation d'un compteur de ligne
	$i = 0;

	// boucle de fetch
	while ($article = mysql_fetch_assoc($resultat))
	{
		// incrémentation du compteur de ligne
		$i++;
		// calcul du numéro d'ordre dans le formulaire de la
		// zone cachée correspondant à l'identifiant
		$n = 4 * ($i - 1);  // -1 puisque commence à 0 et pas à 1
		// mise en forme des données
		$article["prix"] = number_format($article["prix"],2,"," ," ");
		// génération de la ligne de la table HTML
		// insertion des balises INPUT du formulaire
		printf(
		"<TR><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>",
		"$article[id]
		 <INPUT TYPE=\"hidden\"
				NAME=\"saisie[$article[id]][modifier]\">",
		"<INPUT TYPE=\"text\"
				NAME=\"saisie[$article[id]][libelle]\"
				VALUE=\"$article[libelle]\"
				onChange=\"document.formulaire[$n].value=1\">",
		"<INPUT TYPE=\"text\"
				NAME=\"saisie[$article[id]][prix]\"
				VALUE=\"$article[prix]\"
				onChange=\"document.formulaire[$n].value=1\">",
		"<INPUT TYPE=\"checkbox\"
				NAME=\"saisie[$article[id]][supprimer]\"
				VALUE=\"$article[id]\">");
	} // fin while

	//-->Ajout de 5 lignes vides pour la création.--//
	//-->Sans identifiant, sans case de suppression.--//
	for($i=1; $i<=5; $i++)
	{
		printf(
		"<TR><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>",
		"",
		"<INPUT TYPE=\"text\"
				NAME=\"saisie[-$i][libelle]\"
				VALUE=\"\">",
		"<INPUT TYPE=\"text\"
				NAME=\"saisie[-$i][prix]\"
				VALUE=\"\">",
		"");
	} // fin for

  }//fin if ($resultat).
?>
</TABLE>
<BR><INPUT TYPE="submit" NAME="OK" VALUE="Enregistrer">
</FORM>

</BODY>
</HTML>
Affichage.php
<?php
//-->initialiser la variable de message.--//
$message = "";

///-->se connecter et sélectionner la base (erreurs à traiter).--//
$connexion = mysql_connect("localhost","","");
$ok = mysql_select_db("testphpfrance",$connexion);

//--> exécuter la requête de sélection
$requete = "SELECT * FROM articles";
$resultat = mysql_query($requete);

//--> tester le résultat
if (! $resultat) { // requête pas OK
	// message d'erreur
	$message .= "Erreur.\n";

}

//-->Affichage de la page ...

?>

<HTML>
<HEAD><TITLE>Liste des articles</TITLE></HEAD>
<BODY>

<!-- construction d'une table HTML -->
<TABLE BORDER="1" CELLPADDING="4" CELLSPACING="0">
<!-- ligne de titre -->
<TR ALIGN=\"center\">
<TH>Id</TH><TH>Libellé</TH><TH>Prix</TH>
</TR>

<!-- code PHP pour les lignes du tableau -->
<?php
if ($resultat) { //--> Si il y a un résultat à afficher.--//

	// boucle de fetch
	while ($article = mysql_fetch_assoc($resultat)) {


		//--> mise en forme des données.--//
		///$article["libelle"] = vers_page($article ["libelle"]);
		$article["prix"] = number_format($article["prix"],2,"," ," ");

		// génération de la ligne de la table HTML
		printf("<TR><TD>%d</TD><TD>%s</TD><TD>%s</TD></TR>",
			$article["id"],
			$article["libelle"],
			$article["prix"]);

	} //--> fin while

	//--> si le résultat est vide, préparer un message
	if (mysql_num_rows($resultat) == 0) {
		$message = "Aucun article dans la base.";
	}

} //--> fin if ($résultat)
?>

</TABLE>
<FONT COLOR="red"><?php echo $message; ?></FONT>

</BODY>
</HTML>
Et ici la TABLE qui ma servi aux test.
-- phpMyAdmin SQL Dump
-- version 3.1.3
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeu 25 Juin 2009 à 23:27
-- Version du serveur: 5.1.32
-- Version de PHP: 5.2.9-2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `testphpfrance`
--

-- --------------------------------------------------------

--
-- Structure de la table `articles`
--

CREATE TABLE IF NOT EXISTS `articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `libelle` varchar(40) NOT NULL,
  `prix` float NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

--
-- Contenu de la table `articles`
--

INSERT INTO `articles` (`id`, `libelle`, `prix`) VALUES
(1, 'PHP avancer', 35.5),
(2, 'MySQL avancer', 48.9),
(3, 'PHP débutant', 29.95),
(5, 'PHP & MySQL', 54.75);

Donc en gros tu encode tes articles ou tu les supprime puis tu affiche.
C'est une piste à toi de l'adapter et de rajouter l'upload d'image.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 224 Messages

26 juin 2009, 12:18

Bonjour à tous :)
Alors comme je suis un gentil méconnu |(X , voici un exemple de script.
Wow :shock: alors là, que dire... grand grand MERCI :!: :pouce:

J'avais un peu commencé de mon côté, mais pas trop avancé pour l'instant, et je m'orientais dans une direction un peu différente, consistant éditer les différents "articles" individuellement... mais bon, j'en suis qu'au prémices de toutes manières :? (n'ayant pas beaucoup de temps, j'avance par petites touches)...

Bon, j'ai essayé ton script et ça a l'air de fonctionner parfaitement, je vais sûrement m'inspirer de certaines de tes solutions pour la suite de mon projet... encore un très grand merci pour cette contribution :!: :D

PS. j'ai bien aimé ta méthode pour nommer les champs des formulaires vides (du genre "saisie[-$i][libelle]"), très astucieux le "-$i" =D>
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)