Bonjour à tous amis du PHP,
j'ai également un souci d'affichage des produits. je m'explique, j'arrive a enregistrer mes produits depuis le gestionnaire mais une fois validé aucune visualisation ne se fait sur ma page index.php de mon gestionnaire. je vérifie donc sur ma BDD et mes enregistrements y sont présents. idem pour l'affichage de ces produits sur mon Catalogue.
Pourriez-vous me dire ce qui cloche dans mon code svp ? en sachant que la variable $boutique correspond à une classe intégrée pour effectuer une recherche immédiate des différent modules concernant la fiche demander aussi bien dans les 'catégories' que dans les 'produits'.
voici le code :
[code]<?php
// --- gestion des fiches produits
$contenu = '';
$prg_code = '1020';
// --- variables
$module = $boutique->auto_variable('module');
$mode = $boutique->auto_variable('mode');
// --- récupération du tableau des fournisseurs
$tb_fournisseurs = $boutique->tableau_fournisseurs();
// --- récupération du tableau des catégories
$tb_categories = $boutique->tableau_categories();
// --- titre du programme
$tb_blocs['bloc_adm_titre'] = $boutique->adm_menu_libel($prg_code);
// --- fonction pour afficher une ligne
// --- en mode visualisation de la fiche produit
function affiche_ligne($libel, $valeur) {
$txt = '<tr class="ligne_contenu">
<td>' . $libel . ':</td>
<td valign="top">'
. $valeur
. '</td></tr>';
return($txt);
}
// --- visualisation d'une fiche produit
if ($mode == 'visu') {
$edit_id = $boutique->auto_variable('edit_id');
$formvars = $boutique->infos_produit($edit_id);
// --- en tête de la table
$contenu .= '<table border="0" cellspacing="1"
cellpadding="3" class="contenu" align="center">'
. '<tr class="ligne_titre">'
. '<td colspan="2">'
. $tr_adm_fiche_produit
. '</td></tr>';
// --- identifiant produit
$contenu .= affiche_ligne($tr_adm_id,
$formvars['id']);
// --- libelle
$contenu .= affiche_ligne($tr_adm_libel,
$formvars['libel']);
// --- description
$contenu .= affiche_ligne($tr_adm_description,
nl2br($formvars['description']));
// --- mots clés
$contenu .= affiche_ligne($tr_adm_keywords,
nl2br($formvars['keywords']));
// --- référence
$contenu .= affiche_ligne($tr_reference,
$formvars['reference']);
// --- date d'entrée
$contenu .= affiche_ligne($tr_date_entree,
$formvars['date_entree']);
// --- fournisseur
$id_fourn = $formvars['id_fourn'];
$contenu .= affiche_ligne($tr_fournisseur,
$tb_fournisseurs["$id_fourn"]);
// --- prix ttc
$contenu .= affiche_ligne($tr_prix_ttc,
$formvars['prix_ttc']);
// --- stock
$contenu .= affiche_ligne($tr_stock,
$formvars['stock']);
// --- stock mini
$contenu .= affiche_ligne($tr_stock_mini,
$formvars['stock_mini']);
// --- délai de livraison
$contenu .= affiche_ligne($tr_delai_livraison,
$formvars['delai']);
// --- poids
$contenu .= affiche_ligne($tr_poids,
$formvars['poids']);
// --- produit actif ?
if ($formvars['actif'] == 1 || $edit_id==0) {
$txt_actif = $tr_oui;
}
else {
$txt_actif = $tr_non;
}
$contenu .= affiche_ligne($tr_actif,
$$txt_actif);
// --- catégories
$params = array('prd_id'=>$edit_id);
$tb = $boutique->tableau_prd_categories($params);
$txt = '';
while (list($id, $info) = each($tb)) {
$c = $info['code_cat'];
$txt .= '<li>' . $tb_categories["$c"]['libel'] . '</li>';
}
$contenu .= affiche_ligne($tr_categories, $txt);
// --- photos pour ce produit
$params = array('prd_id'=>$edit_id);
$tb_photos = $boutique->tableau_photos($params);
if (count($tb_photos) > 0) {
$tb_valeurs = array();
while (list($id, $photo_infos) = each($tb_photos)) {
// --- largeur maximale : 120 pixels
if ($photo_infos['largeur'] > 120) {
$txt_width = '120';
}
else {
$txt_width = $photo_infos['largeur'];
}
// --- lien vers la photo en taille réelle
$url = $cf_url_base . 'photos/' . $photo_infos['nom'];
// --- stockage de l'image dans un tableau
$tb_valeurs[] = '<a href="' . $url . '">
<img src="' . $cf_url_base . 'photos/'
. $photo_infos['nom']
. '" class="image" width="'
. $txt_width . '"></a><br>'
. $photo_infos['largeur']
. 'x'
. $photo_infos['hauteur'];
}
$params = array('nbcolonnes'=>4,
'td_align'=>'center',
'titre'=>$tr_photos);
$contenu .= '<tr class="ligne_contenu">
<td valign="top" colspan="2">'
. $boutique->creation_table_html($tb_valeurs, $params)
. '</td></tr>';
}
$contenu .= '</table>';
}
// --- édition d'un produit
if ($mode == 'edit' || $mode == 'insertion') {
$code = $boutique->auto_variable('code');
// --- mode modification ou visualisation
if ($mode == 'edit') {
$edit_id = $boutique->auto_variable('edit_id');
$formvars = $boutique->infos_produit($edit_id);
$titre_table = $tr_adm_edit_produit;
}
// --- mode insertion
else {
$formvars = array();
$edit_id = 0;
$titre_table = $tr_adm_ajouter_produit;
}
// --- en tête du formulaire
$contenu .= '<FORM action="index.php" method="post"
enctype="multipart/form-data">
<INPUT name="mode" type=hidden value="validation">
<INPUT name="module" type=hidden value="'
. $module
. '">
<INPUT name="edit_id" type=hidden value="'
. $edit_id
. '">';
// --- en tête de la table
$contenu .= '<table border="0" cellspacing="1"
cellpadding="3" class="contenu" align="center">'
. '<tr class="ligne_titre">'
. '<td colspan="2">'
. $titre_table
. '</td></tr>';
// --- identifiant produit
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_adm_id . ':</td>
<td valign="top">'
. $formvars['id']
. '</td></tr>';
// --- libelle
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_adm_libel . ':</td>
<td valign="top">
<input TYPE="text" name="formvars[libel]" size="70"
VALUE="' . $formvars['libel']
. '"></td></tr>';
// --- description
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_adm_description . ':</td>
<td valign="top">
<textarea rows="3" cols="50" name="formvars[description]">'
. $formvars['description']
. '</textarea></td></tr>';
// --- mots clés
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_adm_keywords . ':</td>
<td valign="top">
<textarea rows="3" cols="50" name="formvars[keywords]">'
. $formvars['keywords']
. '</textarea></td></tr>';
// --- référence
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_reference . ':</td>
<td valign="top">
<input TYPE="text" name="formvars[reference]" size="10"
VALUE="' . $formvars['reference']
. '"></td></tr>';
// --- date d'entrée
if (strlen($formvars['date_entree']) == 0) {
$formvars['date_entree'] = date("Y-m-d");
}
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_date_entree . ':</td>
<td valign="top">
<input TYPE="text" name="formvars[date_entree]" size="10"
VALUE="' . $formvars['date_entree']
. '"></td></tr>';
// --- fournisseur
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_fournisseur . ':</td>
<td valign="top">
<select name="formvars[id_fourn]" size="1">
<option value="0">';
reset($tb_fournisseurs);
while (list($cle, $info_fourn) = each($tb_fournisseurs)){
if ($info_fourn['id'] == $formvars['id_fourn']) {
$contenu .= '<option value="' . $info_fourn['id']
. '" selected>';
}
else {
$contenu .= '<option value="'
. $info_fourn['id'] . '">';
}
$contenu .= $info_fourn['nom'] . '</option>';
}
$contenu .= '</select></td></tr>';
// --- prix ttc
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_prix_ttc . ':</td>
<td valign="top">
<input TYPE="text" name="formvars[prix_ttc]" size="10"
VALUE="' . $formvars['prix_ttc']
. '"></td></tr>';
// --- stock
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_stock . ':</td>
<td valign="top">
<input TYPE="text" name="formvars[stock]" size="10"
VALUE="' . $formvars['stock']
. '"></td></tr>';
// --- stock mini
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_stock_mini . ':</td>
<td valign="top">
<input TYPE="text" name="formvars[stock_mini]" size="10"
VALUE="' . $formvars['stock_mini']
. '"></td></tr>';
// --- délai de livraison
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_delai_livraison . ':</td>
<td valign="top">
<input TYPE="text" name="formvars[delai]" size="10"
VALUE="' . $formvars['delai']
. '"></td></tr>';
// --- poids
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_poids . ':</td>
<td valign="top">
<input TYPE="text" name="formvars[poids]" size="10"
VALUE="' . $formvars['poids']
. '"></td></tr>';
// --- produit actif ?
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_actif . ':</td>
<td valign="top"><select name="formvars[actif]">';
if ($formvars['actif'] == 1 || $edit_id==0) {
$contenu .= '<option value="1" selected>' . $tr_oui;
$contenu .= '<option value="0">' . $tr_non;
}
else {
$contenu .= '<option value="1">' . $tr_oui;
$contenu .= '<option value="0"selected>' . $tr_non;
}
$contenu .= '</select></td></tr>';
// --- catégories
$tb_cats = array();
if ($edit_id > 0) {
$params = array('prd_id'=>$edit_id);
$tb = $boutique->tableau_prd_categories($params);
while (list($id, $info) = each($tb)) {
$tb_cats[] = $info['code_cat'];
}
}
// --- on force le tableau à 3 éléments
while (count($tb_cats) < 3) {
$tb_cats[] = '';
}
$contenu .= '<tr class="ligne_contenu"><td>'
. $tr_categories
. ':</td><td valign="top">';
for ($i=0; $i<count($tb_cats); $i++) {
$contenu .= '<select name="formvars[code_cat][]">
<option value=""></option>';
// --- liste des catégories
reset($tb_categories);
while (list($code_cat, $info) = each($tb_categories)) {
if ($code_cat == $tb_cats[$i]) $s = ' selected';
else $s = '';
$contenu .= '<option value="' . $code_cat . '"' . $s . '>'
. $info['libel'] . '</option>';
}
$contenu .= '</select>';
}
$contenu .= '</td></tr>';
// --- photos pour ce produit
if ($edit_id > 0) {
$params = array('prd_id'=>$edit_id);
$tb_photos = $boutique->tableau_photos($params);
if (count($tb_photos) > 0) {
$tb_valeurs = array();
while (list($id, $photo_infos) = each($tb_photos)) {
// --- largeur maximale : 120 pixels
if ($photo_infos['largeur'] > 120) {
$txt_width = '120';
}
else {
$txt_width = $photo_infos['largeur'];
}
// --- lien vers la photo en taille réelle
$url = $cf_url_base . 'photos/' . $photo_infos['nom'];
// --- stockage de l'image dans un tableau
$tb_valeurs[] = '<a href="' . $url . '">
<img src="' . $cf_url_base . 'photos/'
. $photo_infos['nom']
. '" class="image" width="'
. $txt_width . '"></a><br>'
. $photo_infos['largeur']
. 'x'
. $photo_infos['hauteur'];
}
$params = array('nbcolonnes'=>4,
'td_align'=>'center',
'titre'=>$tr_photos);
$contenu .= '<tr class="ligne_contenu">
<td valign="top" colspan="2">'
. $boutique->creation_table_html($tb_valeurs, $params)
. '</td></tr>';
}
}
// --- téléchargement des photos
$contenu .= '<tr class="ligne_contenu">
<td>' . $tr_photos . ':</td>
<td valign="top">
<input name="userfile[]" type="file" size="10">
<input name="userfile[]" type="file" size="10">
<input name="userfile[]" type="file" size="10">
</td></tr>';
// --- validation et fin de la forme
$contenu .= '<tr class="ligne_contenu">
<td colspan="2" align="center">
<input type="submit" value="'
. $tr_adm_valider
. '">
</td></tr>';
$contenu .= '</table></form>';
}
// --- validation des modifications
if ($mode == 'validation') {
$edit_id = $boutique->auto_variable('edit_id');
$formvars = $boutique->auto_variable('formvars');
if ($debug) print_r($formvars);
// --- tables
$tbl_produits = $boutique->nom_table('produits');
$tbl_photos = $boutique->nom_table('prd_photos');
$tbl_prd_description = $boutique->nom_table('prd_description');
// --- création ou modification ?
$params = array('cle_primaire'=>'prd_id');
// --- fiche produit
if ($edit_id > 0) {
$requete = $boutique->creation_requete_modification($tbl_produits,
$formvars, $edit_id, $params);
$ok = $boutique->requete_sql($db, $requete);
$prd_id = $edit_id;
}
else {
$requete = $boutique->creation_requete_insertion($tbl_produits,
$formvars);
$ok = $boutique->requete_sql($db, $requete);
$prd_id = mysql_insert_id();
}
// --- description
$tbinfos = array('prd_id'=>$prd_id, 'langue'=>$langue, 'libel'=>$formvars['libel'],
'description'=>$formvars['description'], 'keywords'=>$keywords['libel']);
$cde = "select id from $tbl_prd_description where prd_id=$prd_id and langue like '$langue'";
$result = $boutique->requete_sql($db, $cde);
$n = mysql_num_rows($result);
while($row = mysql_fetch_object($result)) { $pr_desc_id = $row->id; }
if ($n > 0) $requete = $boutique->creation_requete_modification($tbl_prd_description, $tbinfos, $pr_desc_id);
else $requete = $boutique->creation_requete_insertion($tbl_prd_description, $tbinfos);
$ok = $boutique->requete_sql($db, $requete);
// --- enregistrement des catégories
$boutique->enregistre_prd_categories($prd_id,
$formvars['code_cat']);
// --- enregistrement de l'indexation
$texte = $formvars['libel'] . ' '
. $formvars['description'] . ' '
. $formvars['keywords'];
$boutique->indexation_produit($prd_id, $texte);
// --- téléchargement des images
for ($i=0; $i<count($_FILES['userfile']['name']); $i++) {
$fichier_tmp = $_FILES['userfile']['tmp_name'][$i];
$nom_image = basename($_FILES['userfile']['name'][$i]);
$destination = $cf_repertoire_base
. 'photos/' . $nom_image;
if (strlen($fichier_tmp) > 0) {
if (move_uploaded_file($fichier_tmp, $destination)) {
$contenu .= '<p align="center">'
. $destination . ': '
. $tr_telechargement_ok
. '</p>';
// --- enregistrement des informations
// --- concernant la photo dans la base
$infos_photos = array();
$infos_photos['prd_id'] = $prd_id;
$infos_photos['nom'] = $nom_image;
$tmptb = getimagesize($destination);
$infos_photos['largeur'] = $tmptb[0];
$infos_photos['hauteur'] = $tmptb[1];
$requete = $boutique->creation_requete_insertion(
$tbl_photos, $infos_photos);
$ok = $boutique->requete_sql($db, $requete);
}
else {
$contenu .= '<p align="center">'
. $destination . ': '
. $tr_telechargement_pb
. '</p>';
}
}
}
// --- retour à la liste
$mode = 'liste';
}
// --- demande de confirmation avant suppression
if ($mode == 'confirmation_suppression') {
$edit_id = $boutique->auto_variable('edit_id');
// --- en tête du formulaire
$contenu .= '<FORM action="index.php" method="post">
<INPUT name="mode" type=hidden value="suppression">
<INPUT name="module" type=hidden value="'
. $module
. '">
<INPUT name="edit_id" type=hidden value="'
. $edit_id
. '">';
// --- en tête de la table
$contenu .= '<table border="0" cellspacing="1"
cellpadding="3" class="contenu" align="center">'
. '<tr class="ligne_titre"><td>'
. $tr_adm_confirmation
. '</td></tr>';
// --- message de confirmation
$contenu .= '<tr class="ligne_contenu">
<td align="center" valign="middle" height="100">'
. $tr_adm_msg_confirme_annulation
. '</td></tr>';
// --- validation et fin de la forme
$contenu .= '<tr class="ligne_contenu">
<td colspan="2" align="center">
<input type="submit" name="bt_submit" value="'
. $tr_non
. '">
<input type="submit" name="bt_submit" value="'
. $tr_oui
. '">
</td></tr>';
$contenu .= '</table></form>';
}
// --- validation des suppressions
if ($mode == 'suppression') {
if ($_POST['bt_submit'] == $tr_oui) {
$edit_id = $boutique->auto_variable('edit_id');
$tbl = $boutique->nom_table('produits');
$requete = "delete from $tbl where prd_id=$edit_id";
$ok = $boutique->requete_sql($db, $requete);
}
// --- retour à la liste
$mode = 'liste';
}
// --- critères de sélection
if ($mode == 'selection' || !$mode) {
// --- en tête du formulaire
$contenu .= '<FORM action="index.php" method="post">
<INPUT name="mode" type=hidden value="liste">
<INPUT name="module" type=hidden value="'
. $module . '">';
// --- table de sélection des critères
$contenu .= '<table border="0" cellspacing="1"
cellpadding="3" class="contenu" align="center">'
. '<tr class="ligne_titre">'
. '<td>' . $tr_categorie . '</td>'
. '<td>' . $tr_fournisseur . '</td>'
. '<td>' . $tr_actif . '</td>'
. '<td>' . $tr_adm_keywords . '</td>'
. '<td> </td>'
. '</tr>';
// --- saisie des critères
$contenu .= '<tr class="ligne_contenu">';
// --- critère : catégorie
$contenu .= '<td align="center">
<select name="selection[code_cat]" size="1">
<option value="">' . $tr_tout;
reset($tb_categories);
while (list($cle, $info) = each($tb_categories)) {
$contenu .= '<option value="'. $info['code'] . '">'
. $info['libel'] . '</option>';
}
$contenu .= '</select></td>';
// --- critère : fournisseur
$contenu .= '<td align="center">
<select name="selection[id_fourn]" size="1">
<option value="0">' . $tr_tout;
reset($tb_fournisseurs);
while (list($cle, $info) = each($tb_fournisseurs)){
$contenu .= '<option value="'. $info['id'] . '">'
. $info['nom'] . '</option>';
}
$contenu .= '</select></td>';
// --- critère : actif
$contenu .= '<td align="center">
<select name="selection[actif]" size="1">
<option value="0">' . $tr_tout . '</option>
<option value="1">' . $tr_actif . '</option>
</td>';
// --- critère : mots clés
$contenu .= '<td valign="top">
<input TYPE="text" name="selection[keywords]" size="10">
</td>';
// --- validation et fin de la forme
$contenu .= '<td align="center">
<input type="submit" value="OK">
</td></tr>';
$contenu .= '</table></form>';
// --- lien pour ajout d'un produit
$params = array('module'=>$module,
'mode'=>'insertion',);
$url = $boutique->creation_adm_url($params);
$contenu .='<p align="center">
<a href="' . $url . '">'
. $tr_adm_ajouter_produit
. '</a></p>';
}
// --- liste des produits
if ($mode == 'liste') {
// --- liste avec critères de selection
$selection = $boutique->auto_variable('selection');
$params = array('actif'=>0);
if (is_array($selection)) {
$params['id_fourn'] = $selection['id_fourn'];
$params['code_cat'] = $selection['code_cat'];
$params['actif'] = $selection['actif'];
$params['keywords'] = $selection['keywords'];
}
// --- récupération du tableau des produits
$tb_produits = $boutique->tableau_produits($params);
// --- en tête de la table
$contenu .= '<table border="0" cellspacing="1"
cellpadding="3" class="contenu" align="center">'
. '<tr class="ligne_titre">'
. '<td> </td>'
. '<td>' . $tr_adm_id . '</td>'
. '<td>' . $tr_adm_libel . '</td>'
. '<td>' . $tr_date_entree . '</td>'
. '<td>' . $tr_reference . '</td>'
. '<td>' . $tr_fournisseur . '</td>'
. '<td>' . $tr_prix_ttc . '</td>'
. '<td>' . $tr_poids . '</td>'
. '<td>' . $tr_stock . '</td>'
. '<td>' . $tr_stock_mini . '</td>'
. '<td>' . $tr_actif . '</td>'
. '<td>' . $tr_ventes . '</td>'
. '</tr>';
// --- boucle sur les produits
while (list($cle, $info) = each($tb_produits)){
// --- url pour la visualisation
$params = array('module'=>$module,
'mode'=>'visu',
'code'=>$cle,
'edit_id'=>$info['prd_id']);
$url_visu = $boutique->creation_adm_url($params);
// --- url pour la modification
$params = array('module'=>$module,
'mode'=>'edit',
'code'=>$cle,
'edit_id'=>$info['prd_id']);
$url_edit = $boutique->creation_adm_url($params);
// --- url pour la suppression
$params = array('module'=>$module,
'mode'=>'confirmation_suppression',
'code'=>$cle,
'edit_id'=>$info['prd_id']);
$url_suppression = $boutique->creation_adm_url($params);
// --- texte pour le produit actif
if ($info['actif'] == 1) {
$txt_actif = $tr_oui;
}
else {
$txt_actif = '<a font color="#FF0000">'
. $tr_non . '</font>';
}
// --- nom du fournisseur
$c = $info['id_fourn'];
$txt_fournisseur = $c . ' '
. $tb_fournisseurs["$c"]['nom'];
// --- affichage de la ligne
$contenu .= '<tr class="ligne_contenu">
<td>
<a href="' . $url_edit . '">
<img src="images/b_edit.png" border="0" alt="'
. $tr_adm_edit . '"></a>
<a href="' . $url_suppression . '">
<img src="images/b_drop.png" border="0" alt="'
. $tr_adm_supprimer . '"></a>
</td>
<td valign="top">' . $info['prd_id'] . '</td>
<td valign="top"><a href="' . $url_visu . '">'
. $info['libel'] . '</a></td>
<td valign="top">' . $info['date_entree'] . '</td>
<td valign="top">' . $info['reference'] . '</td>
<td valign="top">' . $txt_fournisseur . '</td>
<td valign="top" align="right">'
. $info['prix_ttc'] . '</td>
<td valign="top">' . $info['poids'] . '</td>
<td valign="top" align="right">'
. $info['stock'] . '</td>
<td valign="top" align="right">'
. $info['stock_mini'] . '</td>
<td valign="top" align="center">'
. $txt_actif . '</td>
<td valign="top">' . $info['ventes'] . '</td>
</tr>';
}
$contenu .= '</table>';
// --- lien pour ajout d'un produit
$params = array('module'=>$module,
'mode'=>'insertion',);
$url = $boutique->creation_adm_url($params);
$contenu .='<p align="center">
<a href="' . $url . '">'
. $tr_adm_ajouter_produit
. '</a></p>';
}
// --- ajout du contenu dans le bloc principal
$tb_blocs['bloc_adm_principal'] .= $contenu;
?>[/code]
voilà si vous avez des questions ou besoin de plus d'infos, demandez-moi et je vous direz ^^
merci à vous.
Stefde10