|
while ($row = mysqli_fetch_assoc ($result))
{ $varer[] = $row['vare_id']; } $_SESSION['varer'] = $varer; |
Udtræk med en normal SELECT fra to tabelfelter med det nødvendige indbyrdes fællesskab og upload til $_SESSION.
$g_rettigheder = array(); while ($row = mysqli_fetch_assoc ($result)) { $g_rettigheder[$arr_row['ret_id']] = $arr_row['ret_kodenavn']; } $_SESSION['g_rettigheder'] = $g_rettigheder; |
Et SELECT-program baseret på en array (f.eks. importeret via $_SESSION) opbygges næsten som et 'normalt' SELECT-program. Der skal dog ikke være nogen 'while'-løkke, idet der søges i DB efter en record af gangen på basis af arrayen. Derimod skal hele programmet pakkes ind i en 'foreach'-løkke:
<?php $vare_id_array = $_SESSION['varer']; // hent array fra $_SESSION echo "<table class ='hover'>"; // FLYTTET FRA LIGE OVER WHILE foreach ($vare_id_array as $vare_id) // LÆSNING AF ARRAY - START { $query = "select * from varestam where vare_id = $vare_id"; $result = mysqli_query ($db_link, $query) or die (mysqli_error ($db_link)); $antal = mysqli_num_rows ($result); $row = mysqli_fetch_assoc($result); // WHILE {-linie taget ud . . traditionel kode for udstræk med SELECT . . } // FOREACH - LOOP med LÆSNING AF ARRAY SLUT - (GENBRUG AF WHILE SLUT } echo "</table>"; ?> |
Oprettelse af array if (!isset ($_SESSION['kurv'])) { $_SESSION['kurv'] = array(); } // ========================================================= // Henter oplysninger fra URL'en if (isset ($_GET['handling'])) { $handling = $_GET['handling']; } if (isset ($_GET['vare_id']) && is_numeric ($_GET['vare_id'])) { $vare_id = $_GET['vare_id']; } // ============================================================== // IF: Hvis vi har modtaget en handling if (isset ($handling)) { // Kopierer indholdet af kurven fra $_SESSION til variablen $kurv. // Dette gør det nemmere at arbejde med indholdet da $kurv jo er kortere. // Du skal bare huske at kopiere fra $kurv til $_SESSION længere nede i koden. $kurv = $_SESSION['kurv']; // ========================================================= // Tilføj en vare if ($handling == 'tilfoj' && isset($vare_id)) { if (isset ($kurv [$vare_id])) // IF: Hvis varen findes i kurven { $kurv [$vare_id] += 1; // Lægger 1 til antallet } else { $kurv [$vare_id] = 1; // Sætter antallet til 1 } } // ========================================================= // Fjern en vare if ($handling == 'fjern' && isset($vare_id)) { // IF: Hvis varen findes i kurven if (isset ($kurv [$vare_id])) { $kurv [$vare_id] -= 1; // Trækker 1 fra antallet if ($kurv [$vare_id] < 1) // IF: Hvis antallet er kommet under 1 { unset ($kurv [$vare_id]); // Fjerner varen } } } // ========================================================= // Tøm kurven if ($handling == 'toem_kurv') { $kurv = array(); } // ========================================================= // Nu er vi færdige med at arbejde med $kurv variablen. // Vi er nødt til at kopiere indholdet af $kurv tilbage til $_SESSION // ellers bliver vores ændringer ikke gemt. $_SESSION['kurv'] = $kurv; |
Hvert associativt datapar i arrayen gøres via 'as' til en variabel med det anførte navn og tilhørende værdi.<(p>
foreach ($_SESSION['kurv'] as $vare_id => $vare_antal) { $sql = "SELECT * FROM vare WHERE vare_id = $vare_id"; $result = mysqli_query ($db_link, $sql) or die (mysqli_error($db_link)); if ($row = mysqli_fetch_assoc ($result)) { // Udregn denne vares samlet pris. $vare_samlet_pris = $row ['vare_pris'] * $vare_antal; // Læg ovenstående pris til totalprisen $total_pris = $total_pris + $vare_samlet_pris; echo "<tr>"; echo "<td style='text-align: right; padding-right: 15px;'>$vare_antal x</td>"; echo "<td style='max-width: 275px;'>$row[vare_navn]</td>"; echo "<td style='text-align: right;'>$row[vare_pris] kr.</td>"; echo "<td style='text-align: right;'>$vare_samlet_pris kr.</td>"; echo "<td>"; echo "<a href='kassen.php?handling=tilfoj&vare_id=$row[vare_id]'>Tilføj</a> / "; echo "<a href='kassen.php?handling=fjern&vare_id=$row[vare_id]'>Fjern</a>"; echo "</td>"; echo "</tr>"; } } |