Code : Tout sélectionner
CREATE TABLE `images` (
`ID` int(11) NOT NULL auto_increment,
`rubrique` tinyint(4) NOT NULL default '0',
`adresse` varchar(200) collate latin1_general_ci NOT NULL default '',
`commentaire` text collate latin1_general_ci,
`ordre` float NOT NULL default '0',
PRIMARY KEY (`ID`),
KEY `rubrique` (`rubrique`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=8 ;
--
-- Contenu de la table `images`
--
INSERT INTO `images` (`ID`, `rubrique`, `adresse`, `commentaire`, `ordre`) VALUES
(1, 1, 'sculpt01.jpg', NULL, 1),
(2, 1, 'sculpt03.jpg', NULL, 1.5),
(3, 2, 'evier01.jpg', NULL, 1),
(4, 1, 'sculpt02.jpg', NULL, 2),
(5, 2, 'evier02.jpg', NULL, 2);et je voudrais faire un update sur la colonne 'ordre' pour obtenir le résultat
Code : Tout sélectionner
(1, 1, 'sculpt01.jpg', NULL, 1),
(2, 1, 'sculpt03.jpg', NULL, 2),
(3, 2, 'evier01.jpg', NULL, 1),
(4, 1, 'sculpt02.jpg', NULL, 3),
(5, 2, 'evier02.jpg', NULL, 2);
$id_rub = (isset($_GET['id_rub']) && is_numeric($_GET['id_rub']))? intval($_GET['id_rub']) : 0;
$query_Recordset1 = "SELECT ID, ordre FROM `images` WHERE rubrique = $id_rub ORDER BY ordre ASC";
$Recordset1 = mysql_query($query_Recordset1, $connexion) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$numro="1";
do
{
$update= $row_Recordset1['ID'];
$updateSQL = sprintf("UPDATE images SET ordre=%d WHERE ID=%d",$numro,$update);
$Result1 = mysql_query($updateSQL, $connexion) or die(mysql_error());
$numro++;
}while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
Ma question est : y'a t-il moyen de faire plus optimisé ?