Je travaille sur une base de données de dictionnaire avec 4 tables conçu commemysql jointure gauche répéter les lignes
words
wordid | lemma
senses
wordid | synsetid
synsets
synsetid | definition
samples
synsetid | sample
J'utiliser une question ci-dessous pour obtenir toutes les définitions et les échantillons
if(isset($searchterm)){
echo "<b>".$searchterm."</b><hr>";
// QUERY TO FIND SENSES
$senses_query="SELECT
words.lemma,words.wordid,
senses.wordid,senses.synsetid,
synsets.synsetid, synsets.definition,
samples.synsetid, samples.sample
FROM
words
LEFT JOIN
senses ON words.wordid=senses.wordid
LEFT JOIN
synsets ON senses.synsetid=synsets.synsetid
LEFT JOIN
samples ON senses.synsetid=samples.synsetid
WHERE
words.lemma REGEXP '^$searchterm$'";
$senses_query_result = mysql_query($senses_query) OR die("sense alamadım.<br>".mysql_error());
$num=mysql_num_rows($senses_query_result);
while($sensesFound = mysql_fetch_array($senses_query_result)){
echo " " . $sensesFound['lemma'] . "";
echo " " . $sensesFound['definition'] . "";
echo " " . $sensesFound['sample'] . "";
echo "<br>";
}
}
sens Le problème est : s'il y a plus d'un échantillon d'une définition, il répète comme ceci.
definition 1 sample 1
definition 1 sample 2
definition 2 sample 1
definition 2 sample 2
definition 2 sample 3
e.t.c
J'aime avoir des lignes comme
definition 1 sample 1 sample 2
definition 2 sample 1 sample 2 sample 2
J'ai essayé group_concat sur select mais il concats tous les échantillons de toutes les définitions en simple.
Est-ce possible avec mysql query ou dois-je utiliser php pour gérer ce genre de travail.
Merci à l'avance
Pourquoi utilisez-vous des expressions régulières et non 'LIKE'? –