Jump to content

[SOLVED] PHP Within PHP: IF Statement


EternalSorrow

Recommended Posts

I've been searching for an answer to a question I have.  I know PHP can be embedded within itself, but I'm curious if an IF statement can be the code embedded into the larger PHP statement.

 

Does anyone know of a way to do this?

 

Here is the example code I'm playing with:

 

echo '<h3>'.$title.'<?php if($session->logged_in){ echo " - <a href="edit.php?cmd=edit&title='.$title.'">Edit</a>"; }; ></h3>';

Link to comment
Share on other sites

@thorpe

 

I'm afraid the code you gave me doesn't work for some reason.  The logged_in portion does appear, but the $title field at the head does not.  I've tried numerous ways of adjusting it, but all end in either error or still a blank area where the $title should be.

 

 

@roopurt18

 

I know PHP can be embedded within itself...

 

You are misunderstanding something about PHP because that statement makes little logical sense.  Perhaps if you clarify what you meant we can steer you in the right direction.

 

If I am misunderstanding something about PHP, I do wish you'd tell me what this is.  Your remark is cryptic and, to put it frank, I have no idea what you're talking about nor asking.

Link to comment
Share on other sites

@thorpe

 

I'm afraid the code you gave me doesn't work for some reason.  The logged_in portion does appear, but the $title field at the head does not.  I've tried numerous ways of adjusting it, but all end in either error or still a blank area where the $title should be.

 

 

@roopurt18

 

I know PHP can be embedded within itself...

 

You are misunderstanding something about PHP because that statement makes little logical sense.  Perhaps if you clarify what you meant we can steer you in the right direction.

 

If I am misunderstanding something about PHP, I do wish you'd tell me what this is.  Your remark is cryptic and, to put it frank, I have no idea what you're talking about nor asking.

 

He is talking about the fact that you can't embed php code within a string and expect it to execute.

 

I see nothing logically wrong with my code, where is $title defined? Can we see the html produced by my code?

Link to comment
Share on other sites

I use the word 'embed' here because I can think of no better word which describes placing one object within another, without of course using that long string of words from it's definition.

 

And here's the entirety of the code.  By the length you can tell why I wish to, um, place the logged_in statement within the echo as otherwise I would be forced to duplicate this twice on the same page, one for logged_in users to view and another for guests.

 

<?php

mysql_connect(localhost,user,pw);
@mysql_select_db(db) or die( "Unable to select database");

$query=sprintf("SELECT * from fanfiction WHERE `story`= '%s' ORDER BY id asc ", mysql_real_escape_string($story));
$result = mysql_query( $query ) or die(mysql_error());

$screen = $_GET['screen'];
$PHP_SELF = $_SERVER['PHP_SELF'];

$rows_per_page=1;
$total_records=mysql_num_rows($result);
$pages = ceil($total_records / $rows_per_page);
$last = $pages -1;

if (!isset($screen))
$screen=0;
$start = $screen * $rows_per_page;
$query .= "LIMIT $start, $rows_per_page";
$result= mysql_query($query) or die
("Could not execute query : $query." . mysql_error());

while ($row = mysql_fetch_array($result))
{
extract($row);

echo '<h3>' . $title . ($session->logged_in) ? ' - <a href="edit.php?cmd=edit&title=' . $title . '">Edit</a>' : '' . '</h3>'.$chapter.'';

}
echo '<ul class="series">';

if ($screen == 0)
{
}
else
{
echo "<li><a href=\"$PHP_SELF?story=$story&screen=0\">First</a>";
}

// Put Code C Here

        // create the dynamic links
        if ($screen > 0) {
        $j = $screen - 1;
        $url = "$PHP_SELF?story=$story&screen=$j";
        echo "<li><a href=\"$url\">Previous</a>";    // 
        }
        
        // page numbering links now
        $p = 3;                                // number of links to display per page
        $lower = $p;                    // set the lower limit to $p
        $upper = $screen+$p;        // set the upper limit to current page + number of links per page
        while($upper>$pages){
            $p = $p-1;
            $upper = $screen+$p;
        }
        if($p<$lower){
            $y = $lower-$p;
            $to = $screen-$y;
            while($to<0){
                $to++;
            }
        }
        
        if(!empty($to))
        {
            for ($i=$to;$i<$screen;$i++){
                $url = "$PHP_SELF?story=$story&screen=" . $i;
                $j = $i + 1;
                echo "<li><a href=\"$url\">$j</a>";
            }
        }
        
        for ($i=$screen;$i<$upper;$i++) {
            $url = "$PHP_SELF?story=$story&screen=" . $i;
            $j = $i + 1;
            echo "<li><a href=\"$url\">$j</a>";
        }
        
        if ($screen < $pages-1) {
        $j = $screen + 1;
        $url = "$PHP_SELF?story=$story&screen=$j";
        echo "<li><a href=\"$url\">Next</a>";
        }

if ($screen == $last)
{
}
else {
echo "<li><a href=\"$PHP_SELF?story=$story&screen=$last\">Last</a>";
}

        ?>

Link to comment
Share on other sites

@roopurt18

 

I know PHP can be embedded within itself...

 

You are misunderstanding something about PHP because that statement makes little logical sense.  Perhaps if you clarify what you meant we can steer you in the right direction.

 

If I am misunderstanding something about PHP, I do wish you'd tell me what this is.  Your remark is cryptic and, to put it frank, I have no idea what you're talking about nor asking.

 

I'll try and clarify with an analogy.

I know computers can be embedded within themselves.

Does that statement make sense?  According to Joe and how he understands computers, it must make perfect sense.  But if you are like me and have a pretty extensive knowledge of computers, then you are left asking yourself, "What in the Hell is Joe talking about?"

 

Joe has obviously misunderstood something about computers because he is making statements that do not make logical sense.  But how am I to know what Joe has misunderstood?  Should I give Joe a history of computers, their development, their components, the software they run, etc?  That could take weeks!

 

I have a fairly good understanding of programming languages and to say:

I know you can embed <random language> into itself.

Is highly ambiguous and can mean a myriad of things.

 

So based on your original statement, which is ambiguous, can be interpreted in who knows how many different ways, and doesn't make sense:

I know PHP can be embedded within itself...

 

The only concrete thing I am able to tell you is:

You have misunderstood something about PHP.  I have no idea what it is you have misunderstood because your statement doesn't make any sense (it's equivalent to dividing by zero).  But perhaps if you clarify what you mean by "embedding PHP in itself", I can determine what exactly you have misunderstood and I can help you understand a particular PHP concept better.

 

I don't know how to be any more clear than that.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.