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

    [AVANZATA] Select di estrazione su array con Where solo se elemento array >0

    codice:
    "SELECT * FROM prodotti WHERE Marchio = '" . $MarchioX . "' AND idprodotto IN (".implode(',',$array_idprodottoX).") "
    La select citata funziona ma quando un valore dell'array $array_idprodottoX è uguale a 0 vorrei che valesse solo "SELECT * FROM prodotti WHERE Marchio = '" . $MarchioX . "' "

    In pratica dovrei fare una cosa del genere:

    codice:
    "SELECT * FROM prodotti WHERE Marchio = '" . $MarchioX . "' AND
    
    IF idprodotto > 0 THEN
    
     idprodotto IN (".implode(',',$array_idprodottoX).") "

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Controla la condizione prima di eseguire la query e con un if/else decidi come eseguirla, del tipo:

    Codice PHP:
    if ( in_array(0$array_idprodottoX) )
    {
         
    // esegui la query con solo la prima parte
    }
    else
    {
        
    // esegui la query con la parte AND


  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Oppure:
    Codice PHP:
    $query "SELECT * FROM prodotti WHERE Marchio = '" $MarchioX "'";

    if ( ! 
    in_array(0$array_idprodottoX) )
    {
         
    $query .= "  AND idprodotto IN (".implode(',',$array_idprodottoX).") ";
    }

    // qui esegui la query 

  4. #4
    Però poi se nell'array ci fosse ad esempio:

    5,0,50

    i valori 5 e 50 non sarebbero processati perché nell'array è contenuto un valore 0?

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Esatto, non è quello che vuoi?

    In caso contrario, prima manipola l'array facendo l'unset delle entry che contengono zeri, così, se non si svuota, restano solo valori validi.

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.