嵌套查询';It’不起作用


Nesting of query's not working

我是php的新手,我写了一段代码,我嵌套了两个查询,即一个查询在另一个查询中,但问题是它向我显示了第二个查询的右大括号的意外"}"错误,请帮我。

PHP

<?php
    $con = mysqli_connect("localhost","**","**","**");
    $query = ("SELECT * FROM status");
    $result = mysqli_query($con, $query);
        while ($row = $result->fetch_assoc()) 
            {
                echo '
                <div class="col-lg-12">
                    <div class="social-feed-box">' . 
                    $query = ("SELECT via FROM status WHERE IF(via='" . $_SESSION['via'] . "' ");
                        $result = mysqli_query($con, $query);
                        while ($row = $result->fetch_assoc()) 
                        {
                        '<div class="pull-right social-action dropdown">
                            <button data-toggle="dropdown" class="dropdown-toggle btn-white">
                                <i class="fa fa-angle-down"></i>
                            </button>
                            <ul class="dropdown-menu m-t-xs">
                                <li><a href="post_delete.php">Delete</a></li>
                            </ul>
                        </div>' .}.
                        '<div class="social-avatar">
                            <a href="" class="pull-left">' . 
                            '</a>
                            <div class="media-body">
                                <a href="#">' 
                                    .$row['via'].
                                '</a>' . 
                                '<small class="text-muted">' .$row['created_at']. '</small>
                            </div>
                        </div>
                        <div class="social-body">' . 
                           '<p>' .$row['status']. '</p>
                            <div class="btn-group">
                                <button class="btn btn-white btn-xs"><i class="fa fa-thumbs-up"></i> Like this!</button>

                            </div>
                        </div>
                        <div class="social-footer">

                            <div class="social-comment">
                                <a href="" class="pull-left">' . 
                                    '<img alt="image" src="'.$_SESSION['doc'].'">' . 
                                '</a>
                                <div class="media-body">
                                <div class="form-group">
                                    <textarea class="form-control" placeholder="Write comment..."></textarea>
                                    </div>' . 
                                    '<div class="col-sm-1 form-group"><input type="submit" class="btn btn-primary btn-block" value="Post" align="left"></div>
                                </div>' . 
                                    '<div class="chat-message right">
                                        <div class="message">' . 
                                            '<a class="message-author" href="#">'  .$_SESSION['via']. '</a>' . 
                                            '<span class="message-date">' . '</span>
                                            <span class="message-content">
                                            Hello how are you?
                                            </span>
                                        </div>
                                    </div>
                            </div>
                        </div>
                    </div>
                </div>';
                }
?>

我建议您使用任何IDE,如eclipse或sublime还有两点需要记住。。。

  1. 通过打印带有echo的html标签,在PHP中完成所有操作。

    <?php echo "<p>this p tag in php style</p>"; ?>

  2. HTML和PHP标签的混合

    <p> <?php echo "this p tag is in partial PHP style"; ?> </p>

我希望这能帮助。。。

嵌套查询位于echo内部。尝试结束回显,并在第二个查询后开始新的回显。对$row使用不同的变量可能是明智的,但这并不重要。

<?php
$con = mysqli_connect("localhost", "**", "**", "**");
$query = ("SELECT * FROM status");
$result = mysqli_query($con, $query);
while ($row = $result->fetch_assoc()) {
echo '
            <div class="col-lg-12">
                <div class="social-feed-box">';

$query = ("SELECT via FROM status WHERE IF(via='" . $_SESSION['via'] . "') ");
$result = mysqli_query($con, $query);
while ($row = $result->fetch_assoc()) {
    echo '<div class="pull-right social-action dropdown">
                        <button data-toggle="dropdown" class="dropdown-toggle btn-white">
                            <i class="fa fa-angle-down"></i>
                        </button>
                        <ul class="dropdown-menu m-t-xs">
                            <li><a href="post_delete.php">Delete</a></li>
                        </ul>
                    </div>';
}
echo '<div class="social-avatar">
                        <a href="" class="pull-left"></a>
                        <div class="media-body">
                            <a href="#">'
. $row['via'] .
'</a>' .
'<small class="text-muted">' . $row['created_at'] . '</small>
                        </div>
                    </div>
                    <div class="social-body">' .
'<p>' . $row['status'] . '</p>
                        <div class="btn-group">
                            <button class="btn btn-white btn-xs"><i class="fa fa-thumbs-up"></i> Like this!</button>

                        </div>
                    </div>
                    <div class="social-footer">

                        <div class="social-comment">
                            <a href="" class="pull-left">' .
'<img alt="image" src="' . $_SESSION['doc'] . '">' .
'</a>
                            <div class="media-body">
                            <div class="form-group">
                                <textarea class="form-control" placeholder="Write comment..."></textarea>
                                </div>' .
'<div class="col-sm-1 form-group"><input type="submit" class="btn btn-primary btn-block" value="Post" align="left"></div>
                            </div>' .
'<div class="chat-message right">
                                    <div class="message">' .
'<a class="message-author" href="#">' . $_SESSION['via'] . '</a>' .
'<span class="message-date">' . '</span>
                                        <span class="message-content">
                                        Hello how are you?
                                        </span>
                                    </div>
                                </div>
                        </div>
                    </div>
                </div>
            </div>';
}
?>

@LordMarti走在了正确的道路上。您可以在"echo"中编写PHP,但它会忽略它并尝试将其打印出来。尝试将PHP(和SQL查询)排除在任何echoe和HTML标记之外。

Maby尝试关闭您的PHP,继续使用HTML,然后重新打开您的PHP。

<?php
$con = mysqli_connect("localhost","**","**","**");
$query = ("SELECT * FROM status");
$result = mysqli_query($con, $query);
    while ($row = $result->fetch_assoc()) 
        {
            ?>
            <div class="col-lg-12">
                <div class="social-feed-box">' . 
            <?php
                $query = ("SELECT via FROM status WHERE IF(via='" . $_SESSION['via'] . "' ");
                    $result = mysqli_query($con, $query);
                    while ($row = $result->fetch_assoc())