voici mon petit souci, que, j'espère, vous allez pouvoir m'aider à résoudre...
je suis en train de créer une E-Boutique de Démo (comme vitrine) mais un problème est survenu lors de son installation. En effet je n'arrive pas à afficher dans mon panneau de Gestion mes fiches Produits. Je rempli le Tableau et jusque là tout va bien (sauf pour la case 'ID' du produit que je ne peux pas remplir) et une fois que je valide la fiche je reviens sur la page qui est supposer affichée la liste dans un tableau de tous mes produits enregistrés... mais là rien... vide !
il en va de soit que le problème se répercute également sur ma page index.php de ma Boutique :
http://e.come.ifrance.com/webmarchand/index.php
voici le script complet de mon module_adm_produits.php :
<?php
// --- gestion des fiches produits
$contenu = '';
$prg_code = '2010';
// --- variables
$module = $boutique->auto_variable('module');
$mode = $boutique->auto_variable('mode');
// ---récupération du tableau des produits
$params = array('actif'=>0, 'order'=>'id desc');
$td_produits = $boutique->tableau_produits($params);
// --- 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">
<input TYPE="text" name="formvars[libel]" size="10"
VALUE="' . $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;
?>
Alors si quelqu'un pouvait me dire ce qui cloche dans mon code se serait très gentil de votre part ^^Dans ma page index.html de mon gestionnaire, le code indique bien le cadre spécifique :
Code : Tout sélectionner
<bloc_adm_principal>Merci de m'aider... je désespère
Je viens de modifier également ma ligne 'ID' pour y inscrire des infos de mon choix mais le problème persiste...
Cordialement,