Suppression de lignes

Boris
Invité n'ayant pas de compte PHPfrance

08 sept. 2012, 07:51

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++;
}

?>

Mammouth du PHP | 2278 Messages

08 sept. 2012, 09:21

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.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
ViPHP | 1996 Messages

09 sept. 2012, 19:21

Il a raison : utilise la close "WHERE" dans ta requête sinon toute ta table est vidée.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr