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

    where non considera una condizione

    Salve, ho scritto questa query SQL:

    $result = $DB->Query("SELECT id, name, description, filename, html, impressions_pack, impressions, clicks FROM banners WHERE enabled='1' AND (campaign='$b_campaign_impression' AND CAST(impressions_pack - impressions AS signed) > 0) OR campaign='$b_campaign_click' OR campaign='$b_campaign_flat' ORDER BY RAND() LIMIT 1");
    funziona, però è come se non considerasse la condizione enabled='1', nel DB ho tutti enabled impostati su 0.. quindi non dovrebbe restituire nulla... invece non è così... agisce come se non ci fosse quella condizione... idee?
    Progeny

  2. #2
    perchè hai fatto casino con le parentesi...
    ne hai dimenticata una..

    prova con questa, dovrebbe andare meglio, pur non sapendo cosa devi estrarre, comunque provala

    $result = $DB->Query("SELECT id, name, description, filename, html, impressions_pack, impressions, clicks FROM banners WHERE enabled='1' AND ((campaign='$b_campaign_impression' AND CAST(impressions_pack - impressions AS signed) > 0) OR campaign='$b_campaign_click' OR campaign='$b_campaign_flat') ORDER BY RAND() LIMIT 1");
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    codice:
    SELECT  id, 
                name, 
                description, 
                filename, 
                html, 
                impressions_pack, 
                impressions, 
                clicks 
    FROM    banners 
    WHERE  enabled='1' 
    AND      (campaign='$b_campaign_impression' 
               OR campaign='$b_campaign_click' 
               OR campaign='$b_campaign_flat') 
    AND     CAST(impressions_pack - impressions AS signed) > 0  ORDER BY RAND() LIMIT 1
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    @dottwatson:

    così lavora diversamente da come l'ha impostata Progeny...

    campaign='$b_campaign_impression'
    e
    CAST(impressions_pack - impressions AS signed) > 0

    devono essere vere assieme, per questo ha messo la parentesi...
    Ha solo dimenticato la parentesi per gli OR dopo...
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    274
    Originariamente inviato da djhell
    @dottwatson:

    così lavora diversamente da come l'ha impostata Progeny...

    campaign='$b_campaign_impression'
    e
    CAST(impressions_pack - impressions AS signed) > 0

    devono essere vere assieme, per questo ha messo la parentesi...
    Ha solo dimenticato la parentesi per gli OR dopo...
    confermo quanto hai appena detto, devono lavorare insieme quelle condizioni.
    comunque la tua query mi da lo stesso problema della mia
    Progeny

  6. #6
    allora mi verrebbe da pensare che enabled sia una variabile usata da mysql... prova a cambiarle nome e metti attiva.
    Oppure metti
    where banners.enables = 1
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  7. #7
    ma se enabled è un valore numerico perchè l'uno lo metti tra virgolette?
    enabled = '1'

    prova
    enabled = 1

  8. #8
    Originariamente inviato da Roby.zip
    ma se enabled è un valore numerico perchè l'uno lo metti tra virgolette?
    enabled = '1'

    prova
    enabled = 1
    Non dovrebbe cambiare nulla... io nelle query metto sempre gli apici, numeri o no...
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

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