How to get current page for php/mysql pagination - php

I created a simple php/mysql pagination and I'd like to get current page to set the class active . The answers I found around here do not necessarily represents the kind of pagination I have created which is very basic.
pagination
<?php
//pagination
$perpage=403;
if(isset($_GET['page'])){
$page=$_GET['page'];
}
else{
$page=1;
}
$offset=($page-1)*$perpage;
$sqlu="SELECT * FROM ve_users u
ORDER BY IsOnline DESC";
$resultu=mysqli_query($db,$sqlu);
$total_rows=mysqli_num_rows($resultu);
$total_pages=ceil($total_rows/$perpage);
echo"<div class='paginations'>";
echo "<a href='users.php?page=1'>«</a>";
for($i=1;$i<=$total_pages;$i++){
echo "<a class='' href='users.php?page=$i'>$i</a>";
}
echo "<a href='users.php?page=$total_pages'>»</a>";
echo"</div>";
?>

$page is where you capture the current page, so you have to change the pagination links' code block in the following way,
// your code
echo "<a href='users.php?page=1'>«</a>";
for($i=1;$i<=$total_pages;$i++){
if($i == $page){
echo "<a class='active' href='users.php?page=$i'>$i</a>";
}else{
echo "<a href='users.php?page=$i'>$i</a>";
}
}
echo "<a href='users.php?page=$total_pages'>»</a>";
// your code

Related

How to assign a PHP expression to a PHP variable

I need to do something like
$var = "Hello World ..the value is <?php echo 'XYZ' ?>";
Any help will be highly useful. I am stuck in this from the very long time but not able to acheive this. please help
Below is my PHP code that I need to assigned again to php variable (this variable will be passed to return of my ajax call)
<div class="photo-post">
<h4 class="h4-1">Some data...</h4>
<?php
$i=0;
$unique_seq="888094499";
$pic_counter=1;
foreach (glob("target/*".$unique_seq."*") as $filename)
{
$i++;
}
$total_pics=$i;
echo "<div id='post-photo-slider'>";
if($i>1)
{
echo "<a href='#' class='control_next_photo'>></a>";
echo "<a href='#' class='control_prev_photo'><</a>";
}
echo "<ul>";
foreach (glob("target/*".$unique_seq."*") as $filename)
{
echo "<li>";
echo "<div class='photos-slide-container'>";
echo "<img src='".$filename."' width='540px' height='225px'>";
echo "<span class='count-span-photos'>".$pic_counter." of ".$total_pics."</span>";
echo "</div>";
echo "</li>";
$pic_counter++;
}
if ($i==1)
{
echo "<li></li>";
}
echo "</ul>";
echo "</div><!-- post-photo-slider END -->";
echo "<hr class='hr4'>";
?>
</div><!-- photo end -->
you cannot do it in this way
$var = "Hello World ..the value is <?php echo 'XYZ' ?>";
when you return this string to your javascript php code cannot be execute on client side!!!!
why do not return do this simple way?
$var = "Hello World ..the value is " . "XYZ";

PHP Session SID URL - url does not have SID

I'm trying to learn how to use Sessions to maintain state between pages.
I think my problem is that I dont know how to escape properly. When I load the page im not getting the SID at the end of the url, instead I'm getting this:
mytestsite.com/login.php?<?php echo SID;?>
I have session_start() at the top of every page. And the session initialy works as I see the login name appear on the page and the Register and Login links, but then when I click to another page the session is not maintained.
The main site nav is dynamically createdusing an array($nav) and foreach loop. Here too I'm not sure how to echo the url and php SID constant. I don't think my syntax is correct.
//LOGIN BAR
echo "<nav id='statusBar'>";
echo "<ul>";
if(isset($_SESSION['userIn']) && $_SESSION['userIn'] != ''){
echo "<li id='userLo'>Log Out</li>";
echo "<li id='userLi'>User Logged In: " . $_SESSION['userIn'] . "</li>";
} else{
echo '<li>Register</li>';
echo '<li>Login</li>';
}
echo "</ul>";
echo "</nav>";
//START MAIN MENU
echo "<nav id='nav'> ";
$nav = array();
$nav['index.php?<?php echo SID;?>'] = 'Home';
$nav['public1.php?<?php echo SID;?>'] = 'Public 1';
$nav['public2.php?<?php echo SID;?>'] = 'Public 2';
$nav['members.php?<?php echo SID;?>'] = 'Members';
//CREATE UNORDERED LIST
echo '<ul>';
foreach ($nav as $key => $navValues) {
echo "<li>";
echo "<a href='$key'>$navValues</a>";
echo "</li>";
}
echo '</ul>';
echo "</nav>";
Below everything within echo '..'; is interpreted as html.
echo '<li>Login</li>';
If you want to use variables inside the string you have to concatenate them like so:
echo 'Login' ;
For concatenating php code take a look at:
http://php.net/manual/en/language.operators.string.php
and more about sessions:
http://php.net/manual/en/session.constants.php

show logout only if user is not logged in

I have a php script for the navigation bar. This is what I have but it keeps showing a blank page, if I remove the links and put a redirect instead it works without any problems.
<?php
session_start();
if (!isset($_SESSION['id'])) {
echo "<a href='create.php'>Create</a>"
echo "<a href='search.php'>Search</a>"
} else {
echo "<a href='logout.php'>Logout</a>"
echo "<a href='create.php'>Create</a>"
echo "<a href='search.php'>Search</a>"
}
?>
You're missing all the semicolons
echo "<a href='create.php'>Create</a>"; <---
echo "<a href='search.php'>Search</a>"; <----
}
else {
echo "<a href='logout.php'>Logout</a>"; <---
echo "<a href='create.php'>Create</a>"; <---
echo "<a href='search.php'>Search</a>"; <---
You forgot semicolons ; after every echo.
If you had placed error_reporting(-1); after your opening php tag you would have seen errors.

I want to add .html at the end or a full url fetch from Database and php query between echo

I am going to write following code for my blog. But problem, I am facing with:
"echo 'a href=".$query2['url']."</a>';" I want to add .$query2['url']. in echo and also want to add .html at the end of url like
"a href=".$query2['url'].html.".
If you have any idea please tell me as soon as possible thanks. Basically I am fetching this data from database .
<?php
$start=0;
$limit=5;
if(isset($_GET['id']))
{
$id=$_GET['id'];
$start=($id-1)*$limit;
}
$query=mysql_query("select * from tbl_services LIMIT $start, $limit");
echo "<div class='entry'>";
while($query2=mysql_fetch_array($query))
{
echo '<h2>' .$query2['name'].'</h2>';
echo "<p>".$query2['Contents']."</p>";
echo "<div class='meta'><i class='fa fa-clock-o'></i>".$query2['date']. "<b><i class='fa fa-user'></i></b> Written by <strong>Arslan Ali</strong> <b><i class='fa fa-comment-o'></i></b>" ;
echo "</div>";
}
echo "</div>";
$rows=mysql_num_rows(mysql_query("select * from tbl_services"));
$total=ceil($rows/$limit);
echo "<ul class='pagination'>";
if($id>1)
{
echo "<li><a href='?id=".($id-1)."' class='disabled'><<</a></li>";
}
for($i=1;$i<=$total;$i++)
{
if($i==$id) { echo "<li class='current'>".$i."</li>"; }
else { echo "<li><a href='?id=".$i."'>".$i."</a></li>"; }
}
if($id!=$total)
{
echo "<li><a href='?id=".($id+1)."' class='disabled'>>></a></li>";
}
echo "</ul>";
?>
(Updated)
Replace this line
echo '<h2>' .$query2['name'].'</h2>';
with
echo "<a href='".$query2['url'].".html'>".$query2['name']."</a>";
There is still one problem with the solution made by Syntax Error. The href is in single quotes. This is not the proper Syntax. It is easily remedied by reversing the use of the single and double quotes as I have shown here.
echo '' . $query2['name']. '';

Need help showing code results in a table

I'm trying to get this
for ($r = 1; $r <= 10; $r++) {
if ($shirt_info[$r][0] != "Select One")
{
echo "<div class='shirtinfo'>Order $r: </div>";
echo "<div class='shirtinfo'>Size: ".$shirt_info[$r][0]."</div>";
echo "<div class='shirtinfo'>Price: ".$shirt_info[$r][1]."</div>";
echo "<div class='shirtinfo'>Qty: ".$shirt_info[$r][2]."</div>";
echo "<div class='shirtinfo'>SPE: ".$shirt_info[$r][5]."</div>";
echo "<div class='shirtinfo'>LIA: ".$shirt_info[$r][6]."</div>";
echo "<div class='shirtinfo'>Vendor: ".$shirt_info[$r][7]."</div>";
echo "<div class='shirtinfo'>Style: ".$shirt_info[$r][8]."</div>";
echo "<div class='shirtinfo'>Color: ".$shirt_info[$r][9]."</div>";
echo "<div style='clear:both;'></div>";
}
}
to show in a table and I'm not really sure how. I keep getting a syntax error.
The code you are showing us has an unterminated for loop. Maybe this is the syntax error.
Your for does not end with }
I would also suggest that you use table and not div if you want to display a table.

Categories