У меня есть несколько запросов, которые я хочу запустить на одной странице. Я, очевидно, не хочу помещать фактические запросы в свой файл шаблона, поэтому я думаю, что я хочу, чтобы построить функцию и вызвать ее везде, где я хочу, чтобы результаты запроса отображались. Правильно?
Так, например, у меня будет <?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». ниже. Похоже, было бы целесообразно включить это в функцию. Как я могу создать «общую» функцию, которую я мог бы использовать для каждого запроса?
<?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; }
function sidebar_query(){ $rValue = ""; $query = ("SELECT sidebarposts FROM table;"); $result = mysql_query($query); if ($row = mysql_fetch_array($result)){ $rValue = $row['sidebarposts']; } return $rValue; }
Теперь вы можете echo 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 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!");
// Выбор базы данных, которую вы хотите использовать.
mysql_select_db($databasename,$conn) or die("Can not select Data Base!");
// Если вы хотите запросить SQL внутри php-функции, вам необходимо передать соединение ($ conn) в функцию, как показано ниже.
function sidebar_query($condb) { $strSql = "SELECT sidebarposts FROM table"; $result = mysql_query($strSql,$condb); return $query; }
// Функция вызова
sidebar_query($conn);
Это работа для меня, как я использую с моей веб-страницы.
Прочитайте php doc о том, как запустить mysql-запрос.
Yay
вас есть запрос, теперь вам нужно что-то сделать с ним:
mysql_query($query);
например, может работать для вас 🙂
Вы хотите запустить запрос и вернуть результат в любом формате, который вы хотите использовать в своем шаблоне .. так что для необработанного номера вы хотите вернуть целое число, поскольку сообщения в боковой панели возвращают массив сообщений или результат mysql.
Вы должны сделать «« Было возвращено X сообщений! » «вещь совершенно другая функция, которую вы можете передать целому числу и необязательную строку. Таким образом, вы можете использовать его за тонну вещей. например:
function format_nb_records($nb_records, $format = 'There were %s posts returned!'){ return sprintf($format, $nb_records); }
Хотя в этом случае я не думаю, что действительно достаточно дополнительной логики, чтобы гарантировать ее включение в функцию. Я бы просто сделал это прямо в моем шаблоне.
Хорошим примером того, где что-то вроде этого полезно, является то, что если вы хотите использовать функциональность «время в словах», например «Вчера» или «10 минут назад», тогда вы должны были бы рассчитать, какую строку использовать, отформатировать и вернуть ее ,
Хотя в этом случае я не думаю, что действительно достаточно дополнительной логики, чтобы гарантировать ее включение в функцию. Я бы просто сделал это прямо в моем шаблоне.
Хорошим примером того, где что-то вроде этого полезно, является то, что если вы хотите использовать функциональность «время в словах», например «Вчера» или «10 минут назад», тогда вы должны были бы рассчитать время, в которое будет использоваться строка, отформатировать ее
Вам необходимо передать имя подключения к базе данных для работы следующим образом:
У вас уже есть имя подключения, мое – $ 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; }
Хороший день, Мурат ATASOY