Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509

    [php/sql]un aiuto per ottimizzare ste query

    ciao a tutti..scusate la rottura ma vorrei chiedevi un consiglio per una cosa.

    ho 2 tabelle slegate tra loro
    in una ci sono i dati generici che inserisco tramite form.
    in un altra dove ci sono 800 città.

    avevo fatto una query:
    Codice PHP:
    SELECT DISTINCT(titolo),cat_id,pos,paes_region.nome 
    FROM 
    `cataloghi`,`paes_region
    WHERE paes_region.nome  LIKE '%$input%' 
    il problema è che logicamente la risultante è

    prima riga della prima tabella + un risultato della seconda
    prima riga della prima tabella + un altro risultato della seconda tabella
    prima riga della prima tabella + un ulteriore risultato della seconda tabella
    seconda riga della prima tabella + un risultato della seconda
    seconda riga della prima tabella + un altro risultato della seconda tabella
    seconda riga della prima tabella + un ulteriore risultato della seconda tabella

    secondo problema è che gli id inseriti nella prima tabella sono diversi non uno
    quindi potrei trovarmi con 1;3;45;47

    per ovviare al problema soprastante avevo messo la condizione tabella1.paesi =paesi.id
    il problema è che non mi trova piu gli id o meglio li trova solo se cerco paesi che hanno il primo id (es, se roma è 1 allora me lo trova nell'esempio di prima se è 45 no)

    a questo punto mi vine da chiedere.... esiste una funzione che permette di dire
    valori campo1 LIKE %(valori campo2)% ?
    ovvero
    fare un controllo se il campo paesi.id è contenuto all'interno del campo cataloghi.paesi..
    esiste?

    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    piu o meno ho risolto..ma una domanda.

    se io dovessi cercare dei campi che rispondono a condizioni differenti?

    ad esempio

    una classica tabella
    id | nome | cognome
    ------------------------
    1 | sdad | asdad
    2 | |

    e volessi avere una query per cercare tutti quelli con gnome mario e tutti quelli con cognome rossi devo fare due query? una union? o cosa?

  3. #3
    select * from tabella where nome='bubu' && cognome ='77';

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    Originariamente inviato da bubu77
    select * from tabella where nome='bubu' && cognome ='77';
    per quello che ha scritto nexus non dovrebbe essere:
    codice:
    select * from tabella where nome='bubu' || cognome ='77';

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    no a dire il vero io vorrei una cosa del tipo

    SELECT * FROM tabella WHERE campo1 like %valore1% AND campo1 LIKE %valore2%

    il discorso è questo..
    voglio fare una ricerca tramite un campo text.
    ipotizziamo che cerco "ca"

    mi trova per esempio catania con id 4 e caltanisetta con id 32 (per esempio)

    bene io a questo punto dovrei cercare tutte le righe nel mio db che hanno o l'id 4 o l'id 32 o entrambe nella cella città

    id | nome | cognome | città | data | titolo |
    1 | mario | rossi | 4 | 12/10/06 | 3 |

    tenendo presente che anche titolo per limitare è su un altra tabella con degli id per titolo preimpostati.


    pensavo che mettendo una cosa del tipo

    SELECT * FROM tabella1,tabella2,tabella3 WHERE campo1 like 4 OR campo1 like 32 AND titolo=tabella3.valore


    mi desse un risultato sperato...invece mi crea un risultato che è la risutlante di tutti i valori moltiplicato per ogni possibile risultato di titolo.

    mario rossi catania 12/10/06 soldato
    mario rossi catania 12/10/06 esperto
    etcc...

    in pratica magari da due rrighe vengono fuori 200 pagine...
    un join da quel che ho capito è valido se le tabelle sono allineate tra loro diciamo che c'è un collegamento...purtroppo non c'è un vero e propio collegamento tra queste..insomma ho una gatta da pelare non da poco. o almeno per me

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.