我需要使用class cart extends Component {
state = { loading: []};
addToCart = (e, id) => {
let loading = this.state.loading.slice();
loading.push(id);
this.setState({
loading
})
};
render() {
const { data } = this.props;
return (
<div>
{data.map((catering,i) => {
const { menus } = catering;
return (
<Row>
{menus.map(menu => {
return this.state.loading.indexOf(menu.id) >= 0 ?
<Col xs={12} md={12} lg={6} key={menu.id} className="m-bottom-15">
<Card style={{ height: '165px', border: 0, overflow: 'hidden' }}>
<CardActions>
<LoadingButton
className="button small primary pull-right"
loading={thi.state.loading || false}
onClick={e => this.addToCart(e, menu.id)}
>
<MdAdd size={18} color={white} />
<span className="font-14 font-400">Add to cart</span>
</LoadingButton>
</CardActions>
</Card>
</Col>
:
/*Loading icon*/
})}
</Row>
)
})}
)
}
}
关键字从表中搜索值,而我正在使用带有文本的特殊字符,而不显示任何结果。我在下面解释我的问题。
Like
我正在解释下面的表格。
cn_user_login:
$name="Henna*/"
$sname='%'.$name.'%';
$sql="select * from cn_user_login name like '".$sname."' order by login_id desc";
这里没有搜索结果。在这里我无论是否有任何特殊字符,如果它匹配一些/所有字母,结果应该来。
答案 0 :(得分:0)
你可以尝试这个..删除特殊字符
$name="Henna*/";
$sname = preg_replace('/[^A-Za-z0-9\-]/', '', $name);
$sql="select * from cn_user_login where name like '%".$sname."%' order by login_id desc";
答案 1 :(得分:0)
尝试使用常规期望替换
$name = preg_replace('/[^A-Za-z0-9\-]/', '', $name);
或
$name = preg_replace('/[^A-Za-z0-9\-\']/', '', $name);
如果 你知道这个角色然后使用str_replace()函数
$name = str_replace("your character", '', $name);
答案 2 :(得分:0)
更好的解决方案是使用PDO
中的预准备语句你可以写:
$sql = 'select * from cn_user_login name like :param_name order by login_id desc';
$paramName = '%'.$name.'%';
$db = new PDO('dsn_string', 'user', 'password');
$stm = $db->prepare($sql);
$stm->execute([':param_name' => $paramName]);
$result = $stm->fetchAll();