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