Maison > Questions et réponses > le corps du texte
Conversion d'un tableau multidimensionnel en instruction SQL, l'instruction unidimensionnelle a été implémentée, mais je ne sais pas comment faire l'instruction bidimensionnelle S'il vous plaît dites-moi, j'ai plusieurs si maintenant, un si pour un. dimension et un si pour multidimensionnel. L'efficacité du programme est très faible. Je veux donc améliorer le programme, mais il est bloqué ici. . .
<?php
function arrayToSqlStatement( $arrayData = [] )
{
$_temp_string = '';
foreach ( $arrayData as $k => $v ) {
if ( is_array( $v ) && !empty( $v ) ) {
$sqlCondition = $v[0];
$sqlValue = $v[1];
} else {
$sqlCondition = '=';
$sqlValue = trim( $v );
}
//根据符号组合值的样式
if ( $sqlCondition == 'LIKE' ) {
$_temp_string .= ' AND ' . $k . ' LIKE "%' . $sqlValue . '%" ';
} elseif ( $sqlCondition == 'IN' ) {
$_temp_string .= ' AND ' . $k . ' IN(' . $sqlValue . ')';
} elseif ( $sqlCondition == 'BETWEEN' ) {
$_between_value = explode( '|', $sqlValue );
$_temp_string .= ' AND ' . $k . '>="' . $_between_value[0] . '" AND ' . $k . '<="' . $_between_value[1] . '" ';
} else {
$_temp_string .= ' AND ' . $k . $sqlCondition . ' "' . $sqlValue . '" ';
}
}
return $_temp_string;
}
//第二种情况,出问题了。
$a=[
[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
],
[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
]
];
//第一种情况,已经实现了
$b=[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
];
print_r(arrayToSqlStatement($a));
?>
曾经蜡笔没有小新2017-06-14 10:52:08
Le questionneur veut se rendre compte que le tableau bidimensionnel est combiné dans une instruction SQL. Pour changer d'idée, les paramètres transmis sont unifiés dans des tableaux multidimensionnels.
<?php
fonction arrayToSqlStatement( $arrayData = [] )
{
$_temp_string = '';
foreach ($arrayData as $parameterArray) {
foreach ( $parameterArray as $parameter ) {
if ( is_array( $parameter ) && !empty( $parameter ) ) {
$sqlCondition = $parameter[0];
$sqlValue = $parameter[1];
} else {
$sqlCondition = '=';
$sqlValue = trim( $parameter );
}
//根据符号组合值的样式
if ( $sqlCondition == 'LIKE' ) {
$_temp_string .= ' AND ' . $k . ' LIKE "%' . $sqlValue . '%" ';
} elseif ( $sqlCondition == 'IN' ) {
$_temp_string .= ' AND ' . $k . ' IN(' . $sqlValue . ')';
} elseif ( $sqlCondition == 'BETWEEN' ) {
$_between_value = explode( '|', $sqlValue );
$_temp_string .= ' AND ' . $k . '>="' . $_between_value[0] . '" AND ' . $k . '<="' . $_between_value[1] . '" ';
} else {
$_temp_string .= ' AND ' . $k . $sqlCondition . ' "' . $sqlValue . '" ';
}
}
}
return $_temp_string;
}
//第二种情况,出问题了。
$a=[
[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
],
[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
]
];
//第一种情况,已经实现了
$b=
[
[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
]
];
print_r(arrayToSqlStatement($b));
?>
给我你的怀抱2017-06-14 10:52:08
La fonction elle-même continue de s'appeler. . Catégories très infinies. Jouez comme vous voulez