【问题标题】:Table not Echoing out if another Table has a Zero value如果另一个表的值为零,则表不回显
【发布时间】:2010-05-12 20:10:12
【问题描述】:

如果与mysql_query($sqlStr1) 关联的结果的值为零,则下面带有mysql_query($sqlStr3) 的HTML 表(在其行中带有“已加入”一词的表)不会回显。即使mysql_query($sqlStr3) 返回结果也会发生这种情况。

换句话说,如果给定的 loginid 在 MySQL 表“login”中有条目,但在 MySQL 表“submission”中没有条目,则与 mysql_query($sqlStr3) 关联的表不会回显。

我不明白为什么 MySQL 的“提交”表会对mysql_query($sqlStr3) 产生任何影响,因为 $sqlStr3 只处理另一个名为“登录”的 MySQL 表,如下所示。

任何想法为什么会发生这种情况?

提前致谢,

约翰·W.

<?php

echo '<div class="profilename">User Profile for </div>';
echo '<div class="profilename2">'.$profile.'</div>';

$tzFrom = new DateTimeZone('America/New_York'); 
$tzTo = new DateTimeZone('America/Phoenix'); 

  $profile = mysql_real_escape_string($_GET['profile']);

  $sqlStr = "SELECT l.username, l.loginid, s.loginid, s.submissionid, s.title, s.url, s.datesubmitted, s.displayurl
               FROM submission AS s
         INNER JOIN login AS l
                 ON s.loginid = l.loginid
              WHERE l.username = '$profile'
           ORDER BY s.datesubmitted DESC";

  $result = mysql_query($sqlStr);

$arr = array(); 
echo "<table class=\"samplesrec1\">";
while ($row = mysql_fetch_array($result)) { 
    $dt = new DateTime($row["datesubmitted"], $tzFrom); 
    $dt->setTimezone($tzTo);
    echo '<tr>';
    echo '<td class="sitename3">'.$dt->format('F j, Y &\nb\sp &\nb\sp g:i a').'</a></td>'; 
    echo '<td class="sitename1"><a href="http://www.'.$row["url"].'">'.$row["title"].'</a></td>';
    echo '</tr>';
    }
echo "</table>";    

  $sqlStr1 = "SELECT l.username, l.loginid, s.loginid, s.submissionid, s.title, s.url, s.datesubmitted, s.displayurl, l.created, count(s.submissionid) countSubmissions
               FROM submission AS s
         INNER JOIN login AS l
                 ON s.loginid = l.loginid
              WHERE l.username = '$profile'";


  $result1 = mysql_query($sqlStr1);

$arr1 = array(); 
echo "<table class=\"samplesrec2\">";
while ($row1 = mysql_fetch_array($result1)) { 
    echo '<tr>';
    echo '<td class="sitename5">Submissions: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$row1["countSubmissions"].'</td>';
    echo '</tr>';
    }
echo "</table>";    


  $sqlStr2 = "SELECT l.username, l.loginid, c.loginid, c.commentid, c.submissionid, c.comment, c.datecommented, l.created, count(c.commentid) countComments
               FROM comment AS c
         INNER JOIN login AS l
                 ON c.loginid = l.loginid
              WHERE l.username = '$profile'";


  $result2 = mysql_query($sqlStr2);

$arr2 = array(); 
echo "<table class=\"samplesrec3\">";
while ($row2 = mysql_fetch_array($result2)) { 
    echo '<tr>';
    echo '<td class="sitename5">Comments: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$row2["countComments"].'</td>';
    echo '</tr>';
    }
echo "</table>";    


$tzFrom3 = new DateTimeZone('America/New_York'); 
$tzTo3 = new DateTimeZone('America/Phoenix'); 


  $sqlStr3 = "SELECT created, username
               FROM login 
              WHERE username = '$profile'";


  $result3 = mysql_query($sqlStr3);

$arr3 = array(); 
echo "<table class=\"samplesrec4\">";
while ($row3 = mysql_fetch_array($result3)) { 
    $dt3 = new DateTime($row3["created"], $tzFrom3); 
    $dt3->setTimezone($tzTo3);
    echo '<tr>';
    echo '<td class="sitename5">Joined: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$dt->format('F j, Y').'</td>';
    echo '</tr>';
    }
echo "</table>";    

?>

</body>
</html>

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    如果我对问题的理解正确,您需要在您拥有的代码的最后一行之一中回显 $dt3-&gt;format('F j, Y') 而不是 $dt-&gt;format('F j, Y')

    【讨论】:

      【解决方案2】:
      while ($row3 = mysql_fetch_array($result3)) { 
          $dt3 = new DateTime($row3["created"], $tzFrom3); 
          $dt3->setTimezone($tzTo3);
          echo '<tr>';
          echo '<td class="sitename5">Joined: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$dt->format('F j, Y').'</td>';
          echo '</tr>';
          }
      echo "</table>"; 
      

      您是否希望在此处的回显中调用 $dt3->format('F j, Y'),而不是 $->format('F j, Y')?我看不到 $dt3 有任何其他用途。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-10
        • 2013-02-18
        • 1970-01-01
        • 2019-03-18
        相关资源
        最近更新 更多