我正在使用mysql_real_escape_string将数据存入我的数据库而没有任何问题.
所以数据库中的条目可能是:
1/4" Steve's lugnuts
Run Code Online (Sandbox Code Playgroud)
所以这完全在数据库中.
现在我想搜索那个确切的东西.但是,它会陷入"或者"(我已经尝试了很多东西,它总是在某处弄乱).
这就是我现在拥有的:( user_input来自上一页的表格)
$user_input=mysql_real_escape_string($_REQUEST['user_input']);
$search_row=mysql_query("SELECT * FROM some_table WHERE some_column LIKE '%$user_input%' ");
while($search = mysql_fetch_array($search_row))
{stuff happens}
echo "<form action='search_results.php' method='post'>";
echo "<input name='user_input' type='text' size='50' value='" . $user_input. "'>";
echo "<input type='submit' value='Lookup Parts' />";
echo "</form>";
Run Code Online (Sandbox Code Playgroud)
但问题是,我似乎无法得到任何错误.
搜索字段(应该填充它们已经放入的内容)只有:
1/4\" Steve\
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我有一个包含变量的.php页面,每个变量都与几十个不同的搜索条件相关联.我认为将所有变量作为一个巨大的字符串插入数据库是最容易的.
然后我认为将变量及其声明与它们作为一个巨大的字符串进行干扰会更加容易.
所以我的意思是,而不仅仅是这个:
Stewie
101
Green
Run Code Online (Sandbox Code Playgroud)
我想把它作为数据库中的一个大blob:
$user_name = 'Stewie';
$pants_size = '101';
$favorite_eggs = 'Green';
Run Code Online (Sandbox Code Playgroud)
这样,我就能够非常轻松地捕获和提取大量用户首选项数据,而无需在数组方面做太多工作.毕竟,我必须经常更改页面,改变阵列会很头疼.
如果我能做到这一点,我可以简单地,它可以简单地重新声明所有变量,我不再需要考虑它.
记录不需要是可搜索的,只能通过变量声明提取(如$ var ='value';带引号和all).
我到目前为止调查的内容如下:
任何帮助都会受到赞赏,即使是告诉我,"这是不可能的.我推荐[XYZ]."
谢谢!
编辑:戴夫e有一个很好的解决方案,通过eval 检索这些数据.但是我仍然对如何将数据开始进入数据库感到有点困惑.以相同的方式存储> 100个变量及其声明($ variable_name ='value')有点令人困惑!
我有一系列的价值观.假设数组是这样的:
[apple, banana, coconut, duku, emblica, fig, gooseberry]
Run Code Online (Sandbox Code Playgroud)
让我们说我知道一个具体的价值,"无花果".我如何才能知道它之前和之后的哪个值?
我有一个表格,用户将选择一个类别并输入搜索参数,我必须找到帽子类别中的最新值.
数据集的示例可能是:
ID | category | name | price | date
1 | bubblegum | Steve | 2.00 | 2011/1/1
2 | bubblegum | Bob | 1.00 | 2011/1/8
3 | bubblegum | Steve | 1.80 | 2011/2/1
Run Code Online (Sandbox Code Playgroud)
如果用户搜索"Steve",他们将只获得其中还有"steve"名称的最新价格.
Max(date)似乎不起作用,我不明白为什么.我认为这是因为如果我要寻找"bob",因为Bob没有出现在Max(日期)中,它就不会出现.但也许我使用SELECT参数错误.