Boucle dans insert into

Bonjour,

je ne comprends pas où est mon probleme avec :

$i = 0;
     while($i < 2) 
     { 
    	$ajout_caddies = "INSERT INTO soft_caddies (num_devis,articles_id) VALUES('$numero','$Articles".$i."')"; 
		mysql_query($ajout_caddies); 
      $i++; 
     }

Notice: Undefined variable: Articles in C:\wamp\www\mysql.php on line 119
Notice: Undefined variable: Articles in C:\wamp\www\mysql.php on line 119

il ne veut pas boucler ?

cordialement

C’est mixe avec des “$var” " “.$var.” ", c’est pas super !
Bref, tu as mi un $Artcile, et il dit qu’il connait pas !


$i = 0;
while($i < 2) 
{ 
    $ajout_caddies = "INSERT INTO soft_caddies (num_devis,articles_id) VALUES(".$numero.",'Articles".$i."')";   
    mysql_query($ajout_caddies); 
    $i++; 
}

salut pyro ;),

c’est une variable articles, je souhaite recuper les valeurs de
$articles1
$articles2

etc… :confused:

Alors le mieux serais d’utilisé un tableau pour stoqué les valeurs $articles[0…X] etc.
sinon :


$ajout_caddies = "INSERT INTO soft_caddies (num_devis,articles_id) VALUES(".$numero.",''.${'Articles'.$i}."')";

Mais c’est moche :smiley:

Ps : je sais pas si ya un A ou un a à articles vu que dans tes deux message ya les deux possibilités.
Edité le 25/05/2009 à 16:55

tu veux voire un truc moche ?

j’ai 7 :

		$sql = 'SELECT id, description, prix FROM soft_articles WHERE prix = "'.$prixArticles1.'" '; 
		$req = mysql_query( $sql ); 
		$row = mysql_fetch_array($req);
		$Articles1 = $row ['id']

pour récupérer le prix de 7 articles, j’arrive pas à faire de boucle dans les variables. mais c’est super laid donc là je testais :yeux1: j’ai beaucoup à apprendre… je sais
Edité le 25/05/2009 à 16:56

Le but c’est quoi dans ta requete recupérer la liste des articles qui ont pour prix : $prixArticle1 ?

Ps : Donne donc le code de toute ta page, on va corriger ca :fou:
Edité le 25/05/2009 à 17:00

là je recup :

$prixArticles1 = $_POST['select_0'];
$prixArticles2 = $_POST['select_1'];
$prixArticles3 = $_POST['select_2'];
$prixArticles4 = $_POST['select_3'];
$prixArticles5 = $_POST['select_4'];
$prixArticles6 = $_POST['select_5'];
$prixArticles7 = $_POST['select_6'];

ensuite je vais chercher l’articles celon le prix

		$sql = 'SELECT id, description, prix FROM soft_articles WHERE prix = "'.$prixArticles1.'" '; 
		$req = mysql_query( $sql ); 
		$row = mysql_fetch_array($req);
		$Articles1 = $row ['id'];

		$sql2 = 'SELECT id, description, prix FROM soft_articles WHERE prix = "'.$prixArticles2.'" '; 
		$req2 = mysql_query( $sql2 ); 
		$row2 = mysql_fetch_array($req2);
		$Articles2 = $row2 ['id'];
		
		$sql3 = 'SELECT id, description, prix FROM soft_articles WHERE prix = "'.$prixArticles3.'" '; 
		$req3 = mysql_query( $sql3 ); 
		$row3 = mysql_fetch_array($req3);
		$Articles3 = $row3 ['id'];
		
		$sql4 = 'SELECT id, description, prix FROM soft_articles WHERE prix = "'.$prixArticles4.'" '; 
		$req4 = mysql_query( $sql4 ); 
		$row4 = mysql_fetch_array($req4);
		$Articles4 = $row4 ['id'];
		
		$sql5 = 'SELECT id, description, prix FROM soft_articles WHERE prix = "'.$prixArticles5.'" '; 
		$req5 = mysql_query( $sql5 ); 
		$row5 = mysql_fetch_array($req5);
		$Articles5 = $row5 ['id'];
		
		$sql6 = 'SELECT id, description, prix FROM soft_articles WHERE prix = "'.$prixArticles6.'" '; 
		$req6 = mysql_query( $sql6 ); 
		$row6 = mysql_fetch_array($req6);
		$Articles6 = $row6 ['description'];
		
		$sql7 = 'SELECT id, description, prix FROM soft_articles WHERE prix = "'.$prixArticles7.'" '; 
		$req7 = mysql_query( $sql7 ); 
		$row7 = mysql_fetch_array($req7);
		$Articles7 = $row7 ['id'];

là je mets à jour une autre table :

 $ajout_caddies = "INSERT INTO soft_caddies (num_devis,articles_id) VALUES('$numero',".$Articles.$i."')"; 
 mysql_query($ajout_caddies); 

archaïque n’est ce pas ?
Edité le 25/05/2009 à 17:04

Je trouve ca pas très fiable de récupérer un article en fonction de son prix. Je présume que tu peut très bien envoyer l’idendifiant de l’article plutot que le prix avec le GET.

sinon ca donnerais :


// Alors ici aussi, tu peut tres bien faire des tableau directement en HTML en metant name="article[0]"
// Avec ta version du post
$i = 0;
while( isset( $_POST['select_'.$i] ) ) {
    $sql = 'SELECT id, description, prix FROM soft_articles WHERE prix = "'.floatval( $_POST['select_'.$i] ).'" ';  // floatval pour evité les injection SQL.
    $req = mysql_query( $sql );
    list( $id ) = mysql_fetch_row( $req );
    mysql_free_result( $req );
    $sql = "INSERT INTO soft_caddies (num_devis,articles_id) VALUES('".$numero."',".$id."')";
    mysql_query( $sql );
    $i++
}

Edité le 25/05/2009 à 17:13


PS : Sinon ya surement moyen de faire ca en SQL directement. Je sais pas ce que c'est que ton $numero

encore une fois merci pyro:super:

j’ai une erreure a la ligne final

}

Parse error: parse error in

j’ai rajouter un ’ après la ,

 $sql = "INSERT INTO soft_caddies (num_devis,articles_id) VALUES('".$numero."',".$id."')";

mais c’est pas ça

$numero est le numero de devis recup depuis un post
Edité le 25/05/2009 à 17:24

:@désolé le ; a $i++

merci c’est parfait !
Edité le 26/05/2009 à 13:58