Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Ricerca con mysql

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    170

    Ricerca con mysql

    Salve a tutti,
    ho precedentemente fatto un oist per questo problema ma mi sono reso conto di essere stato poco chiaro spero di essere un po piu comprensibile in quest!!:-)

    io ho un db mysql con degli articoli
    l'utente tramite una text box inserisce l'articolo che vuole cercare
    ipotiziamo che scriva "cartuccie per stampanti"
    devo ricercare nei miei articoli tutti quelli articoli che si avvicinano alla parola ricercata

    al momento tramite una query gli dico di cercare tutti gli articoli che contengo la parola "cartuccie" insieme alla parola "per" e insieme alla parola "stampanti" con una query del tipo:

    where prodotto like "%cartuccie%" prodotto like "%per%"prodotto like "%stampanti%"
    adesso la mia domanda e questa

    esiste una sintassi piu contratta per la query sopra?se inserisco tante parole mi viene lunghissima

    se nella descrizione prodotto ci sono solo due delle parole cercate e non tre il prodotto non viene estrapolato dal db ,come posso ovviare a questo problema?

  2. #2
    mah io penso che potrsti afre qualcosa tipo:

    Codice PHP:
    // ricerca inserita nel textbox
    $parole $_POST['parole'];
    // divide la stringa in elementi di array
    $array explode(' '$parole);
    $query "SELECT * FROM prodotti WHERE";
    // conta quante parole ci sono nell'array
    for ($i=0$i<count($array); $i++) {
      if (
    strlen($array[$i]>4)
        
    $query .= " prodotto LIKE '".substr($array[$i], 4)."%'"// se la lunghezza di array[$i] è > 4 preleva i primi 4 caratteri
      
    else
        
    $query .= " prodotto LIKE '".substr($array[$i], 3)."%'"// se la lunghezza di array[$i] è > 4 preleva i primi 3 caratteri
      
    $query .= " AND";
    }
    // toglie gli ulitmi 4 caratteri (<spazio>AND)
    $query substr($querystrlen($query)-4);
    //esegui la query 

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    170
    per cosi cerca sono tutti glia rtcoli che contengono tutte le parole assiemegiusto?
    ma se ne contiene solo due ?come posso fare

  4. #4
    no, questo script conta qante parole ci sono nella ricerca (separati da spazi) e crea una SELECT contentente un LIKE per tutte le parole inserite

  5. #5

    Re: Ricerca con mysql

    Originariamente inviato da nixxo85
    where prodotto like "%cartuccie%" prodotto like "%per%"prodotto like "%stampanti%"
    adesso la mia domanda e questa

    esiste una sintassi piu contratta per la query sopra?se inserisco tante parole mi viene lunghissima

    se nella descrizione prodotto ci sono solo due delle parole cercate e non tre il prodotto non viene estrapolato dal db ,come posso ovviare a questo problema?
    Normale "OR":
    codice:
    WHERE prodotto LIKE "%cartuccie%" OR prodotto LIKE "%per%" OR prodotto LIKE ...

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    170
    mi sembra di avere letto su un post una sintassi del genre

    where prodotto=(cartucce,per,stampante)
    e possibile?esiste?cos'e?

  7. #7
    Originariamente inviato da nixxo85
    mi sembra di avere letto su un post una sintassi del genre

    where prodotto=(cartucce,per,stampante)
    e possibile?esiste?cos'e?
    Di certo non è sql standard.

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.