使用PHP从MySQL获取信息时遇到问题
我已经试了好几个小时了,但是运气不好。我在网上找到的每一篇教程都提供了一种使用PHP连接MySQL数据库的不同方法,因此很难找到一致性 当我运行下面的代码时,我尝试检索的值得到“0”。我如何获得这些值?到目前为止,我有以下代码:使用PHP从MySQL获取信息时遇到问题,php,mysql,database,Php,Mysql,Database,我已经试了好几个小时了,但是运气不好。我在网上找到的每一篇教程都提供了一种使用PHP连接MySQL数据库的不同方法,因此很难找到一致性 当我运行下面的代码时,我尝试检索的值得到“0”。我如何获得这些值?到目前为止,我有以下代码: <?php //Connect to MySQL server $conn = mysql_connect('XXIP ADDRESSXX', 'XXUSERNAMEXX', 'XXPASSWORDXX') or die(mysq
<?php
//Connect to MySQL server
$conn = mysql_connect('XXIP ADDRESSXX', 'XXUSERNAMEXX', 'XXPASSWORDXX') or die(mysql_error()); //Connect to mysql
//Continue if connection successful
if($conn != null) {
$db_selected = mysql_select_db('itemdata', $conn) or die(mysql_error()); //Connect to database using the connection
//Continue if selected database successfully
if($db_selected == true) {
//The statement used to query the database
$query = "SELECT * FROM item_prices";
//Store the results of the query
$result = mysql_query($query, $conn) or die(mysql_error()); //Retrieve all data from the table
//Convert to assoc array
$values = mysql_fetch_assoc($result);
$cost = $values['cost'];
$retail = $values['retail'];
$in_stock = $values['available'];
echo("<p>$cost</p>");
echo("<p>$retail</p>");
echo("<p>$in_stock</p>");
}
else
echo "Unable to connect to database";
}
else
echo "Unable to connect to MySQL Server";
//Close database
mysql_close($conn);
?>
1) 您说您正在搜索itemId,但查询没有“where”条件
2) 由于您的表有多行,因此您应该以这种方式使用mysql\u fetch\u assoc来获取所有行:
// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
// then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
如果你只期望一个结果,你可以这样做:
$row = mysql_fetch_assoc($result);
extract($row);
您将获得所有变量,这些变量的名称与您在数据库中获得的名称相同。1)您说您正在搜索itemId,但查询没有“where”条件
2) 由于您的表有多行,因此您应该以这种方式使用mysql\u fetch\u assoc来获取所有行:
// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
// then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
如果你只期望一个结果,你可以这样做:
$row = mysql_fetch_assoc($result);
extract($row);
您将获得所有变量,这些变量的名称与您在数据库中获得的名称相同。因为您的查询可能返回多行,所以需要将fetch函数放入while循环中
while ($row = mysql_fetch_assoc($result))
{
echo $row["cost"];
echo $row["retail"];
echo $row["instock"];
}
另外,根据您的表描述,您没有名为“available”的属性。因为您的查询可能返回多行,所以需要将fetch函数放入while循环中
while ($row = mysql_fetch_assoc($result))
{
echo $row["cost"];
echo $row["retail"];
echo $row["instock"];
}
另外,根据您的表描述,您没有名为“available”的属性。我看了一下您的代码,我非常确定(比如95%)这是有效的代码。如果它仍然不起作用,你就犯了其他错误 顺便说一下,当您使用
die()
时,不需要回显错误消息,脚本将从此点停止工作
这是我的美化代码:
<?php
//Connect to MySQL server
$conn = mysql_connect('XXIP ADDRESSXX', 'XXUSERNAMEXX', 'XXPASSWORDXX')
or die('Unable to connect to MySQL Server');
// Select db
mysql_select_db('itemdata', $conn)
or die('Unable to connect to database');
// Run the query and fetch the results
$query = "SELECT cost FROM item_prices WHERE itemID = 4";
$values = mysql_fetch_assoc(mysql_query($query));
// Echo everything
echo '<p>'.$values['cost'].'</p>';
echo '<p>'.$values['retail'].'</p>';
echo '<p>'.$values['available'].'</p>';
// Close the connection
mysql_close($conn);
?>
我看了一下您的代码,我非常肯定(比如95%)这是有效的代码。如果它仍然不起作用,你就犯了其他错误 顺便说一下,当您使用
die()
时,不需要回显错误消息,脚本将从此点停止工作
这是我的美化代码:
<?php
//Connect to MySQL server
$conn = mysql_connect('XXIP ADDRESSXX', 'XXUSERNAMEXX', 'XXPASSWORDXX')
or die('Unable to connect to MySQL Server');
// Select db
mysql_select_db('itemdata', $conn)
or die('Unable to connect to database');
// Run the query and fetch the results
$query = "SELECT cost FROM item_prices WHERE itemID = 4";
$values = mysql_fetch_assoc(mysql_query($query));
// Echo everything
echo '<p>'.$values['cost'].'</p>';
echo '<p>'.$values['retail'].'</p>';
echo '<p>'.$values['available'].'</p>';
// Close the connection
mysql_close($conn);
?>
您能告诉我们您的数据库是什么样子的吗?我至少可以看到3列,它们是什么类型的?整数等。我没有看到任何代码在赋值后实际输出变量。正如我提到的,我删除了它(但我将在上面的代码中重新添加它只是为了测试目的),因为我知道您使用mysql_fetch_assoc只需要一行。。你确定你的商品价格表中只有一行吗?您说您正在搜索itemID,但查询是通用的“从item_prices中选择*”,其中“where”条件是?;)我最初的查询是“从item_prices中选择'cost',其中itemID=4”您能告诉我们您的数据库是什么样的吗?我至少可以看到3列,它们是什么类型的?整数等。我没有看到任何代码在赋值后实际输出变量。正如我提到的,我删除了它(但我将在上面的代码中重新添加它只是为了测试目的),因为我知道您使用mysql_fetch_assoc只需要一行。。你确定你的商品价格表中只有一行吗?您说您正在搜索itemID,但查询是通用的“从item_prices中选择*”,其中“where”条件是?;)我最初的查询是“从item\u prices中选择'cost',其中itemID=4”。如果我将查询更改为“从item\u prices中选择*,其中itemID=X”,然后使用关联数组,我将只有那一条记录?我这样做了,谢谢。我误解了mysql\u fetch\u assoc()返回的内容。我认为它返回了整个表的关联数组如果我将查询更改为“SELECT*FROM item_prices WHERE itemID=X”,然后使用关联数组,我就只有那一条记录了?我这样做了,谢谢。我误解了mysql\u fetch\u assoc()返回的内容。我认为它返回了整个表的关联数组。我刚刚意识到“可用”的错误,因为我刚刚将它修改为“instock”。由于这与上一篇文章几乎相同,我将奖励他答案。但是谢谢你的回答,我刚刚意识到“可用”的错误,因为我刚刚把它改成了“instock”。由于这与上一篇文章几乎相同,我将奖励他答案。但是谢谢你的回答事实上这好多了,但是有一个问题。使用mysql_query()时,是否需要将$conn(连接/链接)作为参数?除非运行更多连接,否则PHP将为您选择正确的连接:)这是最佳答案:),但对于未来的观察者,请将值['available']更改为值['instock']。谢谢你。如果你想从数据库输出多个值(就像所有东西一样),其他人会回答你可以使用的代码片段。这实际上要好得多,但有一个问题。使用mysql_query()时,是否需要将$conn(连接/链接)作为参数?除非运行更多连接,否则PHP将为您选择正确的连接:)这是最佳答案:),但对于未来的观察者,请将值['available']更改为值['instock']。谢谢你。如果您想从数据库中输出多个值(如所有内容),其他人会回答您可以使用的发布片段。