gpt4 book ai didi

php - php mysql 中的各种输入项

转载 作者:行者123 更新时间:2023-11-29 13:09:00 25 4
gpt4 key购买 nike

我用 html 创建了一个 html 表单,并输入了项目、评论和可见内容。我想做的是能够通过创建循环使用这些协议(protocol)的代码来将这些变量输入到 sql 中: 如果所有字段都为空,则全部填充或仅填充一两个字段,因此只能将所述填充的数据添加到mysql表中。 我使用的代码之一的示例是

            if($nitem != ' ' and $comment != ' ')
{$query = "UPDATE shop.titem SET
item = '$nitem', comment = '$comment', visible = $visible
WHERE titem.item ='$item'";
$sqlhandle = mysql_query($query, $connection);}
if (!$sqlhandle){echo 'create all failed' . mysql_error();
}else{break;}

我使用了中断,但它不断循环完成所有已完成的查询,这就是我需要帮助的地方。和往常一样,我在这方面完全是菜鸟,所以如果您对我有耐心和理解,我将不胜感激。谢谢。

更新:我做了一个回显来生成sql,它返回一个语句,其中所有代码都运行,即如果只有项目字段被编辑为例如:牛奶,它给我项目作为牛奶,注释为空白和可见为 1(我将默认值设置为空白,如果字段未填充任何内容,则可见为 1)

完整代码

    $item = $_POST['item'];
$nitem = $_POST['nitem'];
$comment = $_POST['comment'];
if(!isset($_POST['visible']))
{$visible = 1;}
else
{$visible = $_POST['visible'];}


//for when all is true
if($nitem != ' ' and $comment != ' ')
{$query = "UPDATE shop.titem SET
item = '$nitem', comment = '$comment', visible = $visible
WHERE titem.item ='$item'";
$sqlhandle = mysql_query($query, $connection);}
if (!$sqlhandle){echo 'create all failed' . mysql_error();
}else{break;}



//for when all is false
if($nitem = ' ' and $comment = ' ' )
{echo 'please go back and edit a field.';
}else{break;}


//for when nitem and comment is true
if($nitem != ' ' and $comment != ' ')
{$query = "UPDATE shop.titem SET item = $nitem, comment = $comment
WHERE item = $item";
$sqlhandle = mysql_query($query, $connection);}
if (!$sqlhandle){echo 'item and comment write failed' . mysql_error();
}else{break;}


//for when nitem only is true
if($nitem !=' ' and $comment = ' ')
{$query = "UPDATE shop.titem SET item = $nitem
WHERE item = $item";
$sqlhandle = mysql_query($query, $connection);}
if (!$sqlhandle){echo 'item write failed' . mysql_error();
}else{break;}


//for where comment only is true
if($comment != ' ' and $nitem = ' ')
{$query = "UPDATE shop.titem SET
comment = $comment WHERE titem.item = $item";
$sqlhandle = mysql_query($query, $connection);}
if(!$sqlhandle){echo 'comment write failed' . mysql_error();
}

最佳答案

我认为您的大多数验证都会检查空格,其中一些会分配空格而不是验证(您有“=”而不是“==”),我已经最小化并修复了您发布的代码中的一些内容加上以下内容,

    $item   = $_POST['item'];
$nitem = $_POST['nitem'];
$comment= $_POST['comment'];

if(!isset($_POST['visible'])){
$visible = 1;
}else{
$visible = $_POST['visible'];
}


//for when all is true
if(trim($nitem)!= '' and trim($comment) != ''){
$query = " item = '".$nitem."', comment = '".$comment."', visible = $visible ";
}else{
$message = 'please go back and edit a field.';
}

//for when nitem and comment is true
if(trim($nitem)!= '' and trim($comment) != ''){
$query = " item = '".$nitem."', comment = '".$comment."' ";
}

//for when nitem only is true
if(trim($nitem) != '' and trim($comment) == ''){
$query = " item = '".$nitem ."' ";
}

//for where comment only is true
if(trim($comment) != '' and trim($nitem) == ''){
$query = " comment ='". $comment ."' " ;
}

$mainquery = "UPDATE shop.titem SET ". $query ." WHERE titem.item = '".$item."'";
$sqlhandle = mysql_query($mainquery, $connection);

if(!$sqlhandle){
echo $message . mysql_error();
}

如果我是你,并且我有这个要求,我会采取不同的方法,但我不想改变你的概念,这会让你感到困惑。我也不知道完整的要求是什么。不管怎样,尝试调整我的代码并看看它如何进行,我已经删除了所有中断,并且只有一个位置可以执行 sql 查询。

认为这将帮助您解决问题...

P.S:始终尝试编写可读的代码,这会对您将来有所帮助:)

关于php - php mysql 中的各种输入项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22339857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com