Cookies vergelijken met lijstje
Ik wil data uit een cookie vergelijken met een keuze lijst die gemaakt wordt door een While-lus
Cookie data:
2,10 (2 staat voor modelnummer, 10 voor aantal)
Nu begrijp ik dat ik deze data moet opvragen en explode.
dat doe ik zo:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$cart = explode("|",$_SESSION['cart']);
foreach($cart as $products) {
$product = explode(",",$products);
}
foreach($cart as $products) {
$product = explode(",",$products);
}
Wanneer ik de waarde $product[0] opvraagd via
Krijg ik netjes onder elkaar 2,4 en 99
tot hier lukt het me, maar nu???
ik heb uit een query met While-lus een rijtje met productnummers: 2,3,4
Nu moeten deze productnummers vergeleken worden met de nummers uit de cookie.
2 en 4 moeten dan bv: rood weergegeven worden (zodat het duidelijk is dat deze al in de cart zitten)
Hoe doe ik deze vergelijking?
dus even simpel weer te geven:
Cookie data =
2,4,99
querydata=
2,3,4
gewenst=
2, 3, 4
Hopelijk begrijpen jullie mij of kunnen jullie mij in ieder geval de goede weg op sturen.
Graag in het vervolg bij code, [code] [/code] tags gebruiken.[/modedit]
Gewijzigd op 03/01/2013 18:47:18 door Bas IJzelendoorn
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$cart = explode("|",$_SESSION['cart']);
$productIds = array();
foreach($cart as $products) {
$product = explode(",",$products);
$productIds[] = $product[0]; //productIds bevat nu alle product ids.
}
//hier ergens je while lus
if(in_array($idDatJeUitDeDatabaseHebt, $productsIds)) {
echo $idDatJeUitDeDatabaseHebt.' zit al in je shopping cart! <br />'
}
?>
$cart = explode("|",$_SESSION['cart']);
$productIds = array();
foreach($cart as $products) {
$product = explode(",",$products);
$productIds[] = $product[0]; //productIds bevat nu alle product ids.
}
//hier ergens je while lus
if(in_array($idDatJeUitDeDatabaseHebt, $productsIds)) {
echo $idDatJeUitDeDatabaseHebt.' zit al in je shopping cart! <br />'
}
?>
wat ik me afvraag is waarom je die modelnummers en aantal zo raar in die sessie zet
waarom doe je niet zoiets?
Code (php)
oftewel, een multidimensionale array.
Gewijzigd op 03/01/2013 18:51:51 door Bo Ter Ham
ik heb nu dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$result2 = mysql_query( "SELECT * FROM Optie LEFT JOIN ConvModelOptie ON
( Optie.ID_Optie = ConvModelOptie.ID_Optie )
WHERE ConvModelOptie.ID_Model='".mysql_real_escape_string($_GET['Model'])."' " )
or die("SELECT Error: ".mysql_error());
while ($row2=mysql_fetch_array($result2)) {
$Optienaam= $row2['Optienaam'];
$IDO= $row2['ID_Optie'];
$cart = explode("|",$_SESSION['cart']);
$productIds = array();
foreach($cart as $products) {
$product = explode(",",$products);
$productIds[] = $product[0]; //productIds bevat nu alle product ids.
}
//hier ergens je while lus
if(in_array($IDO, $productsIds)) {
echo $IDO." zit al in je shopping cart! <br />";}
}
( Optie.ID_Optie = ConvModelOptie.ID_Optie )
WHERE ConvModelOptie.ID_Model='".mysql_real_escape_string($_GET['Model'])."' " )
or die("SELECT Error: ".mysql_error());
while ($row2=mysql_fetch_array($result2)) {
$Optienaam= $row2['Optienaam'];
$IDO= $row2['ID_Optie'];
$cart = explode("|",$_SESSION['cart']);
$productIds = array();
foreach($cart as $products) {
$product = explode(",",$products);
$productIds[] = $product[0]; //productIds bevat nu alle product ids.
}
//hier ergens je while lus
if(in_array($IDO, $productsIds)) {
echo $IDO." zit al in je shopping cart! <br />";}
}
maar krijg nu deze foutmelding:
Warning: in_array() expects parameter 2 to be array, null given
Doe ik iets fout, of iets niet in de goede volgorde?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$result2 = mysql_query( "SELECT * FROM Optie LEFT JOIN ConvModelOptie ON
( Optie.ID_Optie = ConvModelOptie.ID_Optie )
WHERE ConvModelOptie.ID_Model='".mysql_real_escape_string($_GET['Model'])."' " )
or die("SELECT Error: ".mysql_error());
$cart = explode("|",$_SESSION['cart']);
$productIds = array();
foreach($cart as $products) {
$product = explode(",",$products);
$productIds[] = $product[0]; //productIds bevat nu alle product ids.
}
while ($row2=mysql_fetch_array($result2)) {
$Optienaam= $row2['Optienaam'];
$IDO= $row2['ID_Optie'];
if(in_array($IDO, $productsIds)) {
echo $IDO." zit al in je shopping cart! <br />";
}
}
?>
$result2 = mysql_query( "SELECT * FROM Optie LEFT JOIN ConvModelOptie ON
( Optie.ID_Optie = ConvModelOptie.ID_Optie )
WHERE ConvModelOptie.ID_Model='".mysql_real_escape_string($_GET['Model'])."' " )
or die("SELECT Error: ".mysql_error());
$cart = explode("|",$_SESSION['cart']);
$productIds = array();
foreach($cart as $products) {
$product = explode(",",$products);
$productIds[] = $product[0]; //productIds bevat nu alle product ids.
}
while ($row2=mysql_fetch_array($result2)) {
$Optienaam= $row2['Optienaam'];
$IDO= $row2['ID_Optie'];
if(in_array($IDO, $productsIds)) {
echo $IDO." zit al in je shopping cart! <br />";
}
}
?>
of:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$result2 = mysql_query( "SELECT * FROM Optie LEFT JOIN ConvModelOptie ON
( Optie.ID_Optie = ConvModelOptie.ID_Optie )
WHERE ConvModelOptie.ID_Model='".mysql_real_escape_string($_GET['Model'])."' " )
or die("SELECT Error: ".mysql_error());
$cart = explode("|",$_SESSION['cart']);
while ($row2=mysql_fetch_array($result2)) {
$Optienaam= $row2['Optienaam'];
$IDO= $row2['ID_Optie'];
foreach($cart as $products) {
$product = explode(",",$products);
if($product[0] == $IDO) {
echo $IDO." zit al in je shopping cart! <br />";
}
}
}
?>
$result2 = mysql_query( "SELECT * FROM Optie LEFT JOIN ConvModelOptie ON
( Optie.ID_Optie = ConvModelOptie.ID_Optie )
WHERE ConvModelOptie.ID_Model='".mysql_real_escape_string($_GET['Model'])."' " )
or die("SELECT Error: ".mysql_error());
$cart = explode("|",$_SESSION['cart']);
while ($row2=mysql_fetch_array($result2)) {
$Optienaam= $row2['Optienaam'];
$IDO= $row2['ID_Optie'];
foreach($cart as $products) {
$product = explode(",",$products);
if($product[0] == $IDO) {
echo $IDO." zit al in je shopping cart! <br />";
}
}
}
?>
zou volgens mij moeten werken.
Gewijzigd op 03/01/2013 19:36:29 door Bo Ter Ham
Mag ik u vriendelijk bedanken! Optie twee geeft bij mij het resultaat dat ik zocht!
Thank you!
Wellicht dat ik in de war ben door de naamgeving van de tabellen, maar volgens mij vergelijk je een optie_id met een product_id (tenzij je maar één product verkoopt)