Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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_Sql_Database_Variables_Pdf - Fatal编程技术网

Php 数据库仅获取第一个变量

Php 数据库仅获取第一个变量,php,sql,database,variables,pdf,Php,Sql,Database,Variables,Pdf,此php由一个表单填充,该表单向其中发布变量。一旦有了汽车模型,它就应该从数据库中收集数据,并存储每个变量,以便在代码后面使用。这是与另一个数据库一起使用的,所以我宁愿在继续之前填充每个var列表 问题是,数据库只收集第一个变量,而不收集以下变量。如何调用所有变量并将它们保存在那里,以便在下面的html中使用 例如,客户选择汽车模型,提交,表单将模型发送到此代码,数据库应收集更多关于汽车的信息,以便在自动生成的PDF手册中使用 谢谢你的帮助 //database, table CARS and

此php由一个表单填充,该表单向其中发布变量。一旦有了汽车模型,它就应该从数据库中收集数据,并存储每个变量,以便在代码后面使用。这是与另一个数据库一起使用的,所以我宁愿在继续之前填充每个var列表

问题是,数据库只收集第一个变量,而不收集以下变量。如何调用所有变量并将它们保存在那里,以便在下面的html中使用

例如,客户选择汽车模型,提交,表单将模型发送到此代码,数据库应收集更多关于汽车的信息,以便在自动生成的PDF手册中使用

谢谢你的帮助

//database, table CARS and store variables 
$conn = mysql_connect("localhost", "blah", "blah");
mysql_select_db("car_db", $conn);

$sql = "SELECT * FROM cars WHERE modelname = '$carmodel'" or die(mysql_error());  
                $rs_result = mysql_query ($sql, $conn); 
                while ($row = mysql_fetch_assoc($rs_result)) 

//create variables from database entry
$dbbrand = $row['brandname'];
$dbseries = $row['series'];
$dbprice = $row['price'];
$dbseats = $row['seats'];
$dbtype = $row['type'];
$dbcolor = $row['color'];

// -------------------- HTML CONTENT -------------------- //

$html = "   
<body>
    <!--Print Wrap Start-->
    <div id=\"content\">

        <!--Header with logo-->
        <div id=\"div-head\"><div id=\"div-head\"><span class=\"important\">". $dbbrand ."</span></div></div>


        <!--start relative container-->
        <div id=\"div-1\"><span class=\"important\">". $dbseries ."</span>
问题就在这里

while ($row = mysql_fetch_assoc($rs_result)) 
//create variables from database entry
$dbbrand = $row['brandname'];
该代码将结果集中的一条记录分配到$row变量中,该变量仅用于将当前值分配到循环下方的$dbbrand变量中

while循环只控制一行代码,即$dbbrand=$row['brandname'];。您需要将下面所有相关的代码行包装为while循环的一部分。下面我将演示并纠正代码中的其他逻辑错误

$data = array();
int a=0;
while ($row = mysql_fetch_assoc($rs_result)) { 

//create variables from database entry
$data[a]['dbbrand'] = $row['brandname'];
$data[a]['dbseries'] = $row['series'];
$data[a]['dbprice'] = $row['price'];
$data[a]['dbseats'] = $row['seats'];
$data[a]['dbtype'] = $row['type'];
$data[a]['dbcolor'] = $row['color'];
$a++;
}

如果您希望查询返回所有值,对上面代码的调整就足够了。

假设您的语法是如上所述复制的,您需要在变量赋值周围加上大括号{和}

$sql = "SELECT * FROM cars WHERE modelname = '$carmodel'" or die(mysql_error());  
                $rs_result = mysql_query ($sql, $conn); 
                while ($row = mysql_fetch_assoc($rs_result)) {      <----- here

//create variables from database entry
$dbbrand = $row['brandname'];
$dbseries = $row['series'];
$dbprice = $row['price'];
$dbseats = $row['seats'];
$dbtype = $row['type'];
$dbcolor = $row['color'];

}    <---- here

您发布的代码至少包含两个语法错误。这是直接复制粘贴吗?如果是这样的话,运行它时会出现错误吗?是的,这主要是一个直接复制粘贴,我唯一替换的是变量名并删除了db连接密码。我没有收到任何错误,只是第一次之后的每一次都缺少变量。谢谢你的快速回复。很简单,但很烦人。干杯我现在来测试一下。感谢您的帮助和快速回复!为了帮助您理解为什么它首先是一个问题,您需要知道while循环、for循环和if语句都不需要大括号{}来工作,但是如果您不使用大括号,它只使用下一行作为循环条件。因此,在所有作业周围加上大括号就解决了这个问题。同样,停止使用mysql\u查询。您至少应该使用mysqli或pdo。由于mysql\U查询已被弃用,您在将来升级时将遇到问题。请注意,如果您需要查询返回的所有记录,上述解决方案更准确。不客气