par
GiorgioLino » 27 avr. 2009, 15:11
Comme dit dans mon précédent post, si ta requête ne renvoie aucun enregistrement et qu'il n'y pas d'erreur SQL non plus, c'est que le problème se trouve dans la clause WHERE.
Ce qui signifie 2 choses :
1) Il n'y pas d'enregistrement correspondant au client
$paramclient_panier
OU
2) PIRE : la variable est vide.
Je te renvoie donc ma suggestion précédente
Dans ce cas vérifier avec des 'echo' et des 'var_dump($paramclient_panier)' que ta variable $paramclient_panier est bien envoyée et qu'elle a la valeur et le type voulu
P.S.
J'ai testé ta requête en créant les tables et en y mettant quelques valeurs comme suit.
CREATE TABLE `shop_panier` (
`id` int(10) NOT NULL,
`client` varchar(45) collate utf8_unicode_ci default NULL,
`album` varchar(45) collate utf8_unicode_ci default NULL,
`photo`varchar(45) collate utf8_unicode_ci default NULL,
`quantite`varchar(45) collate utf8_unicode_ci default NULL,
`format`varchar(45) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`id`),
KEY `shop_panier_FKindex1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `shop_panier` VALUES
(1, 'MARTIN', 'Vacances', 'Vacances_1', 1, 10),
(2, 'MARTIN', 'Vacances', 'Vacances_1', 2, 11),
(3, 'DUPONT', 'Fiesta', 'Fiesta_1', 2, 11),
(4, 'DUPONT', 'Fiesta', 'Fiesta_2', 3, 12);
CREATE TABLE `shop_format` (
`id` int(10) unsigned NOT NULL,
`format` varchar(45) collate utf8_unicode_ci default NULL,
`prix` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `shop_format_FKindex1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `shop_format` VALUES
(10, 'A1', 30),
(11, 'A2', 20),
(12, 'A3', 10);
avec $paramclient_panier = 'MARTIN', j'obtiens bien le résultat voulu avec la requête suivante.
SELECT shop_panier.*, shop_format.format, shop_format.prix, (shop_format.prix*shop_panier.quantite) AS total_ttc
FROM shop_panier
INNER JOIN shop_format
ON shop_panier.format=shop_format.id
WHERE client = 'MARTIN'
J'ai évidemment pris quelques libertés sur les types des différents champs .
Comme dit dans mon précédent post, si ta requête ne renvoie aucun enregistrement et qu'il n'y pas d'erreur SQL non plus, c'est que le problème se trouve dans la clause WHERE.
Ce qui signifie 2 choses :
1) Il n'y pas d'enregistrement correspondant au client [b]$paramclient_panier[/b]
[b]OU[/b]
2) PIRE : la variable est vide.
Je te renvoie donc ma suggestion précédente
[quote]Dans ce cas vérifier avec des 'echo' et des 'var_dump($paramclient_panier)' que ta variable $paramclient_panier est bien envoyée et qu'elle a la valeur et le type voulu[/quote]
P.S.
J'ai testé ta requête en créant les tables et en y mettant quelques valeurs comme suit.
[php]CREATE TABLE `shop_panier` (
`id` int(10) NOT NULL,
`client` varchar(45) collate utf8_unicode_ci default NULL,
`album` varchar(45) collate utf8_unicode_ci default NULL,
`photo`varchar(45) collate utf8_unicode_ci default NULL,
`quantite`varchar(45) collate utf8_unicode_ci default NULL,
`format`varchar(45) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`id`),
KEY `shop_panier_FKindex1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `shop_panier` VALUES
(1, 'MARTIN', 'Vacances', 'Vacances_1', 1, 10),
(2, 'MARTIN', 'Vacances', 'Vacances_1', 2, 11),
(3, 'DUPONT', 'Fiesta', 'Fiesta_1', 2, 11),
(4, 'DUPONT', 'Fiesta', 'Fiesta_2', 3, 12);
CREATE TABLE `shop_format` (
`id` int(10) unsigned NOT NULL,
`format` varchar(45) collate utf8_unicode_ci default NULL,
`prix` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `shop_format_FKindex1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `shop_format` VALUES
(10, 'A1', 30),
(11, 'A2', 20),
(12, 'A3', 10);[/php]
avec $paramclient_panier = 'MARTIN', j'obtiens bien le résultat voulu avec la requête suivante.
[php]SELECT shop_panier.*, shop_format.format, shop_format.prix, (shop_format.prix*shop_panier.quantite) AS total_ttc
FROM shop_panier
INNER JOIN shop_format
ON shop_panier.format=shop_format.id
WHERE client = 'MARTIN'[/php]
J'ai évidemment pris quelques libertés sur les types des différents champs .