需要一些帮助,建议或链接到示例或有用的教程,以便我可以了解这一点。因为我对编程很新。
我有一个名为'ore1'到'ore11'的表单中的11个选择框,可以将数据发送到$ _POST。 这个小块将其转换为另一个函数中使用的数组。
//function calculateValue($sellValue){ -- add when you figure it out
if(isset($_POST['submit'])){
$i = 11 //total number of select boxes
$pdquery = "SELECT * FROM ore
WHERE '".$_POST['ore1']."'
LIKE id";
$result = mysql_query($pdquery);
$oredata1 = array();
while ($row = mysql_fetch_row($result)) {
$oredata1 = $row; }
}
else {}
}
我希望能够在所有11个选择框中使用这一位代码,而不必通过获取
来复制它11次.$_POST['ore#']. //5th line
$oredata# = $row; //10th line
用适当的#替换#,具体取决于它所使用的选择框。
任何提示?提前谢谢。
答案 0 :(得分:1)
在您的HTML中:
<select name="ore[]">
...
</select>
<select name="ore[]">
...
</select>
在你的PHP中
if(isset($_POST['submit']) && isset($_POST['ore'])){
foreach($_POST['ore'] as $ore){
$ore = (int)$ore;
$pdquery = "SELECT * FROM ore WHERE id = $ore";
...
}
}
自弃用过程开始以来,也不要使用mysql_*
功能
答案 1 :(得分:0)
for ($i = 1; $i <= 11; $i++) {
$ore = 'ore'.$i;
$pdquery = "SELECT * FROM ore WHERE '".$_POST[$ore]."' like id";
...
答案 2 :(得分:-2)
在for循环中执行 - 从1到11.然后你可以使用变量$ i来访问东西。
// I assume that there is some MySQLi object called $mysqli already present. You'll have to create it if it does not
if(isset($_POST['submit'])){
$pdquery = 'SELECT * FROM ore WHERE id LIKE ?';
$oredata = array();
if($stmt = $mysqli->prepare($pdquery)) {
for($i = 1; $i < 12; $i++) {
$ore = 'ore' . $i;
if(empty($_POST[$ore])) {
continue;
}
$oreValue = (int)$_POST[$ore];
$stmt->bind_Param('i', $oreValue);
$stmt->execute();
$oredata[$i] = $stmt->get_result()->fetch_array(MYSQLI_ASSOC);
}
}
$stmt->close();
}
这并没有考虑到可能不仅仅是那11个输入的事实。在HTML端使用数组肯定会更清晰(你只需要用foreach循环替换for循环并使用密钥代替$ore
)