Visualizzazione dei risultati da 1 a 6 su 6

Discussione: ricerca con le regexp

  1. #1
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543

    ricerca con le regexp

    ciao, è da molto tempo che nn uso regexp quindi mi ricordo molto poco....
    il problema che mi trovo ad affrontare è la ricerca nel db di una stringa...
    nel mio form verifico che, se la stringa inizia e finisce con ", devo cercare l'intera stringa contenuta tra i doppi apici ma c'è un problemino...non posso sapere come l'utente abbia salvato la stringa. Ammettiamo che ci siano due record:
    -------------
    RECORD1:
    stringa da cercare
    RECORD2:
    stringa




    da


    cercare
    -------------
    come faccio a ritrovare sia il record uno (la stringa è su un'unica linea) sia il secondo dove la stringa è spezzata su più linee?
    SELECT * FROM note AS n WHERE n.dettaglio REGEXP '".$pattern."' "
    i devo mettere in $pattern?????????????
    grazie!

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  2. #2
    forse non ho capito bene il problema, ma perché non usi LIKE'%......%'
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    se uso
    LIKE '%stringa da cercare%' mi trova sia i record dove stringa da cercare è su un'unica linea che se è su più linee?
    il valore del campo dettaglio è preso da una textarea e quindi se un utente spezza la stringa su più linee nel db viene salvato come
    stringa



    da



    cercare
    e io vorrei che mi trovasse anche quel record oltre al record tutto su una riga
    stringa da cercare

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  4. #4
    Originariamente inviato da oronze
    se uso
    LIKE '%stringa da cercare%' mi trova sia i record dove stringa da cercare è su un'unica linea che se è su più linee?
    si, con questa sintassi significa: "il record deve contenere 'stringa da cercare'".
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  5. #5
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    no
    mi trova solo
    "stringa da cercare"
    mentre dovrebbe anche trovarmi
    "stringa






    da


    cercare"
    perciò volevo usare la regexp...solo che non so come dire questo...
    "stringa(qui_possono_andare_spazi_o_new_line)da(qu i_possono_andare_spazi_o_new_line)cercare"

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  6. #6
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    ce l'ho fatta...ho scoperto che newline mysql li interpreta come spazi...quindi ho fatto questo codice; posto una parte così se qualche utente avrà lo stesso problema saprà come risolvere...
    dopo aver verificato che $strk inizia e finisce con " faccio eseguire questo codice per crearmi il pattern
    Codice PHP:
    $words explode(" "$strk);
    $pattern "";
    for(
    $w=0$w<count($words); $w++){
        if(
    $w==count($words)-1$pattern .= $words[$w];
        else 
    $pattern .= $words[$w]."[[:space:]]+";


    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

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.