Archief - [PHP Check]: Controle Code

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

zippke

Legacy Member
Hallo iedereen

De uitleg die bij onderstaande code staat, klopt deze? zoniet, gelieve me even te verbeteren

PHP:
//Als de methode ‘POST’ is, controleer dan of je een checkbox hebt aangevinkt en of de checkbox bestaat.
<?
if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if(!isset($_POST['del_id'])) { 

//Als je geen checkbox hebt aangevinkt, geeft hij een messagebox

    } 
    else { 

//Anders verwijdert hij het product (Maak connectie met de database en vul de variabele $del_id in met de waarden mee verzonden met het formulier.

        $del_id = $_POST['del_id'];
	$Link = mysql_connect ($Host, $User, $Password); 
	mysql_select_db($DBName, $Link);

//Implode voegt array elementen samen in een string. Hij voegt dus de waarden die in $del_id zitten samen in $in_string. ("', '", dient om de waarden met komma’s van elkaar te scheiden.)
	$in_string = implode("', '", $del_id);

//Verwijder de producten uit de database.
	$deletequery = "DELETE FROM $TableName WHERE id IN (" . $in_string . ")";
	mysql_query($deletequery) or die("Fout: " . mysql_error()); 
?>
//Toon een messagebox dat de gegevens succesvol zijn verwijderd en sluit de IF-structuren van hierboven af
<?
    } 
} 
?>

Bedankt

DarkBone

Legacy Member
Commentaar is correct, slechts twee kleine opmerkingen:
  • waarom een tussenvariabele $del_id gebruiken?
  • quotes in je IN-string zijn niet nodig, de id's zijn numeriek (je had trouwens quotes vergeten in de uiteindelijk sql-query rond je variabele $in_string)
PHP:
		$Link = mysql_connect ($Host, $User, $Password);  
		mysql_select_db($DBName, $Link); 

		//Implode voegt array elementen samen in een string. Hij voegt dus de waarden die in $del_id zitten samen in $in_string. ("', '", dient om de waarden met komma&#8217;s van elkaar te scheiden.) 
		$in_string = implode(", ", $_POST['del_id']); 

		//Verwijder de producten uit de database. 
		$deletequery = "DELETE FROM $TableName WHERE id IN (" . $in_string . ")"; 
		mysql_query($deletequery) or die("Fout: " . mysql_error());

icerulez

Legacy Member
die implode kan je trouwens evengoed vervangen door een serialize() en daarna dan unserialize() ipv explode(). Bewaart de volledige structuur van u array, interne keys enzo...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan