IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Comparer 2 references [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut Comparer 2 references
    Bonjour,

    J'ai un script ou j'ai une requète SQL, la reponse est récupérée sous forme de tableau:

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    $request = tep_db_query("SELECT c.parent_id, pd.products_id, pd.products_name, p.products_ref, p.products_price, s.specials_new_products_price, taille.products_options_values_id, couleur.products_options_values_id, couleur.products_options_values_name AS couleur, taille.products_options_values_name AS taille, pa.options_values_price, (
    pa.options_values_price + p.products_price ) AS final_price, (pa.options_values_price + s.specials_new_products_price ) AS final_price_promo
    FROM products_stock ps, products_description pd LEFT JOIN specials s USING(products_id), products_options_values couleur, products_options_values taille, products_attributes pa, products p, products_to_categories p2c, categories c
    WHERE pd.products_id = ps.products_id
    AND pd.products_id = pa.products_id
    AND pd.products_id = p.products_id
    AND p2c.products_id = pd.products_id
    AND p2c.categories_id = c.categories_id
    AND c.parent_id = 4
    AND SUBSTRING( ps.products_stock_attributes FROM 3 FOR 2 ) = couleur.products_options_values_id
    AND SUBSTRING( ps.products_stock_attributes FROM 8 FOR 2 ) = taille.products_options_values_id
    AND pa.options_values_id = taille.products_options_values_id
    ORDER BY pd.products_name, couleur.products_options_values_id, taille.products_options_values_id ");
     
    while($data = mysql_fetch_assoc($request)) 
      { 
    			if ($data['final_price_promo'] == '') {
    				$final_price = $data['final_price'];
    			} else { 
    				$final_price = $data['final_price_promo'];
    			}
     
    			$check = '';
                $quantite = '';
    			for($i=0;$i<count($_SESSION['panier'][$data['parent_id']]);$i++) {
                    if(($_SESSION['panier'][$data['parent_id']][$i]['nom'] == $data['products_name']) && ($_SESSION['panier'][$data['parent_id']][$i]['couleur'] == $data['couleur']) && ($_SESSION['panier'][$data['parent_id']][$i]['taille'] == $data['taille'])) {
                      $check = ' checked="checked"';
                      $quantite = 'value="' . $_SESSION['panier'][$data['parent_id']][$i]['quantite'] . '" ';
    				  break;
                    } 
                }
     
    			echo '<tr>
    			<td class="directbuy" width="90" align="center"><input type="checkbox" name="select[]" value="p' . $data['products_id'] . 'c' . $data['couleur'] . 't' . $data['taille'] . '-' . $data['products_name'] . '-' . $data['taille'] . '-' . $data['couleur'] . '-' . $final_price . '-' . $data['parent_id'] . '"' . $check . ' /></td>
                <td class="directbuy" width="50">' . $data['products_ref'] . '</td>
    			<td class="directbuy_nom" width="260">' . $data['products_name'] . '</td>
    			<td class="directbuy" width="130" align="center">' . $data['couleur'] . '</td>
    			<td class="directbuy" width="90" align="center">' .$data['taille'] . '</td>
    			<td class="directbuy_check" width="100" align="center"><input class="quantite" type="text" name="p' . $data['products_id'] . 'c' . $data['couleur'] . 't' . $data['taille'] . '" ' . $quantite . ' /></td>
    			</tr>';
     
    	}
    La page affiche un tableau de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [checkbox] [ref ][produit-nom][coul][taille][quantite]
     
    [checkbox] [001] [produit_1] [blanc] [XL] [quantite]
    [checkbox] [001] [produit_1] [noir] [XL] [quantite]
    [checkbox] [001] [produit_1] [noir] [L] [quantite]
    [checkbox] [002] [produit_2] [blanc] [XL] [quantite]
    [checkbox] [002] [produit_2] [blanc] [M] [quantite]
    [checkbox] [003] [produit_3] [noir] [XL] [quantite]
    [checkbox] [003] [produit_3] [noir] [L] [quantite]
    entre chaque ligne j'ai une bordure de 1px, mais j'aimerais qu'entre chaque type de reference ma ligne change de couleur.
    Je sais que je dois mettre un if qui aura comme résultat de changer le nom de la class, mais je sais pas comment faire pour lui dire de faire ca lorsque qu'il passe par exemple du groupe de produit de reference 002 au groupe de produits de reference 003.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $i = 0 ;
    while($je_peut_afficher){
    if($i % 2 == 0){
    affiche_avec_premiere_classe();
    }
    else{
    affiche_avec_deuxième_classe();
    }
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    Donc si je comprend bien le script changé sera comme ca:

    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
    35
    36
    37
    38
     
    while($data = mysql_fetch_assoc($request)) 
      { 
    			if ($data['final_price_promo'] == '') {
    				$final_price = $data['final_price'];
    			} else { 
    				$final_price = $data['final_price_promo'];
    			}
     
    			$check = '';
                $quantite = '';
    			for($i=0;$i<count($_SESSION['panier'][$data['parent_id']]);$i++) {
                    if(($_SESSION['panier'][$data['parent_id']][$i]['nom'] == $data['products_name']) && ($_SESSION['panier'][$data['parent_id']][$i]['couleur'] == $data['couleur']) && ($_SESSION['panier'][$data['parent_id']][$i]['taille'] == $data['taille'])) {
                      $check = ' checked="checked"';
                      $quantite = 'value="' . $_SESSION['panier'][$data['parent_id']][$i]['quantite'] . '" ';
    				  break;
                    } 
                }
     
    			$i = 0 ;
    			while($data){
    			  if($i % 2 == 0){
    				$class_ref =  '<td class="directbuy_ref1" width="50">';
    			  } else {
    				$class_ref =  '<td class="directbuy_ref2" width="50">';
    			  }
    			}
     
    			echo '<tr>
    			<td class="directbuy" width="90" align="center"><input type="checkbox" name="select[]" value="p' . $data['products_id'] . 'c' . $data['couleur'] . 't' . $data['taille'] . '-' . $data['products_name'] . '-' . $data['taille'] . '-' . $data['couleur'] . '-' . $final_price . '-' . $data['parent_id'] . '"' . $check . ' /></td>
                <td class="directbuy" width="50">' . $data['products_ref'] . '</td>
    			<td class="directbuy_nom" width="260">' . $data['products_name'] . '</td>
    			<td class="directbuy" width="130" align="center">' . $data['couleur'] . '</td>
    			<td class="directbuy" width="90" align="center">' .$data['taille'] . '</td>
    			<td class="directbuy_check" width="100" align="center"><input class="quantite" type="text" name="p' . $data['products_id'] . 'c' . $data['couleur'] . 't' . $data['taille'] . '" ' . $quantite . ' /></td>
    			</tr>';
     
    	}
    J'ai juste??

  4. #4
    Invité
    Invité(e)
    Par défaut
    il te faut incrémenter ton $i, je sais pas si c'est juste, c'est a toi de me dire

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    Non, j'ai modifié un peu mon code se qui à donné ca:

    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
    35
    36
    37
    38
     
    $j = 0 ;				
    while($data = mysql_fetch_assoc($request)) 
      { 
    			if ($data['final_price_promo'] == '') {
    				$final_price = $data['final_price'];
    			} else { 
    				$final_price = $data['final_price_promo'];
    			}
     
    			$j++;
    			if($j % 2 == 0){
    				$class_ref =  '<td class="directbuy_ref1" width="50">';
    			} else {
    				$class_ref =  '<td class="directbuy_ref2" width="50">';
    			}
     
    			$check = '';
                $quantite = '';
    			for($i=0;$i<count($_SESSION['panier'][$data['parent_id']]);$i++) {
                    if(($_SESSION['panier'][$data['parent_id']][$i]['nom'] == $data['products_name']) && ($_SESSION['panier'][$data['parent_id']][$i]['couleur'] == $data['couleur']) && ($_SESSION['panier'][$data['parent_id']][$i]['taille'] == $data['taille'])) {
                      $check = ' checked="checked"';
                      $quantite = 'value="' . $_SESSION['panier'][$data['parent_id']][$i]['quantite'] . '" ';
    				  break;
                    } 
                }
     
     
    			echo '<tr>
    			<td class="directbuy" width="90" align="center"><input type="checkbox" name="select[]" value="p' . $data['products_id'] . 'c' . $data['couleur'] . 't' . $data['taille'] . '-' . $data['products_name'] . '-' . $data['taille'] . '-' . $data['couleur'] . '-' . $final_price . '-' . $data['parent_id'] . '"' . $check . ' /></td>'
                . $class_ref . $data['products_ref'] . '</td>
    			<td class="directbuy_nom" width="260">' . $data['products_name'] . '</td>
    			<td class="directbuy" width="130" align="center">' . $data['couleur'] . '</td>
    			<td class="directbuy" width="90" align="center">' .$data['taille'] . '</td>
    			<td class="directbuy_check" width="100" align="center"><input class="quantite" type="text" name="p' . $data['products_id'] . 'c' . $data['couleur'] . 't' . $data['taille'] . '" ' . $quantite . ' /></td>
    			</tr>';
     
    	}
    Mais il me change la classe toutes les 2 ligne non pas après la fin d'une référence

  6. #6
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    alors ne fais pas $i%2 mais $ref%2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comparer des references
    Par marielaure2805 dans le forum Schéma
    Réponses: 3
    Dernier message: 09/02/2007, 12h40
  2. Réponses: 6
    Dernier message: 09/08/2006, 22h35
  3. Réponses: 3
    Dernier message: 28/10/2005, 01h12
  4. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo