devo usare un database mysql già fatto. ci sono delle categorie con il nome simile, a volte il plurare tipo fosse cappello cappelli , come potrei fare per eliminare i record simili e tenerne solo uno?
devo usare un database mysql già fatto. ci sono delle categorie con il nome simile, a volte il plurare tipo fosse cappello cappelli , come potrei fare per eliminare i record simili e tenerne solo uno?
Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
citando Adorno nell notti chiare / finché il primate stanco di ascoltare
lo strangolò con una sciarpa gialla Dillo Con Parole Sue
Definisci "simili" prima! In linea di massima potresti ciclare sui record facendo una select annidata per recuperare gli id degli altri record analoghi ed eliminarli, ma se sono troppi può essere un'operazione onerosa... quanti record sono?
Questo snippet di esempio dovrebbe esserti di aiuto:
Codice PHP:$src = array(
'this is my set of words',
'my set',
'this is',
);
$src_array = array();
foreach ($src as $val) {
$src_array[] = explode(' ', $val);
}
usort($src_array, function($a, $b) { return count($a) > count($b); });
foreach ($src_array as $key => $val) {
if ($key + 1 < count($src_array)) {
foreach ($val as $word_key => $word){
for ($i = $key + 1; $i <= count($src_array) - 1; $i++) {
if (in_array($word, $src_array[$i])) {
unset($src_array[$key][$word_key]);
}
}
}
}
}
$result = array_filter($src_array, function($i) { return count($i) > 0; });
$result = array_map(function($i) { return implode(' ', $i); }, $result);
$result = array_values($result);
var_dump($result);
Potresti anche usare SOUNDS LIKE nella tua query (qui un esempio: http://www.w3resource.com/mysql/stri...e-function.php)... anche se trattandosi di categorie (magari non sono nemmeno tantissime) forse ti conviene modificarle/eliminarle a mano.
"Dai diamanti non nasce niente, dal letame nascon fiori."
Fabrizio De Andrè
Non c'avevo pensato a dire il vero, più che altro non so se può funzionare.
Sarebbe da tentare, utilizzare SOUND LIKE per recuperare i gruppi e poi darli in pasto allo snippet. Purtroppo SOUND LIKE è basato sulla nostra fonetica e non sulla vostra quindi potrebbe restituire valori errati.
Un tentativo è da fare comunque.
Facendo delle prove con soundex() (che dovrebbe essere equivalente a sounds like) sembrerebbe funzionare
Codice PHP:$x[] = soundex('cappello') == soundex('cappelli');
$x[] = soundex('barche') == soundex('barca');
$x[] = soundex('supercalifragilistichespiralidoso') == soundex('supercalifragilistiBAUBAU');
var_dump($x);
"Dai diamanti non nasce niente, dal letame nascon fiori."
Fabrizio De Andrè
torno a chiedere al post originale: cosa intendi con "simile"?
intendo che essendo fatto male questo database c'è per esempio la categoria banana e la categoria banane invece che un unica categoria, ringrazio tutti ma siccome è molto incasinato questo database lo lascio così com'è.Originariamente inviato da eiyen
torno a chiedere al post originale: cosa intendi con "simile"?
cmq è il database di ricette gratuito che usano un sacco di siti, ci sono circa 27mila record.
Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
citando Adorno nell notti chiare / finché il primate stanco di ascoltare
lo strangolò con una sciarpa gialla Dillo Con Parole Sue
cmq tanto per farmi capire, perchè ieri avevo chiesto aiuto ma poi sono dovuta sparire, questo database ha un'unica tabella :/ ..ricette, un campo di questa tabella è ingrediente principale, però facendo una lista degli ingredienti principali capita questo per esempio:
Acciughe
Acciughe Fresche
Acciughe Freschissime
Acciughe Piccanti
Acciughe Salate
Acciughe Sotto Sale
Acciughette
Acciughine![]()
ora ancora suddividere acciughe salate e acciughe fresce, ma acciughine acciughette ecc ..pensavo di riuscire a trovare un sistema per cambiare per esempio tutta questa lista in acciughe, però è un casino perché anche explodendo gli ingredienti e prendendo la prima parola in questo caso si potrebbe fare ma nel caso carne di.. ecc non serve quindi alla fine mi sa che lascio tutto così
Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
citando Adorno nell notti chiare / finché il primate stanco di ascoltare
lo strangolò con una sciarpa gialla Dillo Con Parole Sue
secondo me hai troppe varianti per gestire un automatismo totale... potresti impostare un sistema "manuale" che usi delle "affinità", per cui tu (o anche gli utenti se vuoi) possono "associare" un ingrediente con altri presenti nel db all'atto dell'interrogazione... p.es. (potresti avere solo tu questa possibilità, se vuoi) quando mostri una ricetta ti vengono presentati gli ingredienti "probabilmente" affini a quelli memorizzati (p.es. usando similar_text) e manualmente decidi se abbinarli o no in quel momento