如何在PHP中存储和获取两个值?
这是process_upcategory.php 我想通过类别id或类别名称,用另一个类别名称/id更新类别名称或类别id。 我是php新手如何在PHP中存储和获取两个值?,php,sql,mysqli,Php,Sql,Mysqli,这是process_upcategory.php 我想通过类别id或类别名称,用另一个类别名称/id更新类别名称或类别id。 我是php新手 <?php require('includes/config.php'); if(!empty($_POST)) { $msg=array(); if(empty($_POST['cat'])) { $msg[]="Please full fill al
<?php
require('includes/config.php');
if(!empty($_POST))
{
$msg=array();
if(empty($_POST['cat']))
{
$msg[]="Please full fill all requirement";
}
if(!empty($msg))
{
echo '<b>Error:-</b><br>';
foreach($msg as $k)
{
echo '<li>'.$k;
}
}
else
{
$cat_nm=$_POST['cat[0]'];
$cat_id=$_POST['cat[1]'];
$query= "UPDATE `category` SET cat_nm='$cat_nm' WHERE cat_id='$cat_id'";
mysqli_query($conn,$query) or die("can't Execute...");
mysql_close($link);
header("location:category.php");
}
}
else
{
header("location:index.php");
}
?>
新类别
我想通过类别id或类别名称,用另一个类别名称更新类别名称。我得到了未定义的索引cat[0]和cat[1]当您用[]结束输入名称时,它将被php转换为数组。在这种情况下,获取值的正确方法如下:
$cat=$_POST['cat'];
$cat_nm=$cat[0];
$cat_id=$cat[1];
我将这两个例程组合成一个脚本 我在表单中添加了“sub”以区分表单提交与否 我在查询结果循环中使用了list()。
使用了
mysqli\u fetch\u数组($result,mysqli\u NUM)
而不是mysqli\u fetch\u assoc($res)
使用foreach()循环遍历$\u POST['cat']
将“值”添加到
以保留id
通过使用herdoc消除了从HTML模式到PHP模式的切换
<?php
if (intval($_POST['sub']) == 1){
$newcat = $_POST['new'];
foreach($_POST['cat'] as $key=>$value){
if(strlen($newcat[$key]) > 0){
mysqli_query($conn,"UPDATE `category` SET `cat_nm`='$newcat[$key]' WHERE `cat_id`='$value'");
}
}
}
echo <<<EOT
<html><head><style>h4,h3{color:darkgreen;margin:.2em;}</style></head><body>
<form action="#" method='POST'>
<h3>UPDATE CATEGORY</h3>
<h4>Old Category</h3>
<select name="cat[]" multiple>
EOT;
$sql="SELECT `cat_nm`, `cat_id` FROM `category` ";
$result=mysqli_query($conn,$sql);
while(list($cat_nm,$cat_id) = mysqli_fetch_array($result, MYSQLI_NUM)){
echo " <option value=\"$cat_id\">$cat_nm</option>\n";
}
echo <<<EOT
</select>
<h3>New Category</h3>
<input type="text" name="new[0]" /><br/>
<input type="text" name="new[1]" /><br/>
<input type="hidden" name="sub" value="1" /><br/>
<input type="submit" value=" UPDATE />
</form>
</body></html>
EOT;
?>
检查错误,然后告诉我们那些不需要提及的混合不同的mysql api和要连接的api是未知的。未定义的索引cat[0]和cat[1]将cat_id放在单独的
中是错误的,会使事情复杂化。名称和ID应在单个
中传递。名称和ID应使用相同的cat[]索引传递。
<?php
if (intval($_POST['sub']) == 1){
$newcat = $_POST['new'];
foreach($_POST['cat'] as $key=>$value){
if(strlen($newcat[$key]) > 0){
mysqli_query($conn,"UPDATE `category` SET `cat_nm`='$newcat[$key]' WHERE `cat_id`='$value'");
}
}
}
echo <<<EOT
<html><head><style>h4,h3{color:darkgreen;margin:.2em;}</style></head><body>
<form action="#" method='POST'>
<h3>UPDATE CATEGORY</h3>
<h4>Old Category</h3>
<select name="cat[]" multiple>
EOT;
$sql="SELECT `cat_nm`, `cat_id` FROM `category` ";
$result=mysqli_query($conn,$sql);
while(list($cat_nm,$cat_id) = mysqli_fetch_array($result, MYSQLI_NUM)){
echo " <option value=\"$cat_id\">$cat_nm</option>\n";
}
echo <<<EOT
</select>
<h3>New Category</h3>
<input type="text" name="new[0]" /><br/>
<input type="text" name="new[1]" /><br/>
<input type="hidden" name="sub" value="1" /><br/>
<input type="submit" value=" UPDATE />
</form>
</body></html>
EOT;
?>