$_GET mystik?
Jeg har denne kode hvor jeg starter på siden admin.php.Her kan jeg vælge at tilføje,redigere eller slette mine data.
Hvis jeg skal tilføje bliver url'en billet.php?action=add
billet.php ved så via url'en at der skal tilføjes.
Hvis jeg gerne vil redigere en eksisterende data så hedder url'en
billet.php?action=edit&type=billet
Når du trykker rediger skal oplysningerne vises i de felter som man trykke information ind og når der skal tilføjes skal disse felter være tomme (intet problem.)
Jeg har endnu et php dokument ved navn commit.php
I commit.php skal den registrere om der skal tilføjes (mysql:INSERT) eller opdateres(mysql:UPDATE) ved hjælp af at kigge i url'en.
På min billet.php har jeg dette tilføjet i form'en:
<form action="commit.php?action=<?php echo $_GET['action']; ?>&type=billet" methode="post">
så den tager fra den nuværende url og putter i den nye url (commit.php) som ud fra det skal behandle dataen.
Mystikken opstår på billet.php?action=add
Her har jeg gjort så knappen ændre navn fra hvad der står i url'en
<input type="submit" name="submit" value="<?php ucfirst($action); ?>" />
Men denne knap har ingen value.
Jeg har så prøvet at smide det ud i en variable $action = $_GET['action'] uden held. Det underlige opstår da jeg sætter dette i starten af php
echo "action er lige med " . $action;
Og resultatet bliver: action er lige med add.
Hvis man åbner kildekoden og kigger så har den sørme også sat add ind i min form så url'en bliver commit.php?action=add&type=billet
men hvis jeg går ned til min <input type="submit" name="submit" value="<?php ucfirst($action); ?>" />
Så har den ingen værdi.
Men i skal da nok se nogle kildekoder hvis i skal kunne se jer ud af det:
admin.php
<?php
$db = mysql_connect('localhost', 'root') or die('unable to connect..');
mysql_select_db('my_db', $db) or die(mysql_error($db));
?>
<html>
<head>
<title>Billet Database</title>
<style type="text/css">
th { background-color: #999; }
.odd_row { background-color: #EEE; }
.even_row { background-color: "FFF; }
</style>
</head>
<body>
<table style="width:100%;">
<tr>
<th colspan="5">Billetter <a href="billet.php?action=add">[TILFØJ]</a></th>
</tr>
<?php
$query = "SELECT * FROM ticket_user";
$result = mysql_query($query, $db) or die(mysql_error($db));
$odd = true;
while ($row = mysql_fetch_assoc($result)) {
if ($odd == true) {
echo "<tr class='odd_row'>";
}
else {
echo "<tr class='even_row'>";
}
$odd = !$odd;
echo "<td style='width:10%;'>";
echo $row['order_nr'];
echo "</td>";
echo "<td style='width:75%;'>";
echo $row['navn'];
echo "</td><td>";
echo " <a href='billet.php?action=edit&id=" . $row['order_id'] . "'> [REDIGER]</a>";
echo " <a href='delete.php?type=billet&id=" . $row['order_id'] . "'> [SLET]</a>";
echo '</td></tr>';
}
?>
</table>
__________________
billet.php
<?php
$db = mysql_connect('localhost', 'root') or die('unable to connect..');
mysql_select_db('my_db', $db) or die(mysql_error($db));
$action = $_GET['action'];
if($action == 'edit') {
$query = "SELECT order_nr, navn, billet_type, antal, afsendt FROM ticket_user WHERE order_id = " . $_GET['id'];
$result = mysql_query($query, $db) or die(mysql_error());
extract(mysql_fetch_assoc($result));
}
else {
$order_nr = 0;
$navn = "";
$billet_type = "";
$antal = 0;
$afsendt = "";
}
?>
<html>
<head>
<title><?php ucfirst($action); ?> Movie</title>
</head>
<body>
<?php echo "action er lige med " . $action; ?>
<form action="commit.php?action=<?php echo $action; ?>&type=billet" methode="post">
<table>
<tr>
<td width="97">Order Nummer</td>
<td width="149"><input type="text" name="order_nr" value="<?php echo $order_nr; ?>" /></td>
</tr><tr>
<td>Navn</td>
<td><input name="navn" type="text" value="<?php echo $navn; ?>" /></td>
</tr><tr>
<td>Billet Type</td>
<td><input name="billet_type" type="text" value="<?php echo $billet_type; ?>" /></td>
</tr><tr>
<td>antal</td>
<td><input name="antal" type="text" value="<?php echo $antal; ?>" /></td>
</tr><tr>
<td>Afsendt</td>
<td><input name="afsendt" type="text" value="<?php echo $afsendt; ?>" /></td>
</tr>
<td colspan="2" style="text-align: center;">
<?php
if ($action == "edit") {
echo "<input type='hidden' value='" . $_GET['id'] . "' name='order_id' />";
}
?>
<label>
<input type="submit" name="submit" value="<?php ucfirst($action); ?>" />
</label></td></table></form>
</body></html>
__________________
commit.php
<?php
$db = mysql_connect('localhost', 'root') or die('unable to connect..');
mysql_select_db('my_db', $db) or die(mysql_error($db));
?>
<html>
<head>
<title>Commit</title>
</head>
<body>
<?php
switch ($_GET["action"]) {
case "add":
switch ($_GET["type"]) {
case "billet":
$query = "INSERT INTO
ticket_user
(order_nr,navn,billet_type,antal,afsendt)
VALUES
('" . $_POST['order_nr'] . "',
'" . $_POST['navn'] . "',
'" . $_POST['billet_type'] . "',
'" . $_POST['antal'] . "',
'" . $_POST['afsendt'] . "')";
break;
}
break;
case "edit":
switch($_GET['type']) {
case "billet":
$query = "UPDATE ticket_user SET
order_nr ='" . $_POST['order_nr'] . "',
navn ='" . $_POST['navn'] . "',
billet_type = '" . $_POST['billet_type'] . "',
antal = '" . $_POST['antal'] . "',
afsendt ='" . $_POST['afsendt'] . "'
WHERE
order_id ='" . $_POST['id'] . "'";
break;
}
break;
}
if (isset($query)) {
$result = mysql_query($query) or die(mysql_error($db));
echo "<p>Færdig!</p>";
}
?>
</body>
</html>