调用查询结果时PHP未定义变量错误

时间:2014-01-06 11:05:29

标签: php function

在我的第一个PHP博客系统上工作时,我无法从页面显示查询结果 的 articles.php

include ('config/dbconnect.php');
function selectArticleById( $IdArticle, $c ){

$sqlArticlesId = 'SELECT 
            artID,
            artTitre,
            artAuteur,
            artContenu,
            artDate
            FROM articles
            WHERE artID =\''.$IdArticle.'\'
            ';
$result = mysqli_query($c, $sqlArticlesId); 
return $result;

}

在我的电话中调用此功能  的 menu.inc.php

<?php 

$rArticlesId = selectArticleById( $row['artID'], $conn ); ?>
<?php while($row = mysqli_fetch_array($rArticlesId)){ ?> 

<ul class="menu">

<li><a href="index.php?page=articleform"><?php echo $row['artTitre']; ?></a></li>
<?php echo $row['artTitre']; ?>
</ul>
<?php } ?>

我收到错误:未定义的变量。 SQL注入将相应处理。我只想了解函数如何使用2个变量。

3 个答案:

答案 0 :(得分:4)

以下行中的$row未定义。

$rArticlesId = selectArticleById( $row['artID'], $conn ); ?>

也许你的意思是$_GET['artID']

$rArticlesId = selectArticleById( $_GET['artID'], $conn ); ?>

答案 1 :(得分:0)

您在此行中使用$ row $rArticlesId = selectArticleById( $row['artID'], $conn ); ?>

虽然在下面的行中创建了$ row

<?php while($row = mysqli_fetch_array($rArticlesId)){ ?> 

您需要在此处使用正确的变量。

答案 2 :(得分:0)

感谢所有帮助过我的人。回答我自己的问题:   我在menu.inc.php中声明了

<?php 
$rows =  mysqli_fetch_assoc($rArticles); //THIS IS WHAT I ADDED
$rArticlesId = selectArticleById( $rows['artID'], $conn ); ?>
<?php while($row = mysqli_fetch_array($rArticlesId)){ ?> 

 <ul class="menu">

<li><a href="index.php?page=articleform"><?php echo $row['artTitre']; ?></a></li>
<?php echo $row['artTitre']; ?>
</ul>
<?php } ?>