logo   PHP - Arrays: Eksempler




Udtræk fra database


Opret indexeret array


Udtræk med en normal SELECT fra et enkelt tabelfelt og upload til $_SESSION.

while ($row = mysqli_fetch_assoc ($result))
{
$varer[] = $row['vare_id'];
}
$_SESSION['varer'] = $varer;




Opret associativ array


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;




Brug array til SELECT


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>";
?>




Vedligehold via $_SESSION


Opdater associativ array (f.eks. indkøbskurv).


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;




Brug array til SELECT


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>";
    }
}




















x
x