Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Putting a SQL query in a PHP function

Tags:

php

mysql

I've got several queries I want to run on a single page. I obviously don't want to put the actual queries in my template file, so I think what I want to do is construct a function and call it wherever I want the query results to show up. Right?

So, for example, I'll have <?php sidebar_query()?> in the sidebar, <?php footer_query()?> in the footer, etc.

So, I just make a file called functions.php, do PHP include, and put something like this in there?

<?php
    function sidebar_query(){
        $query = ("SELECT sidebarposts FROM table;");
    return $query;
}
?>

or do you use echo and not return anything?

<?php
    function sidebar_query(){
        $query = ("SELECT sidebarposts FROM table;");
        echo $query;
}
?>

Along the exact same line, I'd like to count the results that get returned, and display a 'There were X posts returned!' message below. Seems like it would make sense to put this in a function too. How would I make a 'generic' function that I could reuse for each query?

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

I'd be extremely grateful if someone could give me the theoretical gist of what I should be trying to achieve here.

Thanks for helping a beginner.

Terry

like image 374
saltcod Avatar asked Nov 17 '25 07:11

saltcod


1 Answers

I think I get what you mean.

Return the value instead like this



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

Now you can echo sidebar_query(); or whatever you want to do with it.

like image 191
Fredrik Avatar answered Nov 18 '25 23:11

Fredrik



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!