Pour les immenses table (plusieurs millions d'enregistrements) cette solution est la mieux (+ rapide, - bloquante pour le SGBD)
Mais, généralement, il vaut mieux laisser au SGBD faire le travail de jointure, il est optimisé pour
function insert_category($catname)
//insertion d'une nouvelle catégorie
{
include ("connexion.php");
// Vérification que les catégories n'existe pa déjà
$query = "select *
from categories
where catname='$catname'";
$result = mysql_query($query);
if (!$result || mysql_num_rows($result)!=0)
return false;
// insert new category
$query = "insert into categories values
('', '$catname')";
$result = mysql_query($query);
if (!$result)
return false;
else
return true;
}
Le travail est essentiellement fait sur les index, et coder entièrement en fonction.