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

    Ricerca su più campi MySQL

    Salve,

    io ho questa query:
    Codice PHP:
    "SELECT * FROM $table as o, $table2 as c WHERE o.ID=c.componenti_ID AND produttore LIKE '%$text%' AND nome LIKE '%$text%'" 
    Quello che voglio fare è effettuare una ricerca dello stesso termine sui i due attributi (produttore , nome) per lo stesso testo.

    Cioè poniamo di avere questi campi:

    ID --> cpu1
    nome --> fx-6300
    produttore --> AMD

    Cercando "am" voglio che venga cercato "am" sia in produttore che nome .-.

  2. #2
    Mi rispondo da solo:

    così:
    Codice PHP:
    "SELECT * FROM $table as o, $table2 as c WHERE o.ID=c.componenti_ID AND (CONCAT(produttore, ' ', nome) LIKE '%$text%')" 

  3. #3
    perché far faticare il server con una concat?

    where col1=condiz1 AND (col2=condiz2 OR col3=condiz2)

    (che tra l'altro è portabile anche su altri db)


  4. #4
    Grazie,
    ne approfitto per chiederti un'altra cosa, non c'entra molto ma mi scoccia aprire una nuova discussione.

    Se io ho questo database:
    Codice PHP:

    CREATE TABLE 
    `componenti` (
        `
    IDVARCHAR(4NOT NULL,
        `
    annoINT(4NOT NULL,
        `
    produttoreVARCHAR(30NOT NULL,
        `
    nomeVARCHAR(40NOT NULL,
        
    PRIMARY KEY (`ID`)
    )
    COLLATE='utf8_unicode_ci'
    ENGINE=InnoDB;

    CREATE TABLE `cpu_tab` (
        `
    componenti_IDVARCHAR(4NOT NULL COLLATE 'utf8_unicode_ci',
        `
    socketVARCHAR(5NOT NULL COLLATE 'utf8_unicode_ci',
        `
    codenameVARCHAR(20NOT NULL COLLATE 'utf8_unicode_ci',
        `
    architetturaVARCHAR(3NOT NULL COLLATE 'utf8_unicode_ci',
        `
    clockINT(4UNSIGNED NOT NULL,
        `
    scoreINT(6NULL DEFAULT NULL,
        `
    corenumINT(2NOT NULL,
        `
    threadsnumINT(2NOT NULL,
        `
    l2cacheVARCHAR(50NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
        `
    l3cacheVARCHAR(50NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
        
    PRIMARY KEY (`componenti_ID`),
        
    CONSTRAINT `FKcpu_tabFOREIGN KEY (`componenti_ID`) REFERENCES `componenti` (`ID`) ON DELETE CASCADE
    )
    COLLATE='utf8_unicode_ci'
    ENGINE=InnoDB
    e voglio aggiungere una tabella di questo tipo
    Codice PHP:
    CREATE TABLE `psu_tab` (
        `
    componenti_IDVARCHAR(4NOT NULL COLLATE 'utf8_unicode_ci',
        `
    modulareBOOLEAN NOT NULL COLLATE 'utf8_unicode_ci',
        `
    moboconnectorsVARCHAR(30NOT NULL COLLATE 'utf8_unicode_ci',
        `
    cpuconnectorsVARCHAR(30NOT NULL COLLATE 'utf8_unicode_ci',
        `
    vgaconnectorsVARCHAR(30NOT NULL,
        `
    nsataINT(3NULL DEFAULT NULL,
        `
    nmolexINT(3NOT NULL,
        `
    wattaggioINT(4NOT NULL,
        `
    maxefficiencyVARCHAR(4NOT NULL COLLATE 'utf8_unicode_ci',
        `
    pluscertificationVARCHAR(10NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
        `
    twelveVoutVARCHAR(5NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
        
    PRIMARY KEY (`componenti_ID`),
        
    CONSTRAINT `FKcpu_tabFOREIGN KEY (`componenti_ID`) REFERENCES `componenti` (`ID`) ON DELETE CASCADE
    )
    COLLATE='utf8_unicode_ci'
    ENGINE=InnoDB
    Non funziona probabilmente per il campo componenti_ID uguale alla tabella precedente.

    Adesso cambiare il nome, non mi costa nulla se non fosse che non so come fare per la query
    che è questa:
    Codice PHP:
    "SELECT * FROM $table as o, $table2 as c WHERE o.ID=c.componenti_ID AND (produttore LIKE '%$text%' OR nome LIKE '%$text%' )" 
    come puoi vedere si basa su un join su due campi di cui do per scontato di conoscere, quindi io speravo di riuscire ad usare questa query per tutte le tabelle se no mi ritrovo a gestire un macello di if(non saprei come farlo diversamente) e una query per ogni tabella.

    Consigli?

    EDIT: ho fatto un'emerita ca****
    ho scritto `FKcpu_tab` anche sulla seconda tabella invece di FKpsu_tab .-.

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.