Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [SQL] Problema con like

    Buon giorno, vado al punto.
    Ho un campo ed il contenuto è questa stringa "Borgo del Medioevo".
    In un'altra tabella ho un'altro campo ed il contenuto è "Medioevo".

    In base ad una ricerca che faccio tramite una select option, devo estrapolare tutti quei record che hanno tra i loro valori anche "Medioevo".
    codice:
    <select name='ricercaBorgo'>
    <option='Borgo del medioevo'>Borgo del medioevo</option>
    <option='Borgo del mirtillo'>Borgo del mirtillo</option>
    ....
    </select>
    
    //In base a questa select option compongo la query:
    
    select * from TB_Borghi where borgo like '%ricercaBorgo%' order by....
    non capisco come mai, se eseguo questa query non mi estrapola nulla.
    Nel senso, non dovrebbe con like, estrapolarmi tutti quei record, che hanno nel campo "borgo", i valori compresi nella like?

    Spero di essermi spiegato.
    Grazie...

  2. #2
    beh se il contenuto di ricercaBorgo è 'Borgo nel medioevo' è giusto che non ti estrapoli i record che contengono solo 'Medioevo' non capisco il problema.

    Cioè, la tua query risulterebbe così:

    codice:
    select * from TB_Borghi where borgo like '%Borgo del medioevo%' order by...
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    grazie per avermi risposto.Quindi cosa dovrei fare per ovviare a questo problema?
    Cioè nei campi dove è contenuto "Medioevo" potrei trovare anche "Borgo del medioevo".
    Quindi, la query che dovrei eseguire per estrapolare i record che comprendono sia "Medioevo" che "Borgo del medioevo",quale sarebbe?

    Grazie ancora...

  4. #4
    dunque, se tu hai una queri del genere:
    SELECT * FROM tabella WHERE campo LIKE '%medioevo%' lui ti estrapola TUTTI i campi che al loro interno contengono la parola 'medioevo' che pèuò stare benissimo all'inizio, alla fine o in mezzo ad una qualsiasi frase; tipo se hai un record che contiene 'Sono andato a fare un giro nel medioevo con il caro professor Dokk' ( :ritornoalfuturo: ) lui te lo estrapola, in quanto hai la parola medioevo all'interno del record. Se invece hai una query come quella sopra dove il valore lo vai a prendere da una combo e contiene Borgo nel medioevo ti estrarrà SOLO i record che al loro interno contengono quella frase.

    Detto questo, puoi usare la query che vuoi, dipende dalle tue esigenze. Se vuoi trovare tutti i record che contengono 'medioevo' devi usare la prima, altrimenti se vuoi che contengano la frase usa la seconda.




    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    qual'è la prima query che devo utilizzare?questa?
    codice:
    select * from TB_Borghi where borgo like '%ricercaBorgo%' order by...
    o quale?

  6. #6
    allora, non avevo visto un paio di errori nel tuo primo post, perché non ho molto tempo e ho letto un po' di fretta e me ne scuso.


    nelle tue option, manca l'attributo value ( che è fondamentale ) e la query deve essere:
    select * from TB_Borghi where borgo like '%$ricercaBorgo%' order by....



    mancava il $, perché come l'avevi scritta tu andava a cercare i record contenenti la parola riceraBorgo, e non il contenuto della variabile $riercaBorgo...


    solo una domanda, ma la tua combo come la popoli? valori da db o la riempi a mano?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    i valori li estrapolo dal db cosi:

    codice:
    <?
    $sqlborgo = "select distinct(borgo) from TB_Borghi order by borgo";
    $Rsborgo = cExeQuery($sqlborgo, $Connessione);
    ?>
    
    <select name='txtborgo' onChange="frmpaginazione.submit();" class="INPUT">
    
    <?
    if ($MyError == "") {
    	echo "<option value=\"\"></option>";
    	while ($riga = cFetch($Rsborgo)) {
    		$borgo = $riga['borgo'];
    		echo "<option value=\"$borgo\">$borgo</option>";
    										}
    }
    else{
    ?>
    <option value=''>Quartiere</option>
    <? } ?>
    </select>

  8. #8
    quindi, quale query mi consigli?Non so più quale utilizzare... altrimenti devo muovermi in un'altra direzione...

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.