Intereting Posts

Ввод SQL-запроса в функцию PHP

У меня есть несколько запросов, которые я хочу запустить на одной странице. Я, очевидно, не хочу помещать фактические запросы в свой файл шаблона, поэтому я думаю, что я хочу, чтобы построить функцию и вызвать ее везде, где я хочу, чтобы результаты запроса отображались. Правильно?

Так, например, у меня будет <?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