Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将SQL查询放入PHP函数中_Php_Mysql - Fatal编程技术网

将SQL查询放入PHP函数中

将SQL查询放入PHP函数中,php,mysql,Php,Mysql,我想在一个页面上运行几个查询。我显然不想把实际的查询放在我的模板文件中,所以我想我要做的是构造一个函数,并在我希望查询结果显示的任何地方调用它。对吧? 例如,我在侧边栏中有,在页脚中有,等等 所以,我只需要创建一个名为functions.php的文件,php是否包含,并在其中放入类似的内容 <?php function sidebar_query(){ $query = ("SELECT sidebarposts FROM table;"); return

我想在一个页面上运行几个查询。我显然不想把实际的查询放在我的模板文件中,所以我想我要做的是构造一个函数,并在我希望查询结果显示的任何地方调用它。对吧?

例如,我在侧边栏中有
,在页脚中有
,等等

所以,我只需要创建一个名为
functions.php
的文件,php是否包含,并在其中放入类似的内容

<?php
    function sidebar_query(){
        $query = ("SELECT sidebarposts FROM table;");
    return $query;
}
?>
沿着完全相同的路线,我想计算返回的结果,并显示一个“返回了X篇文章!”下面的消息。似乎把它放在函数中也是有意义的。如何创建一个“通用”函数,以便在每个查询中重用

<?php
    function number_of_results(){
        $num_rows = mysql_num_rows();
        echo $num_rows;
}
?>

如果有人能给我一个理论依据,告诉我我应该在这里努力实现什么,我将不胜感激

谢谢你帮助初学者


Terry

阅读关于如何运行mysql查询的php文档

Yay
你有了这个查询,现在你需要对它做些什么:


mysql\u查询($query)可能对你有用:-)

我想我明白你的意思了

按如下方式返回值



    function sidebar_query(){
        $rValue = "";
        $query = ("SELECT sidebarposts FROM table;");
        $result = mysql_query($query);
        if ($row = mysql_fetch_array($result)){
            $rValue = $row['sidebarposts'];
        }
    return $rValue;
    }

现在您可以回显侧栏_query();或者您想对其执行的任何操作。

您想运行查询并以您想在模板中使用的任何格式返回结果。。因此,对于要返回整数的原始数字,对于侧边栏帖子,将返回帖子数组或mysql结果

您应该将“'There was X posts returned!””事件设置为一个完全不同的函数,您可以在其中传递一个整数和一个可选字符串。这样你就可以把它再利用很多东西了。例如:

function format_nb_records($nb_records, $format = 'There were %s posts returned!'){
   return sprintf($format, $nb_records);
}

尽管在这种情况下,我认为没有足够的额外逻辑来保证将其包装到函数中。我可能会直接在我的模板中这样做

一个很好的例子是,如果您想使用“单词中的时间”功能,如“昨天”或“10分钟前”,那么您可以传入时间,计算要使用的字符串,格式化并返回它。

通过执行
(“从表中选择侧边栏;”)操作,您实际上没有做任何事情,您只需要将字符串存储为变量

一个简单的例子是

function sidebar_query()
{
    $query = mysql_query("SELECT title,post FROM table;"); //query the db
    $resArr = array(); //create the result array

    while($row = mysql_fetch_assoc($query)) { //loop the rows returned from db
        $resArr[] = $row; //add row to array
    }

    return $resArr;   
}
然后你可以使用它

$sideBarPosts = sidebar_query(); //get the result array

foreach($sideBarPosts as $post) { //loop the array
    echo '<h1>'. $post['title']. '</h1>';
    echo '<p>'. $post['post']. '</p>';
}
$sideBarPosts=sidebar_query()//获取结果数组
foreach($sideBarPosts as$post){//循环数组
回显“.$post['title']”;
回显“”.$post['post'].

”; }


编辑。我知道你想让函数直接打印它,如果你愿意,你可以这样做,而不是返回数组。

尽管在这种情况下,我认为没有足够的额外逻辑来保证在函数中包装它。我可能会直接在我的模板中这样做


这类内容有用的一个很好的例子是,如果您想执行“单词中的时间”功能,如“昨天”或“10分钟前”,那么您需要传入时间计算要使用的字符串,格式化它

你已经有了连接名,我的是$connect\u name

$connect_name= mysql_connect( 'host', 'user', 'password');

function getname($user,$db){
    $data= mysql_query("SELECT $user...", $db);
    //your codes
    //return bla bla
}

echo getname("matasoy",$connect_name);
这是我的工作

我也将其用于sql系统。您可以将medoo与这样的函数一起使用

function randevu($tarih,$saat,$db){

    $saat_varmi = $db->count("randevu",array("AND"=>array("tarih"=>$tarih,"saat"=>$saat)));

    if($saat_varmi>0)
        return 3;
    else
        return 2;               
}
祝你今天愉快

而且:

    $sideBarPosts = sidebar_query(); //get the result array

    foreach($sideBarPosts as $post) { //loop the array
      echo '<h1>'. $post['title']. '</h1>';
      echo '<p>'. $post['post']. '</p>';
    }
$sideBarPosts=sidebar_query()//获取结果数组
foreach($sideBarPosts as$post){//循环数组
回显“.$post['title']”;
回显“”.$post['post'].

”; }
//设置与数据库的连接

$conn = mysql_pconnect($servername,$username,$password) or die("Can not Connect MySql Server!");
mysql_select_db($databasename,$conn) or die("Can not select Data Base!");
//选择要使用的数据库

$conn = mysql_pconnect($servername,$username,$password) or die("Can not Connect MySql Server!");
mysql_select_db($databasename,$conn) or die("Can not select Data Base!");
//当您想在php函数中查询SQL时,需要将连接($conn)传递给函数,如下所示。

function sidebar_query($condb)
   {
     $strSql = "SELECT sidebarposts FROM table";
     $result = mysql_query($strSql,$condb);
     return $result;
   }
//调用函数

 sidebar_query($conn);

这对我来说很有用,因为我使用我的网页。

阅读php文档,了解如何运行mysql查询。

参考文档:
旧方法
新方法
我相信您需要将mysql连接引用变量传递给函数。@Anthony,不需要,因为它无论如何都使用最新打开的连接。@joakimdahlstrom,如果这是他调用的第一个函数,则不会。是的,假设他的index.php页面首先调用该函数,而不调用其他函数。除非用户在别处启动DB参数,否则我认为它不会工作。我是基于他最初的问题,他对自己不太自信。仅此而已。我认为它无法访问该连接,因为它不在函数范围内,即使它是最后一个打开的连接。如果它工作,它工作,但我总是传递我的连接变量,只是为了最佳实践的缘故。