Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    eliminare record con testo simile

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    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?

  3. #3
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    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 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); 

  4. #4
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    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è

  5. #5
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    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.

  6. #6
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    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è

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    torno a chiedere al post originale: cosa intendi con "simile"?

  8. #8
    Originariamente inviato da eiyen
    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'è.
    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

  9. #9
    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

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.