JeuWeb - Crée ton jeu par navigateur
Plusieurs insert dans une boucle - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Plusieurs insert dans une boucle (/showthread.php?tid=5875)



Plusieurs insert dans une boucle - tesco - 22-12-2011

Bonjour, j'ai un petit soucis en faite je souhaiterai envoyé un même message à plusieurs membres d'un même groupe le problème c'est que ça n’envoie le message qu'au premier membre, pouvez vous m'orienté vers une ou plusieurs pistes pour que je passe cet étape Smile ?

Citation :$query10 = $db->execute("select * from `joueur` where `groupe`='".$joueur->groupe."'");
while($groupe = $query10->fetchrow())
{
$mess = trim(stripslashes(nl2br(htmlspecialchars($_POST['message']))));
$mess = str_replace("rn","</br> ", $mess);

$insert['a'] = $groupe['id'];
$insert['de'] = $joueur->id;
$insert['mess'] = $mess;
$insert['sujet'] = "Message du groupe";
$insert['date'] = time();
$query = $db->autoexecute('message', $insert, 'INSERT');


echo "Envoi &agrave; ".$groupe['pseudo']." OK</br>";
}

Merci par avance d'avoir pris le temps de me lire.


RE: Plusieurs insert dans une boucle - Myrina - 22-12-2011

que fait exactement $query = $db->autoexecute('message', $insert, 'INSERT');?

Sinon, coté performance, les initialisations qui ne changent pas (tout sauf $insert['a'] = $groupe['id'];) devrait être effectuées avant la boucle.


RE: Plusieurs insert dans une boucle - php_addict - 22-12-2011

je vois execute(), est ce une classe faite maison ou bien tu utilises PDO ?

avec PDO:

$query   = "SELECT * FROM joueur WHERE groupe=:id";
$result = $db->prepare("$query");
$result->execute(array(':id' => $Ton_id_de_ton_groupe));
$donnees=$result->fetchAll(PDO::FETCH_ASSOC);
//
if(count($donnees)>=1)
{
foreach($donnees as $t)
{
//
// envoyer message...
//
}
unset($t);
}
unset($donnees);



RE: Plusieurs insert dans une boucle - atra27 - 22-12-2011

tu peut faire des batch insert (insert multiples par requetes):
Exemple avec codeigniter:

$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);

$this->db->insert_batch('mytable', $data);

// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')