2017-09-21 6 views
-6

私は少しプロジェクトを介してできる限り最高のPHPとSQLを学習しています。私は別のHTML形式でDBにデータを提出することができました。これは、データの取得とHTMLでの表示に使用するために私が今適応しているデータ(ここでは寛大な人々の助けを借りて)を正常に提出するために使用したPHPのPHPドキュメンテーションの欠点です。MySQL DBとHTMLの間のPHPブリッジが一見壊れました。なぜなのかご存知ですか?

これで、同じデータをHTMLで表示したいと考えています。ドキュメントはdbに接続し、5つのレコードが選択されていることを示しますが、実際にはテーブルは表示されません。コードの残りの部分は正しく動作しているようですので、ファイルの一番下のテーブル作成コードが問題だと思いますが、コードに問題は見られず、エラーもスローされません。このページの結果は、「レコードの選択されたレコード:5」であり、コードの残りの部分がうまく機能していることを確認しているようです。何か案は?あなたの寛大な助けに感謝します。

<?php 
$servername = "localhost"; 
$username = "user"; 
$password = "pass"; 
$dbname = "glophoco"; 

// Create connection 
$link = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
if($link->connect_error) { 
    die("Connection failed: " . $link->connect_error); 
} 

// Attempt select query execution 
$sql = ' 
    SELECT `first`, `last` 
    FROM `photos` 
'; 

$result = $link->query($sql); 
if ($result) { 
    echo "Records Selected"; 

} else { 
    die("Error: " . $sql . "<br>" . $link->error); 
    // Die will interrupts the page loading 
} 

$link->close(); 

// ***Now, create html diplay table*** 
print('N. of records: '.$result->num_rows.'<br />'); 
print('<table>'); 
while ($row = $result->fetch_object()){ 
    print('<tr><td>'.$row['last'].'</td><td>'.$row['first'].'</td></tr>'); 
} 
print('</table>'); 
?> 
+0

あなたのクエリが間違っている –

+0

が –

+0

写真から*建設的なアドバイスを選択します。あなたの仕事をする読者のための要求は、ここでうまく受信されません。私たちには毎日何百人もの人々が自由なコードを要求しており、支援を希望する人々はその要求に追いつくことができません。したがって、質問は具体的で焦点が合っており、元のポスターが統合作業を行わなければならないことを知っていることを尋ねられます。 – halfer

答えて

1

まず第一に、あなたは、同じファイル内のすべてのコードを置くことができますが、その拡張子は.phpでなければなりません。

私はHTML形式でDBにデータを送信することができました。

これは実際には当てはまりませんが、フォームはHTMLに作成されたデータを収集してPHPに送信し、DBの処理を行います。何かのウェブサイトにログインするようなもの、ユーザー名/パスワードを収集する2つの入力フィールドがあり、存在する場合DBに尋ねるPHPバリデーターに送信されます。

あなたのコードには、私はあなたの質問に答えるべき最後の数行を加えました。

HTMLとPHPの違いについて詳しく知りたい場合は、こちらをご覧ください。

<?php 
$servername = "localhost"; 
$username = "user"; 
$password = "pass"; 
$dbname = "glophoco"; 

$surname = ""; // Put here at least the first part of what you whant to find 

// Create connection 
$link = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
if($link->connect_error) { 
    die("Connection failed: " . $link->connect_error); 
} 

// Attempt select query execution 
$sql = ' 
    SELECT `first`, `last`, `email`, `photo_desc`, `photo`, `terms` 
    FROM `photos` 
    WHERE `last` LIKE "'.$surname.'%" -- If you don't need to filter, just delete this row 
'; 

$result = $link->query($sql); 
if ($result) { 
    // echo "New record created successfully"; 
    // You are NOT creating a new record, you are selecting an existing one 
} else { 
    die("Error: " . $sql . "<br>" . $link->error); 
    // Die will interrupts the page loading 
} 

$link->close(); 

// Now, this is what you are looking for 
print('N. of records: '.$result->num_rows.'<br />'); 
print('<table>'); 
while ($row = $result->fetch_object()){ 
    print('<tr><td>'.$row['last'].'</td><td>'.$row['first'].'</td></tr>'); 
} 
print('</table>'); 
?> 
+0

ありがとうございました!ほんとうにありがとう。私は正常にデータベースに再び接続することができましたが、不思議なことに、テーブルは印刷されませんでした。クエリを 'first'と 'last'のみを選択するように修正する必要がありますか?それがテーブルの印刷が正しくない原因になりますか?私はそれ以上のものを選択して表示するのがいいと思いますか?とにかく、もう一度ありがとう。私はまた、私が上に掲示したphp接続の文書から別個のHTMLフォームを持っていることを明確にしたかった。私はそれも私の質問に投稿すると便利だとは思わなかった。もう一度ありがとう。私は本当に助けに感謝します。 – Reibwo

+0

テーブルに行があることは確かですか? html出力の前後に 'print($ result-> num_rows);で選択した行数をテストすることができます。私は答えを更新しました**カウント出力を追加しました。 – SubjectDelta

+0

はい、私は確信しています。 dbには、5つの行(完全なレコード、null値ではない)があります。私はphpMyAdminでそれらを見ることができます。私はそれが何を生産するかを見るためにあなたのテストを試みます。 – Reibwo

関連する問題