[英]Putting a SQL query in a PHP function
我有幾個要在單個頁面上運行的查詢。 我顯然不想將實際查詢放在我的模板文件中,所以我想我想做的是構造一個 function 並在我希望查詢結果顯示的任何地方調用它。 正確的?
因此,例如,我將在側邊欄中添加 <? <?php sidebar_query()?>
<?php footer_query()?>
等。
所以,我只是制作了一個名為functions.php
的文件,是否包含 PHP 並在其中放入類似的內容?
<?php
function sidebar_query(){
$query = ("SELECT sidebarposts FROM table;");
return $query;
}
?>
還是您使用echo
而不返回任何內容?
<?php
function sidebar_query(){
$query = ("SELECT sidebarposts FROM table;");
echo $query;
}
?>
沿着完全相同的路線,我想計算返回的結果,並顯示“有 X 個帖子返回”。 下方留言。 似乎把它放在 function 中也有意義嗎? 我將如何制作一個可以用於每個查詢的“通用” function?
<?php
function number_of_results(){
$num_rows = mysql_num_rows();
echo $num_rows;
}
?>
如果有人能給我我應該在這里努力實現的目標的理論要點,我將不勝感激。
感謝您幫助初學者。
特里
我想我明白你的意思。
像這樣返回值
function sidebar_query(){
$rValue = "";
$query = ("SELECT sidebarposts FROM table;");
$result = mysql_query($query);
if ($row = mysql_fetch_array($result)){
$rValue = $row['sidebarposts'];
}
return $rValue;
}
現在你可以回顯 sidebar_query(); 或者你想用它做什么。
通過執行("SELECT sidebarposts FROM table;")
您實際上並沒有做任何事情,您只是將字符串存儲為變量。
一個簡單的例子是
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>';
}
編輯。 我看到你想讓 function 直接打印它,如果你願意,你可以這樣做而不是返回數組。
function sidebar_query(){
$query = mysql_query("SELECT * FROM table;");
$result = $conn->query($query);
$resArr = array(); //create the result array
while($row = $result->fetch_assoc()) { //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>';
}
// 設置與數據庫的連接
$conn = mysql_pconnect($servername,$username,$password) or die("Can not Connect MySql Server!");
// Select 要使用的數據庫
mysql_select_db($databasename,$conn) or die("Can not select Data Base!");
// When you want to query SQL inside php function, you need to pass connection($conn) to the function as below.
function sidebar_query($condb)
{
$strSql = "SELECT sidebarposts FROM table";
$result = mysql_query($strSql,$condb);
return $result;
}
// 調用 function
sidebar_query($conn);
當我在我的網頁上使用時,這對我有用。
盡管在這種情況下,我認為沒有足夠的額外邏輯來保證將其包裝在 function 中。 我可能會直接在我的模板中執行此操作。
像這樣有用的一個很好的例子是,如果你想做“用文字表達的時間”功能,比如“昨天”或“10 分鍾前”,那么你可以傳入時間,計算要使用的字符串,格式化它
您需要像這樣將數據庫連接名稱傳遞給 function,
您已經有一個連接名稱,我的是 $connect_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);
這對我有用。
我也將它用於medoo.min 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;
}
祝你有美好的一天, Murat ATASOY
閱讀 php 文檔,了解如何運行 mysql 查詢。
Yay
的,您有查詢,現在您需要對其進行處理:
mysql_query($query);
例如可能對你有用:-)
你想運行查詢並以你想在模板中使用的任何格式返回結果。所以對於你想返回 integer 的原始數字,對於側邊欄帖子返回一個帖子數組或 mysql 結果。
你應該做“'有 X 個帖子返回。' " 完全不同的 function 可以傳入 integer 一個可選字符串。 這樣你就可以將它重用於大量的東西:例如:
function format_nb_records($nb_records, $format = 'There were %s posts returned!'){
return sprintf($format, $nb_records);
}
盡管在這種情況下,我認為沒有足夠的額外邏輯來保證將其包裝在 function 中。 我可能會直接在我的模板中執行此操作。
像這樣有用的一個很好的例子是,如果你想做“用文字表達的時間”功能,比如“昨天”或“10 分鍾前”,那么你可以傳入時間,計算要使用的字符串,格式化並返回它.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.