Page 1 sur 1

Suppression de lignes

Posté : 08 sept. 2012, 07:51
par Boris
Bonjour,

via une fonction wwhile, j'envoie des emails (une ligne par mail). Je souhaite ensuite que la ligne soit supprimée. Le problème est que pour le moment mon code supprime toutes mes lignes, alors que j'ai spcifié un nombre maxi de requêtes.

Merci par avance
<?php

$sql = "SELECT * FROM jooml_mailing";
$result = mysql_query($sql);

$counter = 0;
$max = 2;

while($row = mysql_fetch_array($result) and ($counter < $max)) {

$mailer =& JFactory::getMailer(); 

$config =& JFactory::getConfig();
$sender = array( 
    $config->getValue( 'config.mailfrom' ),
    $config->getValue( 'config.fromname' ) );
 
$mailer->setSender($row[mail]);

$mailer->addRecipient($row[adresses]);

$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$body   = $row[message];
$mailer->setSubject($row[sujet]);
$mailer->setBody($body);

$send =& $mailer->Send();

$query = "DELETE FROM jooml_mailing";
            $result1 = mysql_query($query); 

$counter++;
}

?>

Re: Suppression de lignes

Posté : 08 sept. 2012, 09:21
par sirakawa
Chalut,

A mon humble avis d'amateur obscurci mais éclairci par les séquelles de la doc officielle et mes propres tests,
Il est normel que: "DELETE FROM jooml_mailing";
détruise tout, car il n'y a pas de condition
http://dev.mysql.com/doc/refman/5.0/fr/delete.html
Il faut donc trouver dans l'enregistrement à effacer ce qui le rend unique, sa clef primaire par exemple.

Re: Suppression de lignes

Posté : 09 sept. 2012, 19:21
par Aureusms
Il a raison : utilise la close "WHERE" dans ta requête sinon toute ta table est vidée.