Php 如何展开从MySQL导入的类别列表
我已经从phpMyAdmin中的两个不同表导入了一组不同的值,一个来自Category表(其中cat_id是PK),另一个来自Item表;其中(cat_id为FK)Php 如何展开从MySQL导入的类别列表,php,mysql,html,xampp,Php,Mysql,Html,Xampp,我已经从phpMyAdmin中的两个不同表导入了一组不同的值,一个来自Category表(其中cat_id是PK),另一个来自Item表;其中(cat_id为FK) 上面的图片是我想要的结果,这张图片只针对服装(2)。我希望它在用户单击其他东西时发生更改,例如,Shoes(1)。您已经发出了正确的查询,以获取关于某个项目的所有数据信息。但是,您没有获取每个字段的内容,而是选择只计算受影响的行数。通过使用mysql\u fetch\u array()可以实际获取每个字段的内容,并显示结果 根据您的
上面的图片是我想要的结果,这张图片只针对服装(2)。我希望它在用户单击其他东西时发生更改,例如,Shoes(1)。您已经发出了正确的查询,以获取关于某个项目的所有数据信息。但是,您没有获取每个字段的内容,而是选择只计算受影响的行数。通过使用
mysql\u fetch\u array()
可以实际获取每个字段的内容,并显示结果
根据您的代码考虑以下示例:
for($i = 0; $i < count($cat_idd); $i++)
{
$que2 = "SELECT * FROM item WHERE cat_id = '$cat_idd[$i]' ";
$result = mysql_query($que2);
$run = mysql_num_rows($result);
echo "<a href=''>".$cat_namee[$i]."(".$run.")</a><br>";
while($row = mysql_fetch_array($result)){
//Change ['item_name'] and ['item_description'] to match your DB schema.
echo "item name: $row['item_name']";
echo "item description: $row['item_description']";
}
}
for($i=0;$i”;
while($row=mysql\u fetch\u数组($result)){
//更改['item_name']和['item_description']以匹配数据库架构。
echo“项目名称:$row['item_name']”;
echo“项目描述:$row['item_description']”;
}
}
$row
是一个数组(既具有关联性又具有数字索引),包含您要查找的所有数据。在我的示例中,我假设items
表有一个名为item\u name
和item\u description
的字段。您的表可能有不同的列名,您需要更改它以匹配列名
有关mysql\u fetch\u array()的更多信息:
最后,您应该知道,从PHP5.5开始,mysql
扩展就被弃用了。您应该强烈考虑移动到<代码> MySqLI:/COD>或<代码> PDO < /P>
有关mysqli的更多信息:
有关
PDO
的更多信息:您已经发出了正确的查询,以获取有关项目的所有数据信息。但是,您没有获取每个字段的内容,而是选择只计算受影响的行数。通过使用mysql\u fetch\u array()
可以实际获取每个字段的内容,并显示结果
根据您的代码考虑以下示例:
for($i = 0; $i < count($cat_idd); $i++)
{
$que2 = "SELECT * FROM item WHERE cat_id = '$cat_idd[$i]' ";
$result = mysql_query($que2);
$run = mysql_num_rows($result);
echo "<a href=''>".$cat_namee[$i]."(".$run.")</a><br>";
while($row = mysql_fetch_array($result)){
//Change ['item_name'] and ['item_description'] to match your DB schema.
echo "item name: $row['item_name']";
echo "item description: $row['item_description']";
}
}
for($i=0;$i”;
while($row=mysql\u fetch\u数组($result)){
//更改['item_name']和['item_description']以匹配数据库架构。
echo“项目名称:$row['item_name']”;
echo“项目描述:$row['item_description']”;
}
}
$row
是一个数组(既具有关联性又具有数字索引),包含您要查找的所有数据。在我的示例中,我假设items
表有一个名为item\u name
和item\u description
的字段。您的表可能有不同的列名,您需要更改它以匹配列名
有关mysql\u fetch\u array()的更多信息:
最后,您应该知道,从PHP5.5开始,mysql
扩展就被弃用了。您应该强烈考虑移动到<代码> MySqLI:/COD>或<代码> PDO < /P>
有关mysqli的更多信息:
关于PDO的更多信息:因此,在花了近一两天的时间后,我终于找到了解决办法,我将答案发布在这里,以便其他人来这里寻找答案
<?php
require ('config.php');
$que = "SELECT * FROM category";
$run = mysql_query($que);
$j = 0;
while($row = mysql_fetch_array($run))
{
$cat_idd[$j] = $row['cat_id'];
$cat_namee[$j] = $row['cat_name'];
$j++;
}
for($i = 0; $i < count($cat_idd); $i++)
{
$que2 = "SELECT * FROM item WHERE cat_id = '$cat_idd[$i]' ";
$result = mysql_query($que2);
$run = mysql_num_rows($result);
echo "<a href='c.php?id=$cat_idd[$i]'>".$cat_namee[$i]."(".$run.")</a><br><br>";
}
?>
<?php
require('config.php');
if(isset($_GET['id']))
{
$cat_id = $_GET['id'];
$que = "SELECT * FROM item WHERE cat_id = '$cat_id'";
$run = mysql_query($que);
?>
<br><br>
<form name = "view" method = "POST" action ="cart.php">
<table align = 'center' width = '100%' border = '4'>
<tr>
<td colspan = '20' align = 'center'><h2> Viewing all the Products </h2></td>
</tr>
<tr align = 'center'>
<th>Item ID</th>
<th>Name</th>
<th>Price</th>
<th>Select</th>
</tr>
<tr align = 'center' class = "odd">
<?php
while($row = mysql_fetch_array($run))
{
$i_id = $row['item_id'];
$i_name = $row['item_name'];
$i_price = $row['item_price'];
?>
<td><?php echo $i_id; ?></td>
<td><?php echo $i_name; ?></td>
<td><?php echo $i_price; ?></td>
<?php
$item = $i_name ." ". $i_price;
?>
<td><input type="checkbox" name="addcart[]" value="<?php echo $item; ?> />Tick</td>
</tr>
<?php }?><input type = "hidden" name = "check">
<button type= "submit" onclick = "location.href = 'cart.php';" id = "cart">Add to Cart</button> <?php } ?>
</table>
因此,在花了差不多一两天的时间后,我终于找到了摆脱困境的办法,我在这里发布了答案,如果有人来这里寻找答案
<?php
require ('config.php');
$que = "SELECT * FROM category";
$run = mysql_query($que);
$j = 0;
while($row = mysql_fetch_array($run))
{
$cat_idd[$j] = $row['cat_id'];
$cat_namee[$j] = $row['cat_name'];
$j++;
}
for($i = 0; $i < count($cat_idd); $i++)
{
$que2 = "SELECT * FROM item WHERE cat_id = '$cat_idd[$i]' ";
$result = mysql_query($que2);
$run = mysql_num_rows($result);
echo "<a href='c.php?id=$cat_idd[$i]'>".$cat_namee[$i]."(".$run.")</a><br><br>";
}
?>
<?php
require('config.php');
if(isset($_GET['id']))
{
$cat_id = $_GET['id'];
$que = "SELECT * FROM item WHERE cat_id = '$cat_id'";
$run = mysql_query($que);
?>
<br><br>
<form name = "view" method = "POST" action ="cart.php">
<table align = 'center' width = '100%' border = '4'>
<tr>
<td colspan = '20' align = 'center'><h2> Viewing all the Products </h2></td>
</tr>
<tr align = 'center'>
<th>Item ID</th>
<th>Name</th>
<th>Price</th>
<th>Select</th>
</tr>
<tr align = 'center' class = "odd">
<?php
while($row = mysql_fetch_array($run))
{
$i_id = $row['item_id'];
$i_name = $row['item_name'];
$i_price = $row['item_price'];
?>
<td><?php echo $i_id; ?></td>
<td><?php echo $i_name; ?></td>
<td><?php echo $i_price; ?></td>
<?php
$item = $i_name ." ". $i_price;
?>
<td><input type="checkbox" name="addcart[]" value="<?php echo $item; ?> />Tick</td>
</tr>
<?php }?><input type = "hidden" name = "check">
<button type= "submit" onclick = "location.href = 'cart.php';" id = "cart">Add to Cart</button> <?php } ?>
</table>
类别是包含您提供的数据的物理表吗?还是一种风景?您能否提供有关物品存储方式的更多信息?@HPierce是的,类别是一个物理表,其中存储有数据。项目根据类别id(从类别表)存储到项目表。正如我所说,我在MySQLI中有两个物理表。我现在编辑了文章,提供了更多信息。category
是包含您提供的数据的物理表吗?还是一种风景?您能否提供有关物品存储方式的更多信息?@HPierce是的,类别是一个物理表,其中存储有数据。项目根据类别id(从类别表)存储到项目表。正如我所说,我在MySQLI中有两个物理表,我现在编辑了这篇文章并提供了更多信息。我得到了以下错误:语法错误,意外的“”(T_ENCAPSED_和_空格),在第57Oops行的C:\xampp\htdocs\testing\inventory\C.php中需要标识符(T_字符串)或变量(T_变量)或数字(T_NUM_字符串)。我忘了在带有的行中插入括号,而。我已经更新了答案。在您提到:P之前,我已经修复了这个问题,但是我仍然得到了相同的错误。问题在于这行echo“item name:$row['item_name']”;将其更改为echo$row['item_name'];成功了。但是,即使在用户有机会单击某个类别之前,也会显示所有详细信息。怎么解决?我还以为这是你的本意。听起来您需要第二个网页来生成所有项目信息。只需将cat\u id
传递给另一个带有$\u GET
的脚本即可。我得到以下错误:语法错误,意外的“”(T\u被压缩的\u和\u空格),在第57Oops行的C:\xampp\htdocs\testing\inventory\C.php中需要标识符(T\u字符串)或变量(T\u变量)或数字(T\u NUM\u字符串)。我忘了在带有的行中插入括号,而。我已经更新了答案。在您提到:P之前,我已经修复了这个问题,但是我仍然得到了相同的错误。问题在于这行echo“item name:$row['item_name']”;陈
<?php
require ('config.php');
$que = "SELECT * FROM category";
$run = mysql_query($que);
$j = 0;
while($row = mysql_fetch_array($run))
{
$cat_idd[$j] = $row['cat_id'];
$cat_namee[$j] = $row['cat_name'];
$j++;
}
for($i = 0; $i < count($cat_idd); $i++)
{
$que2 = "SELECT * FROM item WHERE cat_id = '$cat_idd[$i]' ";
$result = mysql_query($que2);
$run = mysql_num_rows($result);
echo "<a href='c.php?id=$cat_idd[$i]'>".$cat_namee[$i]."(".$run.")</a><br><br>";
}
?>
<?php
require('config.php');
if(isset($_GET['id']))
{
$cat_id = $_GET['id'];
$que = "SELECT * FROM item WHERE cat_id = '$cat_id'";
$run = mysql_query($que);
?>
<br><br>
<form name = "view" method = "POST" action ="cart.php">
<table align = 'center' width = '100%' border = '4'>
<tr>
<td colspan = '20' align = 'center'><h2> Viewing all the Products </h2></td>
</tr>
<tr align = 'center'>
<th>Item ID</th>
<th>Name</th>
<th>Price</th>
<th>Select</th>
</tr>
<tr align = 'center' class = "odd">
<?php
while($row = mysql_fetch_array($run))
{
$i_id = $row['item_id'];
$i_name = $row['item_name'];
$i_price = $row['item_price'];
?>
<td><?php echo $i_id; ?></td>
<td><?php echo $i_name; ?></td>
<td><?php echo $i_price; ?></td>
<?php
$item = $i_name ." ". $i_price;
?>
<td><input type="checkbox" name="addcart[]" value="<?php echo $item; ?> />Tick</td>
</tr>
<?php }?><input type = "hidden" name = "check">
<button type= "submit" onclick = "location.href = 'cart.php';" id = "cart">Add to Cart</button> <?php } ?>
</table>