Chti coup de main pour optimiser ajouts mysql ...

  • Auteur de la discussion Auteur de la discussion Zecat
  • Date de début Date de début
WRInaute accro
Bon je suis plus tout a fait phpRank1 mais par contre au niveau de mysql j'ai pas encore fait l'effort d'aller au dela du basique ... et dans certaines situations, ca penalise.

j'ai ce cas :

- 1 tableau avec des mots (disons entre 5 et 100 eléments)
- je dois créer une fiche (juste 2 champs) par mot dans la table 'liaisons'

Actuellement je le fais rustique ainsi (ca marche mais je pressens que c'est rustique) :

Code:
<?php

$sql_base_table='liaisons';
$sql_base_champ='cle_fiche';
$sql_type_cle="123456";

$tabmots=array();
$tabmots=explode(",", $mots);
foreach ($tabmots as $sql_mot_nettoye)
{
	mysql_query("insert into ".$sql_base_table." (cle_fiche, mot_nettoye) values('$sql_type_cle', '$sql_mot_nettoye')") or die("Ajout liaison impossible");
	$nb_requetes++;
}

?>


Soit autant d'insert que de lignes dans le tableau :roll: N'y a t il pas une syntaxe mysql qui permette de traiter cela en "array processing" en une seule ligne sans faire un foreach ?
 
WRInaute accro
Quand tu fait un export au format SQL du contenu d'une table dans phpmyadmin tu as une syntaxe qui permet des insert multiples en une ligne mais ça t'évitera pas d'itérer sur tes mots pour la composer (seul avantage tu en enverra qu'une)
 
WRInaute accro
zeb a dit:
seul avantage tu en enverra qu'une)
C'est bien ce que je recherche ... pas grave si je dois boucler pour fabriquer une requete ... l important est qu'il n'y ait pas le insert dans la boucle ...

C'ets quoi la syntaxte de la ligne a fabriquer ?
 
WRInaute accro
INSERT INTO `table` (`champ1`, `champ2`) VALUES
('a', 'b'),
('a', 'b'),
('a', 'b'),
('a', 'b');
 
Discussions similaires
Haut