Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP显示选择结果_Php_Mysql_Select - Fatal编程技术网

用PHP显示选择结果

用PHP显示选择结果,php,mysql,select,Php,Mysql,Select,我运行一个查询,只返回特定字段中的第一个单词,该字段有多个用空格分隔的单词。查询的结果将是我动态创建的选择框的值。我有3个选择框,它们是根据另一个选择动态创建的 问题是,查询返回整个句子,并且这个句子也显示在选择框中。我尝试只在数据库中运行查询,它似乎给了我正确的结果 下面是代码片段。我如何解决它 <?php //************************************** // First selection results // //*******

我运行一个查询,只返回特定字段中的第一个单词,该字段有多个用空格分隔的单词。查询的结果将是我动态创建的选择框的值。我有3个选择框,它们是根据另一个选择动态创建的

问题是,查询返回整个句子,并且这个句子也显示在选择框中。我尝试只在数据库中运行查询,它似乎给了我正确的结果

下面是代码片段。我如何解决它

<?php
  //**************************************
 //     First selection results     //
//**************************************
if(isset($_GET['func'])&& $_GET['func'] == "drop_1") {
   drop_1($_GET['drop_var']); 
}

function drop_1($drop_var)
{
$result = mysql_query("SELECT DISTINCT SUBSTRING_INDEX(`h_name` ,' ', 1 ) AS name FROM hypermarket_em") or die(mysql_error());
echo '<select name="drop_2" id="drop_2"><option value=" " disabled="disabled" selected="selected">Select City</option>
        <option value="ALL" >ALL</option>';
while($drop_2 = mysql_fetch_array( $result )) 
{
      echo '<option value="'.$drop_2['name'].'">'.$drop_2['name'].'</option>';
}
echo '</select>';
echo "<script type=\"text/javascript\">
    $('#wait_2').hide();
    $('#drop_2').change(function(){
    $(this).parent().parent().find('.drop2').val($(this).val());
    $('#wait_2').show();
    $('#result_2').hide();
    $.get(\"func.php\", {
    func: \"drop_2\",
    drop_var: $('#drop_2').val()
    }, function(response){
    $('#result_2').fadeOut();
    setTimeout(\"finishAjax_tier_three('result_2', '\"+escape(response)+\"')\", 400);
    });
    return false;
    });
    </script>";
}
?>

您正在设置子字符串

SUBSTRING_INDEX(`h_name` ,' ', 1 ) AS name
但是仍然引用完整的原始字符串
$drop\u 2['h\u name']
。试着换成-

while($drop_2 = mysql_fetch_array( $result )) 
{
  echo '<option value="'.$drop_2['name'].'">'.$drop_2['name'].'</option>';
}

对不起,这是错误的复制粘贴。请看我的编辑。不要使用mysql_*函数,因为它们已被弃用,并且非常不鼓励使用。请查看PHP.net上的这篇文章,选择另一种API:我已经使用了上面编辑中提到的子字符串。当我单独运行查询时,我在数据库中得到了正确的结果。但是当我用php显示它的时候,我也这样做了。但是没有帮助:(不知道。当你将别名
设置为name
时,在执行
$drop\u 2['name']
时,应该正确地回显它。作为一个故障保护,你可以执行
explode()
这是我在第一个答案中建议的。我将重新添加它。感谢您的帮助。但我想还有其他问题。即使explode()也似乎不起作用。无论如何,再次感谢。
while($drop_2 = mysql_fetch_array( $result )) 
{
  $firstWord = explode(' ',trim($drop_2['name']));
  echo '<option value="'.$firstWord[0].'">'.$firstWord[0].'</option>';
}