15. juni 2007 - 22:09
Der er
3 kommentarer og
1 løsning
Slet række
Neeej, nu har jeg bare brugt for lang tid på at rode rundt efter spørgsmål, der kunne hjælpe mig, og jeg kan åbenbart ikke hjælpe mig selv.
Jeg har en side til at redigere nogle rækker i en tabel og tænkte det var meget smart at tilføje en slet-mulighed.
Der er fem kolonner: id (hidden), navn, beskrivelse, pris //alle fire fra tabel// og den sidste er hvor jeg prøver at lave et link til at slette den pågældende række. Alle fem kolonner i rækkerne gentages med 'While'.
Jeg arbejder stadig i Dreamweaver, men håber det er OK jeg poster her? Har oprettet en delete record server behavior:
if ((isset($_GET['id'])) && ($_GET['id'] != "")) {
$deleteSQL = sprintf("DELETE FROM menukort WHERE id=%s",
GetSQLValueString($_GET['id'], "int"));
Hvordan får jeg den integreret i min tabel?
Jeg har set, at nogle har fået noget a la det her til at virke:
<td width="19%"><a href="slet.php?id=$_GET[id]">slet</a></td>
hvor der så i slet.php står
mysql_query("DELETE FROM 'menukort' WHERE 'id'=$_GET[id]");
echo"<meta HTTP-EQUIV=Refresh CONTENT=0;URL=edit_menukort.php>";
men det sker der intet ved på den måde jeg har fået det sat sammen på...
Yes, OK, her kommer PHP-koden fra øverste del af edit_menukort.php:
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "opretmenu")) {
$insertSQL = sprintf("INSERT INTO menukort (navn, beskrivelse, pris) VALUES (%s, %s, %s)",
GetSQLValueString($_POST['navn'], "text"),
GetSQLValueString($_POST['beskrivelse'], "text"),
GetSQLValueString($_POST['pris'], "text"));
mysql_select_db($database_halvvejen, $halvvejen);
$Result1 = mysql_query($insertSQL, $halvvejen) or die(mysql_error());
}
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "update_menukort")) {
$updateSQL = sprintf("UPDATE menukort SET navn=%s, beskrivelse=%s, pris=%s WHERE id=%s",
GetSQLValueString($_POST['navn'], "text"),
GetSQLValueString($_POST['beskrivelse'], "text"),
GetSQLValueString($_POST['pris'], "text"),
GetSQLValueString($_POST['id'], "int"));
mysql_select_db($database_halvvejen, $halvvejen);
$Result1 = mysql_query($updateSQL, $halvvejen) or die(mysql_error());
}
if ((isset($_GET['id'])) && ($_GET['id'] != "")) {
$deleteSQL = sprintf("DELETE FROM menukort WHERE id=%s",
GetSQLValueString($_GET['id'], "int"));
mysql_select_db($database_halvvejen, $halvvejen);
$Result1 = mysql_query($deleteSQL, $halvvejen) or die(mysql_error());
}
$colname_rsIndhold = "1";
if (isset($_GET['id'])) {
$colname_rsIndhold = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_halvvejen, $halvvejen);
$query_rsIndhold = sprintf("SELECT * FROM indhold WHERE id = %s", $colname_rsIndhold);
$rsIndhold = mysql_query($query_rsIndhold, $halvvejen) or die(mysql_error());
$row_rsIndhold = mysql_fetch_assoc($rsIndhold);
$totalRows_rsIndhold = mysql_num_rows($rsIndhold);
mysql_select_db($database_halvvejen, $halvvejen);
$query_rsUpdatemenukort = "SELECT * FROM menukort ORDER BY id ASC";
$rsUpdatemenukort = mysql_query($query_rsUpdatemenukort, $halvvejen) or die(mysql_error());
$row_rsUpdatemenukort = mysql_fetch_assoc($rsUpdatemenukort);
$totalRows_rsUpdatemenukort = mysql_num_rows($rsUpdatemenukort);
?>
Og her er formularen:
<form action="<?php echo $editFormAction; ?>" method="POST" name="update_menukort" id="update_menukort">
<table width="100%" border="0" cellpadding="0" cellspacing="2" class="indhold">
<?php do { ?>
<tr>
<td width="3%"><input name="id" type="hidden" id="id2"></td>
<td width="20%"><input name="navn" type="text" id="navn" value="<?php echo $row_rsUpdatemenukort['navn']; ?>"></td>
<td width="39%"><textarea name="beskrivelse" cols="50" rows="2" id="beskrivelse"><?php echo $row_rsUpdatemenukort['beskrivelse']; ?></textarea></td>
<td width="19%"><input name="pris" type="text" id="pris" value="<?php echo $row_rsUpdatemenukort['pris']; ?>"></td>
<td width="19%"><a href="slet.php?id=$_GET[id]">slet</a></td>
</tr>
<?php } while ($row_rsUpdatemenukort = mysql_fetch_assoc($rsUpdatemenukort)); ?>
</table>
<p>
<input type="submit" name="Submit" value="Gem ændringer">
</p>
<input type="hidden" name="MM_update" value="update_menukort">
</form>
Hjælper det?
Man kan selvfølgelig ikke altid forvente at få hjælp og jeg blev for utålmodig, så jeg har lavet en lidt besværlig work-around, med at åbne en side seperat, hvor man så kan slette den pågældende post... Hvis der er nogen der vil vide, hvordan man gør det, skal I bare sige til ... ;-)
Lukker, bukker, sukker og slukker...