lundi 24 juillet 2017

Using the SELECT operator 'AND' only if a variable is set

What is the correct/efficient way to display results based on a variable if the variable is set? If variable is not set, the AND operator should not be used.

I apologize if this is a repeat, I clicked the suggested links and they did not make sense to me.

Near the end of code is my note with ^^^^^ marked.

For example:

$whatever = 123;

SELECT  
DISTINCT terms.name as product_type_name,
tax.term_id as termidouter

FROM        $wpdb->posts AS p

INNER JOIN wp_term_relationships r
ON p.ID = r.object_id

INNER JOIN wp_term_taxonomy tax
ON r.term_taxonomy_id = tax.term_taxonomy_id

INNER JOIN wp_terms terms
ON tax.term_id = terms.term_id

WHERE
tax.taxonomy = 'product_type'

AND         p.post_status = 'publish'
AND         p.post_type = 'product'
AND         '$whatever ' = terms.term_id
^^^^ If $whatever is empty, I want to return results as if this line did not exist.

ORDER BY product_type_name
");

I was going to do an IF/ELSE but I figured that was the lazy way.

$whatever = 123;

if (empty($whatever)) {
    // SELECT without the AND
} else {
    // SELECT with the AND
}

Aucun commentaire:

Enregistrer un commentaire