Bonsoir,
J'ai un soucis sur une requête SQL que je genere via a petit script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php session_start(); 
include 'include/connect.php';
$nbrCommande=count($_SESSION['panier']['produit']);
for ($i=0 ;$i < $nbrCommande ; $i++)
{
	$sql = 'SELECT prix FROM data_prices WHERE ';
	foreach($_SESSION['panier'] as $cle=>$valeur)
	{		
		if($valeur[$i] == '')
		{			
			$valeur[$i] = 'default';
		}
 
		if($cle != 'num_commande' && $cle != 'prixHT' && $cle != 'page_cover' && $cle != 'prixTTC')
		{
			if($cle == 'page'){
				$cle = 'pages';
			}
			$sql = $cle.'=\''.mysql_real_escape_string($valeur[$i]).'\' AND ';		
			if($cle == 'delais'){
				$valeur[$i] = substr($valeur[$i],0,1);
				$sql = $cle.'=\''.mysql_real_escape_string($valeur[$i]).'\'';
			}
 
		}
		//echo $sql.'<br>';
	}
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	while($row = mysqli_fetch_assoc($req)) {
		echo $row['prix'];
	}
 
}				
?>
Quand je fais un echo de ma $req j'obtient une requête valide du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT prix FROM data_prices WHERE
produit='Affiche' AND
format='1000 x 707 mm DIN B1' AND
quantite='3000 exemplaires' AND
pages='default' AND
grammage='170 gr/m²' AND
impression='default' AND
impression='default' AND
finition='default' AND
pelliculage='default' AND
impression_cover='default' AND
grammage_cover='default' AND
delais='8'
J'ai une erreur de syntax...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Erreur SQL !
delais='2'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'delais='2'' at line 1
Ma base
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE IF NOT EXISTS `data_prices` (
  `produit` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
  `format` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `grammage` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `impression` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `pelliculage` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `finition` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `pages` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `impression_cover` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `grammage_cover` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `quantite` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
  `delais` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
  `prix` float NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Merci d'avance