/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hjaepl til Indkoebskurv i session array's
Fra : Heylow


Dato : 10-12-06 20:03

Hej

Jeg er igang med at lave en indkoebskurv til mit web. Jeg bruger
sessions i form af arrays til at lave den. Min kode virker
perfekt til naar jeg indsaetter varer, men naar jeg skal til at
slette faar jeg problemer.

Jeg bruger print_r til at se hvad session array'en indeholder, og
ud fra den kan jeg se at array'en vognlan faar slettet den
rigtige vare sprog. Men af en eller anden grund sletter den ikke
vare id(vognid). Istedet faar session array'en vognid en ny ikke
array vaerdi. Den faar vaerdien fra vognid som blev sendt via
url'en.

Jeg kan ikke se hvad jeg goer forkert. Hele min kode som jeg har
skrevet indtil vidre til indkoebskurven er nedenunder.

___________Min inkoebskurv_____________

<?php
$pat = "_^[\d]*\$_";//alntal andet end tal maa ikke vaere her         
//checker i if-tag'en: om product skal koebes, om der er sat en
vaerdi til dem,
//om Sproget/tabellen findies i databasen, om der er ikke
oenskede tegn

//Indsaetter vare
if (isset($_GET['koeb']) && $_GET['koeb'] == 1 &&
isset($_GET['vognid']) &&
isset($_GET['vognlan']) && preg_match($pat, $_GET['vognid']) &&
preg_match($pat, $koeb) &&
$_GET['vognlan'] == 'Dansk' || $_GET['vognlan'] == 'Engelsk' ||
$_GET['vognlan'] == 'Svensk')
{

$_SESSION['vognid'][] = $_GET['vognid']; // gemmer vaerdi i
array session

$_SESSION['vognlan'][] = $_GET['vognlan']; // gemmer vaerdi i
array session
print_r($_SESSION['vognid']);
print_r($_SESSION['vognlan']);

// Unregner antal varer og pris ialt

$i = 0;
   $pris = 0;
      $total = 0;
      foreach ($_SESSION['vognid'] as $productID)
        {
       $session = $_SESSION['vognlan'][$i]; //Faar sprog/tabel fra
array som har samme nummer som vognid
                  
$result = mysql_query("SELECT Pris FROM $session WHERE ID
= $productID");
if (!$result)
       {
echo 'Kunne ikke udfoere forspoergsel. Problem: ' .
mysql_error();
exit;
}
      
       while($row = mysql_fetch_assoc($result))
{   
          $total = $total + 1;
             $pris = $pris + $row['Pris'];
          } // while
         
$i++;
    } // foreach
$_SESSION['vognpris'] = $pris;
$_SESSION['total'] = $total;

} // if tag'en

//Sletter vare
else if (isset($_GET['koeb']) && $_GET['koeb'] == 2 &&
isset($_GET['vognid']) &&
isset($_GET['vognlan']) && preg_match($pat, $_GET['vognid']) &&
preg_match($pat, $koeb) &&
preg_match($pat, $_GET['vognlannum']) && $_GET['vognlan'] ==
'Dansk' || $_GET['vognlan'] == 'Engelsk' || $_GET['vognlan'] ==
'Svensk')
{

       $num = $_GET['vognlannum'];
       intval($num);
       unset($_SESSION['vognid'][$num]);
       $sprog = $_SESSION['vognlan'][$num];

       $vognid = $_GET['vognid'];
       $result = mysql_query("SELECT Pris FROM $sprog WHERE ID =
$vognid");

          if (!$result)
       {
echo 'Kunne ikke udfoere forspoergsel. Problem:
'.mysql_error();
exit;
}
      
       while($row = mysql_fetch_assoc($result))
{   

          $_SESSION['total'] = $_SESSION['total'] - 1;
             $_SESSION['vognpris'] = $_SESSION['vognpris'] -
$row['Pris'];
   
          }
       unset($_SESSION['vognlan'][$num]);
       unset($_SESSION['vognid'][$num]);
            
print_r($_SESSION['vognid']);
print_r($_SESSION['vognlan']);
}

else
{
echo 'Saet lige nogle vaerdier.';

}
?>

Paa forhaand tak

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Heylow (10-12-2006)
Kommentar
Fra : Heylow


Dato : 10-12-06 22:18

Lavede lige en gentagelses fejl ved
>        $num = $_GET['vognlannum'];
>        intval($num);
>        unset($_SESSION['vognid'][$num]);

Her der den rettet.

> ___________Min inkoebskurv_____________
>
> <?php
> $pat = "_^[\d]*\$_";//alntal andet end tal maa ikke vaere her         
> //checker i if-tag'en: om product skal koebes, om der er sat en
> vaerdi til dem,
> //om Sproget/tabellen findies i databasen, om der er ikke
> oenskede tegn
>
> //Indsaetter vare
> if (isset($_GET['koeb']) && $_GET['koeb'] == 1 &&
> isset($_GET['vognid']) &&
> isset($_GET['vognlan']) && preg_match($pat, $_GET['vognid']) &&
> preg_match($pat, $koeb) &&
> $_GET['vognlan'] == 'Dansk' $_GET['vognlan'] == 'Engelsk'
> $_GET['vognlan'] == 'Svensk')
> {
>
> $_SESSION['vognid'][] = $_GET['vognid']; // gemmer vaerdi i
> array session
>
> $_SESSION['vognlan'][] = $_GET['vognlan']; // gemmer vaerdi i
> array session
> print_r($_SESSION['vognid']);
> print_r($_SESSION['vognlan']);
>
> // Unregner antal varer og pris ialt
>
> $i = 0;
>    $pris = 0;
>       $total = 0;
>       foreach ($_SESSION['vognid'] as $productID)
>         {
>        $session = $_SESSION['vognlan'][$i]; //Faar sprog/tabel fra
> array som har samme nummer som vognid
>                   
> $result = mysql_query("SELECT Pris FROM $session WHERE ID
> = $productID");
> if (!$result)
>        {
> echo 'Kunne ikke udfoere forspoergsel. Problem: ' .
> mysql_error();
> exit;
> }
>       
>        while($row = mysql_fetch_assoc($result))
> {   
>           $total = $total + 1;
>              $pris = $pris + $row['Pris'];
>           } // while
>          
> $i++;
>     } // foreach
> $_SESSION['vognpris'] = $pris;
> $_SESSION['total'] = $total;
>
> } // if tag'en
>
> //Sletter vare
> else if (isset($_GET['koeb']) && $_GET['koeb'] == 2 &&
> isset($_GET['vognid']) &&
> isset($_GET['vognlan']) && preg_match($pat, $_GET['vognid']) &&
> preg_match($pat, $koeb) &&
> preg_match($pat, $_GET['vognlannum']) && $_GET['vognlan'] ==
> 'Dansk' $_GET['vognlan'] == 'Engelsk' $_GET['vognlan'] ==
> 'Svensk')
> {
>
>        $num = $_GET['vognlannum'];
>        intval($num);
>        $sprog = $_SESSION['vognlan'][$num];
>
>        $vognid = $_GET['vognid'];
>        $result = mysql_query("SELECT Pris FROM $sprog WHERE ID =
> $vognid");
>
>           if (!$result)
>        {
> echo 'Kunne ikke udfoere forspoergsel. Problem:
> '.mysql_error();
> exit;
> }
>       
>        while($row = mysql_fetch_assoc($result))
> {   
>
>           $_SESSION['total'] = $_SESSION['total'] - 1;
>              $_SESSION['vognpris'] = $_SESSION['vognpris'] -
> $row['Pris'];
>    
>           }
>        unset($_SESSION['vognlan'][$num]);
>        unset($_SESSION['vognid'][$num]);
>             
> print_r($_SESSION['vognid']);
> print_r($_SESSION['vognlan']);
> }
>
> else
> {
> echo 'Saet lige nogle vaerdier.';
>
> }
> ?>
>
> Paa forhaand tak


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste