Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234

    Ricerca in più campi db

    Ciao a tutti, ho un problema su una query e nello specifico in questa condizione di WHERE

    Codice PHP:
    WHERE onl "s" AND idpr <> (?) AND datap < (?) AND generi.idgn prodotti.genp and etichette.idet prodotti.eticp and prodtype.idpt prodotti.tipop and artisti.idar prodotti.artp AND (prodotti.titp or prodotti.sottp or artisti.nomear or etichette.nomee or prodtype.descpt LIKE CONCAT("%", ?, "%")) 
    qua la query completa
    Codice PHP:
    if (isset($key)) { 
    //echo "idd:$last_idd / data:$last_data / chiave:$key
    ";
    $stmt = $con->prepare( 'SELECT idpr,titp,sottp,eticp,supp,tipop,genp,idcat,datap,imgcop2,imgcop,shop,nomee,artp,artp2,artp3,artp4,artp5,divarp1,divarp2,divarp3,divarp4,tipoc,nomear,descge,descpt,digicd1,digicd2,digicd3,digicd4,digicd5,digicd6,digicd7,digicd8,digicd9,digicd10,digilk1,digilk2,digilk3,digilk4,digilk5,digilk6,digilk7,digilk8,digilk9,digilk10 FROM prodotti,generi,etichette,prodtype,artisti
    WHERE onl = "
    s" AND idpr <> (?) AND datap < (?) AND generi.idgn = prodotti.genp and etichette.idet = prodotti.eticp and prodtype.idpt = prodotti.tipop and artisti.idar = prodotti.artp AND (prodotti.titp or prodotti.sottp or artisti.nomear or etichette.nomee or prodtype.descpt LIKE CONCAT("%", ?, "%"))
    ORDER BY datap DESC, idpr DESC LIMIT 0, 20' );
    $stmt->bind_param('iss', $last_idd$last_data$key);
    $stmt->execute();
    $stmt->store_result();
    $num_of_rows_k = $stmt->num_rows;

    sembra avere problemi dove gli dico che la variabile $key deve cercarla in più campi..
    Codice PHP:
    AND (prodotti.titp or prodotti.sottp or artisti.nomear or etichette.nomee or prodtype.descpt LIKE CONCAT("%", ?, "%")) 
    sembra invece funzionare se ne controllo uno alla volta..
    Codice PHP:
    AND (artisti.nomear LIKE CONCAT("%", ?, "%")) 
    o
    Codice PHP:
    AND (prodotti.titp LIKE CONCAT("%", ?, "%")) 
    molto probabilmente sto sbagliando a scrivere la condizione..
    scusate se non mi sono spiegato bene..spero possiate aiutarmi.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    proverei facendo un or per ogni campo ...

    codice:
    (tbl1.campo1 LIKE CONCAT("%", ?, "%") OR tbl2.campo2 LIKE CONCAT("%", ?, "%") ... OR ... OR tblN.campoN LIKE CONCAT("%", ?, "%")

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Ciao Fichico,
    purtroppo avevo già provato ma così facendo mi da errore
    mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of variables doesn't match number of parameters in prepared statement

  4. #4
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    stampa la query e verifica l'errore ... parla di parametri e variabili ...
    milgiorerei anche la query con delle join

    posta una stampa dell'sql generata

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 © 2024 vBulletin Solutions, Inc. All rights reserved.