将未知数量的字符串转换为变量

时间:2017-01-28 19:10:25

标签: php html mysql

我目前正致力于我的计算项目,该项目允许用户创建无限量的文件。我目前所坚持的是检索这些值以让用户在这里选择一个是我的代码:

 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表中的主键)

1 个答案:

答案 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中完全删除它们。请改用mysqlipdoAnd this is why you shouldn't use mysql_* functions