-1

私がphpに慣れていない人を助けてください。および PHP の学習 自分の組織のプロジェクトを作成したいと考えています。ワードプレスをインストールしました。ここで、Mysql データベースから Web ページを作成して、テーブル形式で日付を表示したいと考えています。これが私のコードです。見つからないのはどこが悪いのですか?空白のページが表示されます。これはテスト用です

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Tables from MySQL Database</title>

<style type="text/css">
table.db-table          { border-right:1px solid #ccc; border-bottom:1px solid #ccc; }
table.db-table th       { background:#eee; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
table.db-table td       { padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
</style>

</head>
<body>
<table>
<?php
/* connect to the db */
$connection = mysql_connect('localhost','user','password');
mysql_select_db('test',$connection);

if (!@mysql_select_db('test',$connection)) {
exit('<p>Unable to locate the test ' . 
'database at this time.</p>');
}

$result = mysql_query("SELECT Annual_Sales, Name,address,phone FROM exampleco");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>   
<tr>
    <td><?=$row['Annual_Sales']; ?></td>
    <td><?=$row['name']; ?></td>
    <td><?=$row['address']; ?></td>
    <td><?=$row['phone']; ?></td>
</tr>  
<?php
}

mysql_free_result($result);

?>
</table>
</body>
</html>
4

2 に答える 2

2

これを試してみてください... mysql_select_db() 関数のエラー抑制を解除し、Web ブラウザに強制的にエラーを表示します。

最初のリビジョン

<?php
error_reporting(E_ALL); // Report on all errors
ini_set('display_errors', '1'); // Display those errors through the web page.
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Tables from MySQL Database</title>

<style type="text/css">
table.db-table          { border-right:1px solid #ccc; border-bottom:1px solid #ccc; }
table.db-table th       { background:#eee; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
table.db-table td       { padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
</style>

</head>
<body>
<table>
<?php
/* connect to the db */
$connection = mysql_connect('localhost','user','password');
mysql_select_db('test',$connection);

if (!mysql_select_db('test',$connection)) {
exit('<p>Unable to locate the test ' . 
'database at this time.</p>');
}

$result = mysql_query("SELECT Annual_Sales, Name,address,phone FROM exampleco");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>   
<tr>
    <td><?=$row['Annual_Sales']; ?></td>
    <td><?=$row['name']; ?></td>
    <td><?=$row['address']; ?></td>
    <td><?=$row['phone']; ?></td>
</tr>  
<?php
}

mysql_free_result($result);

?>
</table>
</body>
</html>

PHP でプログラミングしていて、そのコードがまだ本番用の準備が整っていない場合はいつでも、エラーが表示されていることを確認することを強くお勧めします。通常、PHP エラーは非常に便利で、開発プロセスを大幅に進めるのに役立ちます。

リビジョン 2

問題の追跡に役立つ追加の印刷が含まれます。

<?php
print 'Started.<br />';

error_reporting(E_ALL); // Report on all errors
ini_set('display_errors', '1'); // Display those errors through the web page.

print 'Errors Now Showing. To test, the following line should display an error:<br />';
print $a_var_which_doesnt_exist;
print '<br />';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Tables from MySQL Database</title>

<style type="text/css">
table.db-table          { border-right:1px solid #ccc; border-bottom:1px solid #ccc; }
table.db-table th       { background:#eee; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
table.db-table td       { padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; }
</style>

</head>
<body>
<table>
<?php
/* connect to the db */
$connection = mysql_connect('localhost', 'user', 'password');

if(!$connection) { // Ensure connection successful.
    die('<p>Could not connect: ' . mysql_error() . '</p>');
}

$db_sel = mysql_select_db('test', $connection);

if($db_sel) { // Ensure we're able to select database.
    die('<p>Could not select DB: ' . mysql_error() . '</p>');
}

$result = mysql_query('SELECT Annual_Sales, Name,address,phone FROM exampleco') or die('<p>Error with the query: ' . mysql_error() . '</p>');

if(mysql_num_rows($result)) {
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    ?>   
    <tr>
        <td><?=$row['Annual_Sales']; ?></td>
        <td><?=$row['name']; ?></td>
        <td><?=$row['address']; ?></td>
        <td><?=$row['phone']; ?></td>
    </tr>  
    <?php
    }
} else {
    ?>
    <tr><td colspan="4">NO ROWS RETURNED BY QUERY</td></tr>
    <?php
}

mysql_free_result($result);

?>
</table>
</body>
</html>
<?php print 'Finished.<br />';
于 2013-06-18T21:29:29.300 に答える
1

関数呼び出しの前に @ 記号を使用しています。これにより、その関数によってスローされたエラーが沈黙します。

詳細については、こちらをご覧ください: http://php.net/manual/en/language.operators.errorcontrol.php

@の前を削除してみて、@mysql_select_db('test',$connection)何かが得られるかどうかを確認してください。

于 2013-06-18T21:32:03.160 に答える