私はこれらの2行のコードの違いを理解しようとしています。2つの違いは何ですか? (クエリの選択と結果の表示)
私は2ページあります。ACR.php
とwebPage1.php
です。 ACR.php
は、データベース接続が必要なページに含まれています。目標は、データベースから値を取得し、それをWebページに表示することです。
// ACR.php //
<?php
// Est. Connection
$dbc = mysqli_connect($ACR_host, $ACR_user, $ACR_pass, $ACR_tablename)
or die('Error communicating to MySQL server');
// Select value from row in table
$thisPort = $dbc->query("SELECT activePort FROM table1 ")->fetch_row()[0];
// Select value from row in table
$thatPort = "SELECT activePort FROM table1";
// Displays result
$result1 = mysqli_query($dbc, $thisPort);
$result2 = mysqli_query($dbc, $thatPort);
?>
webpage1.php
は$result1
をエコーときに正しい値を表示するのではなく'result not found'
をエコーしません。
// webPage1.php //
<?php include 'ACR.php';?>
<!--html-->
<tr>
<th>Port<span id="portDisplay"></span><sup></sup>:</th>
<td id="showPort" style="text-align:left;width:75%;">
<?php
session_start();
if (mysqli_num_rows($result1) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result1)) {
echo " " . $row["activePort"];
// echo $row;
}
} else {
echo "result not found";
}
mysqli_close($dbc);
?>
</td>
</tr>
Iは$result2
エコー場合は、正しい値は、データベーステーブルから表示します。
これはなぜですか?これをどうする? $thisPort
と$thatPort
の両方がテーブル内で同じ行を呼び出していませんか?
更新日:ローカルとリモートアドレスを取得するときに、部分的に$thisPort
を使用します。だから私は$thisPort
のための現在の構文を使用して好きですが、$thatPort
の構文に変更すると、ページがクラッシュします。なぜこの値をデータベースから取り出すことができるのですか?このメソッドを使用すると、ページにポートを表示する必要はありません。
元のvar($thatPort
)が既にこれを実行しているときに、データベースから値をエコーする必要はありませんが、余分な変数($thatPort
)を開始したくありません。
サイドノートでは、何かをエコー(送信)する前に 'session_start();'を呼び出す必要があります。そうしないと、ヘッダーに関するエラーが発生します。 http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php –
私はエコーする前に 'session_start()'をまだ呼びませんか? ( 'webPage1.php'を参照)、あるいは' ACR.php'を参照していますか?私は 'ACR.php'に何もエコーしていません。 – JustADrone
あなたはhtmlコード(テーブル行とセル)を送信しています。 session_startを呼び出す前にヘッダーをエコー、プリント、送信、または変更すると失敗します。あなたが問題にぶつかるか、あなたが私と議論するまで無視して待つことができます。 –