Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    274

    MySQL: Where... AND... OR

    Salve, ho questa query:
    Codice PHP:
        $result    $DB->Query("SELECT id, name, description, filename, impressions_pack, impressions, clicks FROM banners WHERE (campaign='$b_campaign_impression' AND impressions_pack - impressions > 0) OR campaign='$b_campaign_click' OR campaign='$b_campaign_flat' ORDER BY RAND() LIMIT 1"); 
    attualmente con l'unico record presente nel database, nessuna delle condizione where deve essere soddisfatta.
    perchè l'unico record ha come campo campaign = $b_campaign_impression (cioè = 1) e ha quella differenza impressions_pack - impressions < 0

    il problema è che avendo messo quelle parentesi tonde nel where... non prende più i dati campaign impressions e impressions_pack...

    come posso risolvere?
    Progeny

  2. #2
    Se provi a fare così:

    $result = $DB->Query ("SELECT id, name, description, filename, impressions_pack, impressions,
    clicks
    FROM banners
    WHERE (((campaign='$b_campaign_impression') AND
    ((impressions_pack - impressions) > 0)) OR
    campaign='$b_campaign_click' OR
    campaign='$b_campaign_flat')
    ORDER BY RAND()
    LIMIT 1");


    cosa succede?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    274
    risolto, il problema era dovuto ad una conversione implicita che fa mysql... impressions e impressions_pack sono unsigned int... quindi una differenza tra unsigned int è sempre > 0
    ho risolto usando CAST()
    Progeny

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.