Php 如何使用函数返回?
我在content.php中有一个while循环,我想使用$result作为参数。如何从content.php文件调用函数,并在while循环中使用$resultPhp 如何使用函数返回?,php,Php,我在content.php中有一个while循环,我想使用$result作为参数。如何从content.php文件调用函数,并在while循环中使用$result while ($row = mysql_fetch_array($result)) { $ename = stripslashes($row['name']); $eemail = stripslashes($row[
while ($row = mysql_fetch_array($result))
{
$ename = stripslashes($row['name']);
$eemail = stripslashes($row['email']);
$ebox = stripslashes($row['lund']);
$ecategori = stripslashes($row['LundaBlogg']);
$epost = stripslashes($row['post']);
$grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=".md5(strtolower($eemail))."&size=70";
echo
(
'<li>
<div class="datum">'.$row['date'].'</div>
<div class="meta"><img src="'.$grav_url.'" alt="Gravatar" /><p>'.$ename.'</p></div>
</br>
<div class="categori"><p>Kategori: '.$ecategori.'</p></div>
<div class="topic"><p>'.$ebox.'</p></div>
<div class="shout"><p>'.$epost.'</p></div>
<div class="raderaknapp"><a href="../delete_ac.php?id=' . $row['id'] . '"class=\"icon-2 info-tooltip\">Radera Inlägg</a></div>
<div class="raportpost"><p><a href="mailto:someone@example.com?Subject=Hello%20again">Rapportera inlägg</a></p></div>
</li>'
);
?>
<h4>
<form action="<?php echo $self?>" method="POST">
<input type="hidden" name="id" value="<?php echo $row['id']?>"/>
<input type = "submit" name="Gilla" value = 'Gilla'"/>
</form>
</h4>
<div id="radera-infotwo">
<span onmouseover="ShowText('Messagetwo'); return true;" onmouseout="HideText('Messagetwo'); return true;" href="javascript:ShowText('Messagetwo')">
<img src="http://www.wallpaperama.com/forums/post-images/20081107_6718_question-mark.gif">
</span>
</div>
<div id="radera-info">
<span onmouseover="ShowText('Message'); return true;" onmouseout="HideText('Message'); return true;" href="javascript:ShowText('Message')">
<img src="http://www.wallpaperama.com/forums/post-images/20081107_6718_question-mark.gif">
</span>
</div>
<?
?>
<?
echo ("Antal Gilla: " .$row['likes']);
if(isset($_POST['Gilla']) && $_POST['id'] == $row['id']){echo '<h5><img src="../images/tummen-upp.png"/>Du har Gillat detta inlägg.</h5>';}
echo "<hr>";
}
while($row=mysql\u fetch\u array($result))
{
$ename=stripslashes($row['name']);
$eemail=stripslashes($row['email']);
$ebox=stripslashes($row['lund']);
$ecategori=stripslashes($row['LundaBlogg']);
$epost=stripslashes($row['post']);
$grav_url=”http://www.gravatar.com/avatar.php?gravatar_id=“.md5(strtolower($eemail))”&size=70”;
回声
(
“
“.$row['date']”
“.$ename。”
Kategori:“.$ecategori”
“.$ebox.”
“.$epost。”
'
);
?>
首先,简单的方法是修改函数以获得结果,并构建一个数组对象供您使用,而不是返回一个MySQL查询对象
function blogPosts_get(){
$query = "SELECT * FROM shouts ORDER BY `id` DESC LIMIT 8;";
$result = mysql_query($query);
if(!$result)
return array();
else{
while($row = mysql_fetch_array($result))
$posts[] = $row;
return $posts;
}
}
这将处理获取帖子,并始终返回一个数组对象供您使用
接下来,您必须确保将函数包含在require
或require\u once
中
$posts = blogPosts_get();
然后使用
foreach ($posts as $post){
注意:MySQL_*从PHP 5.5开始就被弃用。请先使用MySQLi_*或PDO。首先将functions.PHP包含在content.PHP中。PHP使用require_once(./'your path'/functions.PHP');
将其放在文件content.PHP的开头,然后在functions.PHP中修改代码,如下所示:
function blogPosts_get(){
$query = "SELECT * FROM shouts ORDER BY `id` DESC LIMIT 8;";
$result = mysql_query($query) or die('<p class="error">Wrong.</p>');
return $result;
}
return$result;
有什么问题?@Barmar当我使用result时,我得到了这个错误警告:mysql\u fetch\u array()希望参数1是resource,第70行的/Applications/MAMP/web/blogg/pages/content.php中给出的空值。你在主代码中做了$result=blogPosts\u get();
;在我的content.php文件中,我得到了与以前相同的错误,因此该错误不应该发生。blogPosts_get()
如果返回result$result;
,则永远不能返回null
,因为它将调用die()
在这种情况下。您已经删除了他的错误报告!他可以检查数组的大小或根据自己的喜好进行修改。空结果与来自mysql\u query()的错误不同
return array('error'=>mysql\u error());
将通过检查isset('error'])来实现这一点
@UnholyRanger谢谢你的通知信息,我会查看的that@Bruno查韦斯,不客气,很乐意帮忙
function blogPosts_get(){
$query = "SELECT * FROM shouts ORDER BY `id` DESC LIMIT 8;";
$result = mysql_query($query) or die('<p class="error">Wrong.</p>');
return $result;
}
$result = blogPosts_get();