Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Query utilizzando like

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627

    Query utilizzando like

    Ho un problema con questa query:

    Codice PHP:
    $query "SELECT * FROM  tabella  WHERE campo1 LIKE '%".$valore."%' OR campo2 LIKE '%".$valore."%' OR campo3 LIKE '%".$valore."%' OR campo1LIKE '%".$valore."%' AND published = 1 AND lng != '' ORDER BY campo1 ASC" 
    praticamente sembra che a volte non rispetti la condizione di published = 1 AND lng != ''

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    In che senso non rispetta le condizioni? Da errore?
    Qui OR campo1LIKE '%".$valore."%' oltre ad essere ripetuto (campo1 lo verifichi già) manca uno spazio tra campo e like
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    1,627
    si scusa ho sbagliato a scrivere, era campo4 e non campo1 e con lo spazio

    la query da esito positivo in quanto preleva e visualizza i dati dal db in maniera corretta, il problema stà che non rispetta la condizione di published = 1 mi preleva anche campi con published = 0 oltre a non considerare la condizione lng != ' '

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    prova a mettere gli OR dentro parentesi...mi pare che AND abbia priorità maggiore:

    (campo1 LIKE '%".$valore."%' OR ... OR campo4 LIKE '%".$valore."%') AND published = 1 AND lng != '' ORDER BY campo1 ASC"
    Ultima modifica di boots; 14-04-2014 a 09:33

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da james81 Visualizza il messaggio
    Ho un problema con questa query:

    Codice PHP:
    $query "SELECT * FROM  tabella  WHERE campo1 LIKE '%".$valore."%' OR campo2 LIKE '%".$valore."%' OR campo3 LIKE '%".$valore."%' OR campo1LIKE '%".$valore."%' AND published = 1 AND lng != '' ORDER BY campo1 ASC" 
    praticamente sembra che a volte non rispetti la condizione di published = 1 AND lng != ''
    Problemi di questo tipo sono argomento da Database.
    Il fatto che ci siano delle variabili nella query non lo fanno diventare un problema di PHP, al loro posto potresti anche scrivere per esteso i loro valori, tanto più che dici che il comportamento anomalo sembra essere generato in un punto dove le variabili neanche ci sono.

    Prova a stampare a video la query con un echo, così vedi se è generata in modo errato ed eseguila a mano su phpmyadmin.

    Ti sposto in Database.

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.