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

    query mysql espressioni regolari?

    http://www.altavista.com/web/results...ao&kgs=1&kls=0

    mettiamo caso che ho quest'url, da cui devo prendere il testo 'ciao' cioè il valore di 'q=' però in un altro record se ho per es:

    http://www.altavista.com/web/pagina?q=ciao2

    questo ciao2 non lo devo prendere..

    come si fa ?


  2. #2
    Non capisco cosa l'oggetto del thread, e in particolare mysql.
    Se vuoi usare php puoi fare così:
    codice:
    $url = "http://www.altavista.com/web/results?itag=wrx&q=ciao&kgs=1&kls=0";
    $url = strstr($url, '?');
    $url = substr($url, 1);
    $output = explode('&', $url);
    $i = 0;
    while ($i < count($output)) {
        $b = split('=', $output[$i]);
    	if (htmlspecialchars(urldecode($b[0])) =='q' && htmlspecialchars(urldecode($b[1])) == 'ciao'){
    		print "trovato";
    		break;
    	}
        $i++;
    }

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372

    Re: query mysql espressioni regolari?

    Originariamente inviato da xnavigator
    http://www.altavista.com/web/results...ao&kgs=1&kls=0

    mettiamo caso che ho quest'url, da cui devo prendere il testo 'ciao' cioè il valore di 'q=' però in un altro record se ho per es:

    http://www.altavista.com/web/pagina?q=ciao2

    questo ciao2 non lo devo prendere..

    come si fa ?

    E xche non lo devi prendere ? qual'è la regola ?

  4. #4
    @alcatraz:
    non mi serve con le strighe (troppo facile).. mi serve che da un campo (di una tabella di un database mysql ) mi venga ritornato quel valore (o più valori se ce ne sono più url come quello)

    @badaze:
    la regola è che all'inzio ci deve essere:
    http://www.altavista.com/web/results? e dopo ci deve essere il parametro q= di cui mi serve il valore..


    capito?

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da xnavigator
    @alcatraz:
    non mi serve con le strighe (troppo facile).. mi serve che da un campo (di una tabella di un database mysql ) mi venga ritornato quel valore (o più valori se ce ne sono più url come quello)

    @badaze:
    la regola è che all'inzio ci deve essere:
    http://www.altavista.com/web/results? e dopo ci deve essere il parametro q= di cui mi serve il valore..


    capito?
    ma xche la prima volta prendi il valore di q e non la seconda ?

  6. #6
    Originariamente inviato da badaze
    ma xche la prima volta prendi il valore di q e non la seconda ?

    perchè c'è '/pagina?' al posto di 'result?'

    capito?

  7. #7
    Sono proprio fuori come una befana stasera.
    Questa è una query fatta velocemente, sicuramente migliorabile:
    codice:
    SELECT * FROM tabella WHERE
    url REGEXP 'q=ciao' AND
    url NOT REGEXP 'q=ciao[^&]+'
    ciao

  8. #8
    Originariamente inviato da alcatraz69
    Sono proprio fuori come una befana stasera.
    Questa è una query fatta velocemente, sicuramente migliorabile:
    codice:
    SELECT * FROM tabella WHERE
    url REGEXP 'q=ciao' AND
    url NOT REGEXP 'q=ciao[^&]+'
    ciao

    ops.. ho dimenticato di dire: non mi serve proprio ciao.. ma il valore di q= (che ovviamente può essere qualunque carattere tranne il &..) quindi penso si faccia cosi

    codice:
    SELECT * FROM tabella WHERE
    url REGEXP 'q=[^&]+'
    anche se cosi poi mi ritorna (penso) il valore di tutto il campo url, (cioè tutto l'indirizzo) quando invece mi serve solo quel valore..

    cmq ora provo

  9. #9
    si la query funziona, il problema è come dicevo anche prima che mi viene restiuito tutto il campo ...

    come si può fare?

  10. #10
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    un pò complicata come query xò funziona:
    codice:
    SELECT SUBSTRING(campo,POSITION('&' IN campo)+3,LENGTH(SUBSTRING_INDEX(campo,'&',2))-POSITION('&' IN campo)-2) AS valore FROM tabella
    WHERE campo REGEXP '[\&]'
    i numeri un grassetto servono per prendere esattamente quello dopo &q=
    se invece ti serve anche quello cambiali con 0 e +1.

    think simple think ringo

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.