probleme pour actualiser une table

probleme pour actualiser une table - PHP - Programmation

Marsh Posté le 11-06-2004 à 10:30:25    

Bonjour,
 
J'ai une table construite de la manier suivante :
 

# phpMyAdmin MySQL-Dump
# version 2.2.6
# http://phpwizard.net/phpMyAdmin/
# http://www.phpmyadmin.net/ (download page)
#
# Serveur: localhost
# Généré le : Vendredi 11 Juin 2004 à 10:13
# Version du serveur: 3.23.49
# Version de PHP: 4.2.0
# Base de données: `atelier`
# --------------------------------------------------------
 
#
# Structure de la table `cordageproduit`
#
 
CREATE TABLE cordageproduit (
  reference varchar(40) NOT NULL default '',
  sousref varchar(15) NOT NULL default '',
  nom varchar(40) NOT NULL default '',
  description varchar(255) NOT NULL default '',
  prix decimal(10,0) NOT NULL default '0',
  code tinyint(3) unsigned NOT NULL default '0',
  image varchar(15) NOT NULL default '',
  vignette varchar(15) NOT NULL default '',
  PRIMARY KEY  (reference),
  FULLTEXT KEY description (description)
) TYPE=MyISAM;
 
#
# Contenu de la table `cordageproduit`
#
 
INSERT INTO cordageproduit VALUES ('BPG01', 'jauge 130', 'cs', 'Puissance et vitesse de balle', '241', 20, 'g_blank.jpg', 'v_blank.jpg');
INSERT INTO cordageproduit VALUES ('BRL01', 'jauge 138', 'Razor Hi Life', 'Grande résistance Bobine de cordage de 200m', '230', 10, 'g_blank.jpg', 'v_blank.jpg');
INSERT INTO cordageproduit VALUES ('BRL02', 'jauge 143', 'Razor Hi Lifemodif', 'Grande résistance', '230', 10, 'g_blank.jpg', 'v_blank.jpg');
INSERT INTO cordageproduit VALUES ('BMF01', 'jauge 135', 'Magic Force', '135/15 (200m) Compromis puissance/résistance', '220', 10, 'g_blank.jpg', 'v_blank.jpg');
INSERT INTO cordageproduit VALUES ('qscqscqs', 'qsc', 'qsc', 'cqsc', '321', 89, 'g_blank.jpg', 'v_blank.jpg');
INSERT INTO cordageproduit VALUES ('LM01', 'jauge 127', 'L Tec mono', 'Rendement, durabilité Bobine de cordage de 220m', '76', 40, '', '');
INSERT INTO cordageproduit VALUES ('LA01', 'jauge 130', 'L Tec alu-mono', 'Rendement, contrôle, effets bobine de cordage de 220m', '108', 40, '', '');
INSERT INTO cordageproduit VALUES ('LF01', 'jauge 133', 'L Tec fiber spiral', 'Puissance, confort, contrôle', '175', 30, '', '');
INSERT INTO cordageproduit VALUES ('LSG01', 'jauge 137', 'L Tec Synthetic gut', 'Gros casseur Bobine de cordage de 220m', '110', 30, '', '');
INSERT INTO cordageproduit VALUES ('LS01', 'jauge 123', 'L Tec speed', 'Puissance contrôle 5 garnitures de 12 m', '67', 10, 'g_blank.jpg', 'v_blank.jpg');
INSERT INTO cordageproduit VALUES ('LP02', 'jauge 133', 'L Tec pro', 'Performances, durabilité 5 garnitures de 12 m', '67', 50, '', '');
INSERT INTO cordageproduit VALUES ('LG01', 'jauge 125', 'L Tec gut', 'Vitesse, sensations, confort 5 garnitkures de 12m', '80', 50, '', '');
INSERT INTO cordageproduit VALUES ('LG02', 'jauge 128', 'L Tec gut', 'Vitesse, sensations, confort 5 garnitures de 12 m', '80', 50, '', '');
INSERT INTO cordageproduit VALUES ('LBAP01', 'jauge 125', 'Big banger Alu power', 'Tenue de tension résistance Bobine de cordage de 220m', '242', 20, '', '');
INSERT INTO cordageproduit VALUES ('LBO01', 'jauge 130', 'Big banger original', 'Tenue de tension résistance Bobine de cordage de 220m\r\nTenue de tension résistance Bobine de cordage de 220m', '174', 20, 'g_LBO01.jpg', 'v_LBO01.jpg');
INSERT INTO cordageproduit VALUES ('LBO02', 'jauge 138', 'Big banger original', 'Tenue de tension résistance Bobine de cordage de 220m', '174', 20, '', '');
INSERT INTO cordageproduit VALUES ('LMS01', 'jauge 125', 'Monotec Supersens', 'Puissance contrôle Bobine de cordage de 220m', '242', 20, '', '');
INSERT INTO cordageproduit VALUES ('LBX01', 'jauge 125', 'Big banger XP', 'Tenue tension résistance Bobine de cordage de 220m', '151', 20, '', '');
INSERT INTO cordageproduit VALUES ('TC01', 'jauge 133', 'Cybernylon', 'Elasticité contrôle Bobine de cordage de 200m', '89', 60, '', '');
INSERT INTO cordageproduit VALUES ('KSS01', '', 'Super smash en 1.25', 'Résistance Bobine de cordage de 200m', '69', 70, '', '');
INSERT INTO cordageproduit VALUES ('KSS02', '', 'Super smash en 1.30', ' Résistance Bobine de cordage de 200m', '69', 70, '', '');
INSERT INTO cordageproduit VALUES ('KSS03', '', 'Super smash en 1.35', 'Résistance Bobine de cordage de 200m', '69', 70, '', '');
INSERT INTO cordageproduit VALUES ('KSSY01', '', 'Super smash spicky en 1.25', 'Résistance Bobine de cordage de 200m', '81', 70, 'g_blank.jpg', 'v_blank.jpg');


 
Mon probleme est le suivant :
 
En fait pour les champs 'image' et 'vignette', je ne veux récupérer dans mon formulaire de mise à jour qu'une partie du champ.
Ex pour image : dans la table est stockée 'g_blank.jpg', et je ne veux que 'blank' dans le formulaire de mise à jour.
 
Mon formulaire est le suivant :
 

<?php
// on recherche le code de la famille
$requetef = "SELECT * FROM cordageproduit where reference='$zoom'";
$req = mysql_query($requetef);
?>
<form method="POST" action="confirmmodif.php">
<table border=1 width=80% cellspacing="0" cellpadding="0" align="center">
<?php
// on fait une boucle qui va faire un tour pour chaque enregistrements
 
    // on affiche les informations de l'enregistrements en cours
       echo "<tr>";
       echo "<td width=\"30%\">REFERENCE</td>";
       echo "<td><input type=text name=\"newreference\" value=\"".mysql_result($req,0,'reference')."\"</td>";
       echo "</tr>";
       echo "<tr>";
       echo "<td>SOUS-REFERENCE</td>";
       echo "<td><input type=text name=\"newsousref\" value=\"".mysql_result($req,0,'sousref')."\"</td>";
       echo "</tr>";
       echo "<tr>";
       echo "<td>NOM</td>";
       echo "<td><input name=\"newnom\" type=text value=\"".mysql_result($req,0,'nom')."\"</td>";  
       echo "</tr>";
       echo "<tr>";
       echo "<td>DESCRIPTION</td>";
       echo "<td><textarea name=\"newdescription\" rows=\"4\">".mysql_result($req,0,'description')."</textarea></td>";
       echo "</tr>";
       echo "<tr>";
       echo "<td>PRIX</td>";
       echo "<td><input name=\"newprix\" type=text value=\"".mysql_result($req,0,'prix')."\"</td>";
       echo "</tr>";
       echo "<tr>";
       echo "<td>CODE</td>";
       echo "<td><input name=\"newcode\" type=text value=\"".mysql_result($req,0,'code')."\"</td>";
       echo "</tr>";
       echo "<tr>";
       echo "<td>IMAGE <br/><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#FF0000\">(generation automatique du nom de l'image : ce champ ne doit comporter que la reference du produit ou sinon (pas de photo) mettre \"<b>blank</b>\" )</font></td>";
       echo "<td><input type=text name=\"newimage\" value=\"".mysql_result($req,0,'image')."\"</td>";
       echo "</tr>";
       echo "<tr>";
       echo "<td>VIGNETTE  <br/><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#FF0000\">(idem)</font></td>";
       echo "<td><input type=text name=\"newvignette\" value=\"".mysql_result($req,0,'vignette')."\"</td>";
       echo "</tr>";
       echo "<tr>";
       echo "<td><input type=\"image\" src=\"images/send.gif\"></form></td>";
       echo "<td><strong><font size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"admin.php\">retour  
       administration</a></font></strong></td>";
       echo "</tr>";
    echo "</table>";
// on ferme la connexion à mysql
mysql_close();
?>


 
En fait le formulaire fait apparaitre les données de la table et je ne veux qu'une partie des champs 'image' et 'vignette'.
 
Merci de votre aide..

Reply

Marsh Posté le 11-06-2004 à 10:30:25   

Reply

Marsh Posté le 11-06-2004 à 10:52:30    

Ca me paraît bien compliqué tout ça.
 
Tu as 3 champs qui peuvent avoir des noms communs :
 
reference, image et vignette
 
Il faut au moins éliminer le doublon image et vignette et tu peux te contenter de faire un champ image avec comme valeur oui/non ou on/off
 
Je ne sais pas comment tu uploades tes images, mais pour les modifications, il serait donc plus simple de faire un bouton radio image : oui/non.
 
Pour l'affichage :
 
Si image est à oui.
 
Tu récupères le champ reference.
 
Tu traites la variable en lui rajoutant g_ au début et .jpg à la fin
Idem avec v_ au début pour la vignette
 
Inutile de surcharger la base avec ça.
 
Si image est à non, tu mets blank et même traitement.
 
Non ?
 
En plus la cohérence est garantie, ce qui n'est pas le cas si tu laisses tes chers utilisateurs faire la saisie de blank ou de la référence...


Message édité par deliriumtremens le 11-06-2004 à 10:55:15
Reply

Marsh Posté le 11-06-2004 à 10:58:46    

deliriumtremens +1
 
Voilà qui est beaucoup mieux comme présentation
Merci d'avoir écouté ce que l'on t'a dit hier.
 
sinon, voilà comment faire pour récupérer ton champs.
$image = mysql_result($req,0,'image');
substr($image, 2, strlen($image)-6);
 
Tu récupère le nom de l'image - 2 caractères de début, -4 caractères d'extension
 
même chose pour la vignette.
 
Par contre je te conseille vraiment l'optimisation de deliriumtremens


Message édité par T509 le 11-06-2004 à 11:02:20

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 11-06-2004 à 11:19:35    

Merci beaucoup pour toutes ces precisions et desolé pour mes erreurs d'hier...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed