我目前正致力于我的计算项目,该项目允许用户创建无限量的文件。我目前所坚持的是检索这些值以让用户在这里选择一个是我的代码:
function DispMonth(){
$dateList=GetDates($_Session['user']);//use session id
foreach($dateList as $value){//get each value
echo '<tr>' .$value.'</tr>';}
}
?>
<body>
<table>
<th><tr> Made Budgets</tr> </th>
<?php DispMonth(); ?>
</body>
</html>
我的GetDates功能是:
function GetDates($id){
$result=mysql_query('select monthYear from database where userId='.$_Session['user'].'');
while ($row=mysql_fetch_object($result)){
$x[]=$row['monthYear'];}
return x;
}
基本上我希望表格看起来像这样:
|monthYear| edit | delete |
编辑和删除是链接/按钮,它会将monthYear的值发送到新的php页面以获取所有值。(Monthyear是我的sql表中的主键)
答案 0 :(得分:0)
您需要修复的代码存在一些问题,并且您需要进行一些更改才能使其正常工作,例如:
您的表结构错误。 <tr>
不能在<th>
内,也缺少结束</table>
标记。
您使用mysql_fetch_object()
函数从结果集中提取行,但使用$row[...]
访问列值,这是错误的。请改用mysql_fetch_array()
。
while ($row=mysql_fetch_array($result)){ ...
鉴于monthYear
是您表格的主键,请在您的编辑和删除按钮中使用此列值foreach
循环,如下所示:
<a href="newPage.php?monthYear=<?php echo $value ?>&edit">edit</a>
<a href="newPage.php?monthYear=<?php echo $value ?>&delete">delete</a>
稍后,在 newPage.php 页面上,您可以编辑或删除任何特定的行,如下所示:
if(isset($_GET['edit'])){
$monthYear = $_GET['monthYear'];
// Edit the row
}
if(isset($_GET['delete'])){
$monthYear = $_GET['monthYear'];
// Delete the row
}
所以你的函数和表结构是这样的:
<table>
<tr>
<th>Made Budgets</th>
<th>Edit</th>
<th>Delete</th>
</tr>
<?php DispMonth(); ?>
</table>
function DispMonth(){
$dateList=GetDates($_Session['user']);
foreach($dateList as $value){
?>
<tr>
<td><?php echo $value; ?></td>
<td><a href="newPage.php?monthYear=<?php echo $value ?>&edit">edit</a></td>
<td><a href="newPage.php?monthYear=<?php echo $value ?>&delete">delete</a></td>
</tr>
<?php
}
}
function GetDates($id){
$result=mysql_query('select monthYear from database where userId='.$_SESSION['user'].'');
$x = array();
while ($row=mysql_fetch_array($result)){
$x[] = $row['monthYear'];
}
return x;
}
旁注:不使用mysql_*
函数,从PHP 5.5开始不推荐使用它们,在PHP 7.0中完全删除它们。请改用mysqli
或pdo
。 And this is why you shouldn't use mysql_*
functions。