如何解决使用某些if
我在欠建设的Web应用程序中拥有这部分代码,有6个输入var($ startDateEmissF,$ endDateEmissFinto,$ startDateScadF,$ endDateScadFquery,$ startDateEsecF,$ endDateEsecF ...它们都是字符串),但它们已使用仅在某些条件下。在这种情况下,bind_param具有不同的参数(取决于条件是true还是false),哪种方法是用mysqli生成预准备语句的更好方法?
谢谢
$sql = "SELECT
tblDocAdd.id_doc_add AS idDocAdd,tblAz.ragSoc_azienda AS ragSoc,tblScadAdd.id_scad_add AS idScadAdd,tblAz.soprannome_azienda AS soprannomeAzienda,tblCatDoc.categoriaDoc AS categoriaDoc,tblMod1.nomeModalita AS nomeModalitaDoc,tblDocAdd.nr_doc_add AS nrDoc,tblDocAdd.descrizione_doc AS descrDocAdd,tblScadAdd.importo_scad_add AS importoScadAdd,tblScadAdd.importo_comp AS importoComp,tblMod2.nomeModalita AS nomeModalitaScad,tblScadAdd.data_scad_add AS dataScadAdd,tblScadAdd.data_esecuzione AS dataEsecAdd,tblScadAdd.note AS noteScadAdd,tblConto.contoCorrente AS contoAdd,tblDocAdd.data_emissione AS dataEmisDoc,tblTipoAdd.tipologiaAddebito AS tipoAdd,tblDocAdd.doc_approvato AS docApprovato
FROM $tabellaScadAdd AS tblScadAdd
INNER JOIN $tabellaDocAdd AS tblDocAdd ON tblScadAdd.id_doc_add = tblDocAdd.id_doc_add
INNER JOIN $tabellaAziende AS tblAz ON tblDocAdd.id_azienda = tblAz.id
INNER JOIN $tabellaCatDoc AS tblCatDoc ON tblDocAdd.id_categoria = tblCatDoc.id_categoriaDoc
INNER JOIN $tabellaModalita AS tblMod1 ON tblDocAdd.id_modalita_doc = tblMod1.id_nomeModalita
INNER JOIN $tabellaModalita AS tblMod2 ON tblScadAdd.id_modalita_scad = tblMod2.id_nomeModalita
INNER JOIN $tabellaTipoAdd AS tblTipoAdd ON tblDocAdd.id_tipologia = tblTipoAdd.id_tipologiaAddebito
INNER JOIN $tabellaContiCorr AS tblConto ON tblDocAdd.id_contoCorrente = tblConto.id_contoCorrente WHERE";
$flag = 0;
if ( isset( $_GET[ 'nonapprovati' ] ) ) {
$sql .= " tblDocAdd.doc_approvato = 0 ";
$flag = 1;
}
if ( !isset( $_GET[ 'nonapprovati' ] ) ) {
$sql .= " tblDocAdd.doc_approvato = -1 ";
$flag = 1;
}
if ( isset( $_GET[ 'eseguiti' ] ) ) {
if ( $flag == 1 ) {
$sql .= " AND ";
}
$sql .= " tblScadAdd.data_esecuzione IS NOT NULL ";
$flag = 1;
}
if ( !isset( $_GET[ 'eseguiti' ] ) ) {
if ( $flag == 1 ) {
$sql .= " AND ";
}
$sql .= " tblScadAdd.data_esecuzione IS NULL ";
$flag = 1;
}
if ( !empty( $startDateEmissF ) && !empty( $endDateEmissF ) ) {
if ( $flag == 1 ) {
$sql .= " AND ";
}
$sql .= " dataEmisDoc >= '$startDateEmissF' AND dataEmisDoc >= '$endDateEmissF' ";
$flag = 1;
}
if ( !empty( $startDateScadF ) && !empty( $endDateScadF ) ) {
if ( $flag == 1 ) {
$sql .= " AND ";
}
$sql .= " dataScadAdd >= '$startDateScadF' AND dataScadAdd >= '$endDateScadF' ";
$flag = 1;
}
if ( isset( $_GET[ 'eseguiti' ] ) && !isset( $_GET[ 'nonapprovati' ] ) ) {
if ( !empty( $startDateEsecF ) && !empty( $endDateEsecF ) ) {
if ( $flag == 1 ) {
$sql .= " AND ";
}
$sql .= " dataEsecAdd >= '$startDateEsecF' AND dataEsecAdd >= '$endDateEsecF' ";
$flag = 1;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。