18. november 2007 - 17:52Der er
14 kommentarer og 1 løsning
Slet flere (funktion til internent mailsystem)
Heej alle eksperter :)
Sidder og programmerer et internt mailsystem, hvortil jeg godt vil have en funktion der gør det muligt at slette flere mails af gangen - mere præcist, dem der er markeret (checkbox).
Queryen der udskriver, ser således ud:
$query = mysql_query("SELECT * FROM mail WHERE recipient='$username' AND delrec='1'") or die(mysql_error()); while($row = mysql_fetch_array($query)) { if($row[readrec] == "1"){ $ReadRec = '<img src="gfx/green.gif">'; } else { $ReadRed = '<img src="gfx/red.gif">'; }
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
if ($show == "inbox") { if(isset($_POST[domarkt])) { if($_POST[markt] == "delete") { foreach($_POST["ref"] as $refid) { $query = mysql_query("UPDATE mail SET delrec='2' WHERE recipient='$username' AND id='$refid'") or die(mysql_error()); } } }
Og det der gør at man kan slette: <form action="" method="post"> <select name="markt" size="1" class="input"> <option>Med markerede ...</option> <option value="delete">Slet</option> <option value="markread">Marker som læst</option> <option value="markunread">Marker som ulæst</option> <option value="attachstar">Tilføj stjerne</option> <option value="killstar">Fjern stjerne</option </select> <input type="submit" name="domarkt" value="Udfør" class="button" /> </form>
I stedet for at bruge foreach() ( udføre en query for hver ) kan du bruge
$del_ref = implode(",", $_POST["ref"]); // og så afvikle en query UPDATE mail SET delrec = 2 WHERE id IN (". $del_ref .") AND recipient = '". $username ."'
Lyder smart, vil jeg da lige prøve :) Men det skal da lige siges at foreach() virker fint, men for at belaste serveren mindre, ville de være smart med dit eks. showsource ..
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 '17' AND recipient='RHCortx'' at line 1
if(isset($_POST[domarkt])) { if($_POST[markt] == "delete") { $del_ref = implode(",", $_POST["ref"]); $query = mysql_query("UPDATE mail SET delrec='2' WHERE id IN $del_ref' AND recipient='$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.