22. september 2007 - 13:18Der er
13 kommentarer og 1 løsning
Slet dem med check
Hej alle sammen.
jeg ligger inde med et rimelig svært problem.
Lad os starte fra toppen af, jeg har lavet et post system hvor brugere kan sende post til hinanden. I deres indbakke har jeg nu lavet et checkfelt ud for hver besked de har fået. det så meningen at de skal kunne checke flere beskeder af og så vælg Slet markede, hvorefter den så opdatere feltet "del" til yes i databasen. Den skal altså ikke slette men opdatere :-)
Koden der henter beskederne så således ud:
<?
$hent = mysql_query("SELECT * FROM post_beskeder WHERE modt = '$show[username]' AND mappe = 'std' AND del = 'no' ORDER BY id DESC") or die(mysql_error()); if(mysql_num_rows($hent)) { while($vis = mysql_fetch_array($hent)) {
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
foreach($_POST as $key => $value) { mysql_query("DELETE FROM mail WHERE id='".$_POST['key']."'"); }
Som altid, husk at tjekke - brugeren kan let selv tilføje felter og dermed slette mere end han egentlig har adgang til, så tjek at han kun sletter det han kan.
hm.. poster lige hele koden.. Får den laver bare et blink:
<? if($_GET[ac] == "del") {
foreach($_POST as $key => $value) { $sql = "UPDATE post_beskeder SET del = 'yes' WHERE id IN(". $value .") AND modt = '". $show["username"] ."'";
mysql_query($sql); }
}
$hent = mysql_query("SELECT * FROM post_beskeder WHERE modt = '$show[username]' AND mappe = 'std' AND del = 'no' ORDER BY id DESC") or die(mysql_error()); if(mysql_num_rows($hent)) { while($vis = mysql_fetch_array($hent)) {
Hvor har du $show['username'] fra? Desuden skal du jo have en submit knap af en art som sender brugeren til næste side - hvordan vil du ellers videreføre forms? Derudover skal du jo også skifte $mailid ud med, ja, mailen's id - at indsætte $mailid i HTML giver jo ikke meget. <input type='checkbox' name='<?php echo $vis['id']; ?>' />
$sql = "UPDATE post_beskeder SET del = 'yes' WHERE id IN(". $idrows .") AND modt = '". $show["username"] ."'";
mysql_query($sql);
} } }
$hent = mysql_query("SELECT * FROM post_beskeder WHERE modt = '$show[username]' AND mappe = 'std' AND del = 'no' ORDER BY id DESC") or die(mysql_error()); if(mysql_num_rows($hent)) { while($vis = mysql_fetch_array($hent)) {
har ændret i koden så det nu virker nogenlunde, men får følgene fejl:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN('19,18,17') AND modt = 'seje'' at line 1'
Koden:
if($_GET[ac] == "del") {
$idrows = implode(",", $_POST['post']);
mysql_query("UPDATE post_beskeder SET del = 'yes' WHERE id = IN('$idrows') AND modt = '$_SESSION[username]'") or die(mysql_error());
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.