用于保存数据的函数在php中不起作用

用于保存数据的函数在php中不起作用,php,function,save,Php,Function,Save,我试图在两个文件中分离php代码和html代码 因此,我正在执行许多函数,这些函数将在页面的不同部分执行 目前,我正在尝试创建一个保存小表单数据的函数 因此,我编写了以下代码: function addAnnonce($session) { $sql = "SELECT `nom`,`prenom`,`type` FROM `gestionnaire` WHERE `id`={$session}"; $result = mysql_query($sql); $donnee

我试图在两个文件中分离php代码和html代码

因此,我正在执行许多函数,这些函数将在页面的不同部分执行

目前,我正在尝试创建一个保存小表单数据的函数

因此,我编写了以下代码:

function addAnnonce($session) {
    $sql = "SELECT `nom`,`prenom`,`type` FROM `gestionnaire` WHERE `id`={$session}";
    $result = mysql_query($sql);
    $donnees = mysql_fetch_assoc($result);
}

function saveAnnonce($form, $annonce, $to) {
    if (isset($form)) {
        addAnonce($_SESSION['login']);
        $by = $donnees['nom'] . ' ' . $donnees['prenom'];
        $sql = "INSERT INTO `cometchat_announcements` SET
    `announcement`  ='" . mysql_real_escape_string($annonce) . "',
    `by`            ='" . mysql_real_escape_string($by) . "',
    `time`          ='" . mysql_real_escape_string(time()) . "',
    `to`            ='" . mysql_real_escape_string($to) . "'";
        mysql_query($sql);
        echo "<div class=\"success\">L'annoncea bien &eacute;t&eacute; ajout&eacute;e , vous pouvez continuer vos actions<br>La mise &agrave; jour interviendra apr&egrave;s actualisation</div>";
        echo "<SCRIPT type=\"text/javascript\"> 
<!-- 
alert(\"Ajout d\'une nouvelle annonce : Ok !\");
// --> 
</SCRIPT> ";
    }
}
    isset($_POST['enreg']) ? saveAnnonce($_POST['enreg'], $_POST['annonce'],$_POST['to']) :'' ;
函数addAnnonce($session){
$sql=“从`gestionnaire`中选择`nom`、`prenom`、`type`,其中`id`={$session}”;
$result=mysql\u查询($sql);
$donnees=mysql\u fetch\u assoc($result);
}
函数saveAnnonce($form,$annonce,$to){
if(isset(表格)){
添加($_会话['login']);
$by=$donnees['nom'.'。$donnees['prenom'];
$sql=“插入“cometchat\u公告”集合
`公告“=”.mysql\u real\u escape\u string($annonce)。“,
`通过“=”.mysql\u real\u escape\u字符串($by)。“,
`时间“=”.mysql\u real\u escape\u字符串(time())。“,
`到“=”.mysql\u real\u escape\u字符串($to)。“;
mysql_查询($sql);
回应“我们将继续采取行动,以实现我们的目标”;
回声“
";
}
}
isset($_POST['enreg'])?saveAnnonce($_POST['enreg'],$_POST['annonce'],$_POST['to']):'';
问题是它给我显示了一个空白页

我真的不明白为什么

它应该显示的形式,但我认为是错误的,但我看不到什么

我已经用xdebug试过了,但它没有给我任何提示


任何类型的帮助都将不胜感激。

您没有将
$donnees
返回工作流,因此
saveAnnonce()中的
$donnees
未定义。

您没有将
$donnees
返回工作流,因此
saveAnnonce()中的
$donnees
未定义。

调用它(
addAnonce
)时,您还拼错了
addAnonce


请注意,您不需要
if(isset($form))
,它将始终被设置,因为它是函数的必需参数。

调用它(
addAnonce
)时,您也拼写错误


请注意,您不需要
if(isset($form))
,它将始终被设置,因为它是函数的必需参数。

offtopic:使用and。为什么在最后一行使用
?:
运算符而不是正确的
if
?offtopic:使用and。为什么在最后一行使用
?:
运算符而不是正确的
if
运算符?感谢您的快速回复。我在第一个函数中添加了return$donnees,但是我仍然有同样的问题您的代码应该像
function addAnnonce($session){$sql=“SELECT nom,prenom,type FROM gestionnaire WHERE id={$session}”;$result=mysql\u query($sql);return mysql\u fetch\u assoc($result);}函数saveAnnonce($form,$annonce,$to){if(isset($form)){$donnees=addAnonce($_SESSION['login']);$by=$donnees['nom']...$donnees['prenom'];
感谢您的快速回复。我在第一个函数中添加了return$donnees,但我仍然有同样的问题您的代码应该看起来像
函数addAnnonce($SESSION){$sql=“选择nom,prenom,从gestionnaire输入,其中id={$session}”;$result=mysql\u query($sql);返回mysql\u fetch\u assoc($result);}函数saveAnnonce($form,$annonce,$to){if(isset($form)){$donnees=addAnonce($$session['login']);$by=$donnees['nom'.'.$donnees['prenom']
谢谢你的回复,我已经纠正了这个错误,但仍然有@banzsh提到的同样的问题,你还需要实际保存addAnnonce的返回值。$donnees=addAnnonce($_SESSION['login']);感谢您的回复,我已经更正了错误,但仍然有@banzsh提到的相同问题,您还需要实际保存addAnnonce的返回。$donnees=addAnnonce($_SESSION['login');