2016-04-09 106 views
0

所以我一直在研究這段代碼。我相信我非常接近。我的if聲明位於我的while循環內,它沒有在它想要顯示的區域顯示任何數據。我知道MySQL是舊的,並棄用。一旦我弄清楚了,我會改變它。mysql取數組沒有顯示結果

$result = mysql_query("SELECT * FROM inventoryTable",$db); 
$result2 = mysql_query("SELECT * FROM users WHERE username='$username' and sub = 'yes'",$db); 
echo "<TABLE style=\"background-color: #FFFFFF; border: 10px solid A4A4A4;\">"; 
echo"<TR><TD>"."<B>Title</B>"."</td>"; 
echo"<TD>"."<B>Authors First Name</B>"."</td>"; 
echo"<TD>"."<B>Authors Last Name</B>"."</td>"; 
echo"<TD>"."<B>ISBN</B>"."</td>"; 
echo"<TD>"."<B>Publisher</B>"."</td>"; 
echo"<TD>"."<B>Course Number</B>"."</td>"; 
echo"<TD>"."<B>Source</B>"."</td></TR>"; 
while ($myrow = mysql_fetch_array($result)) 
    { 
     echo "<TR><TD>".$myrow["title"]."</td>"; 
     echo "<TD>".$myrow["authorsFirst"]."</td>"; 
     echo"<TD>".$myrow["authorsLast"]."</td>"; 
     echo "<TD>".$myrow["ISBN"]."</td>"; 
     echo "<TD>".$myrow["publisher"]."</td>"; 
     echo "<TD>".$myrow["courseNum"]."</td>"; 
     while ($subResults = mysql_fetch_row($result2)) 
      { 
       If($subResults == 'yes') 
      { 
       echo "<td>".$myrow["source"]."</td>"; 
      } else { 
       echo "<TD>"."Please subscribe to View"."</td>"; 
     } 
       echo "</TABLE>"; 
     } 
    } 
?> 

這是我的代碼中沒有顯示任何結果的部分。 而

while ($myrow = mysql_fetch_array($result)) 
    { 
     echo "<TR><TD>".$myrow["title"]."</td>"; 
     echo "<TD>".$myrow["authorsFirst"]."</td>"; 
     echo"<TD>".$myrow["authorsLast"]."</td>"; 
     echo "<TD>".$myrow["ISBN"]."</td>"; 
     echo "<TD>".$myrow["publisher"]."</td>"; 
     echo "<TD>".$myrow["courseNum"]."</td>"; 
     while ($subResults = mysql_fetch_row($result2)) 
      { 
       If($subResults == 'yes') 
      { 
       echo "<td>".$myrow["source"]."</td>"; 
      } else { 
       echo "<TD>"."Please subscribe to View"."</td>"; 
     } 
       echo "</TABLE>"; 
     } 
    } 

我希望我的會話用戶能夠看到從我的庫存表的來源,如果他們有在子領域的肯定。如果他們在子字段中沒有「是」,他們將看到please subscribe to view。我在做mysql_fetch不正確或有問題,因爲我有兩個while while循環一次。

+0

除了=/==問題 - $ username可能包含一個字符串值,是嗎?但是你比較它是一個數組。 – CBroe

+0

當然,你的inner while循環只在外部while循環的第一次迭代中循環一次。之後,'mysql_fetch_array($ result2)'將繼續返回false,所以循環體不再被執行。如果要再次循環,則需要使用'mysql_data_seek'來重置該結果集的記錄指針。 – CBroe

+0

現在,MySQL擴展已經被棄用很久了,並且已經在PHP 7中完全刪除。您應該使用MySQLi或PDO。 – CBroe

回答

1

你需要有「==」比較兩個值,否則,你的第二個值分配給第一個變量:

...If($username == $subResults)... 

或使用種類和含量,使用進行嚴格比較「== =」

If($username === $subResults) 

也是我想到的是代碼應該是

...If($subResults ==="yes"){echo"....///desired content";}else{echo"...//alternate content";}... 

和你缺少回聲小號tatement並在代碼

"<td>".$myrow["source"]; 

關閉</td>應該

echo"<td>".$myrow["source"]."</td>"; 
其實

- 你不缺少收盤TD在所有的細胞?

+0

沒有顯示'代碼'「​​」。$ myrow [「source」];'code' still。該行只是空白,但每隔一行都會正確加載我的庫存表中的數據。 – Cory

+0

答覆修正 - 看看最後一半:) – gavgrif

+0

我現在得到一個錯誤。錯誤表示語法錯誤,意外''''(T_CONSTANT_ENCAPSED_STRING),期待','或';'第42行是\t'代碼'「。$ myrow [」authorsFirst「]。」「'code' – Cory