У меня есть реальные проблемы с этим кодом, в основном у меня есть внешний сервер, который я пытаюсь вызвать и добавить данные из этого в один сайт данных PHP. Однако по какой-то причине после прочтения нагрузки на эту тему я все еще не могу заставить это работать.
Ниже приведен код, и это концепция, которую я имею в виду, но по какой-то причине мне не повезло в том, чтобы заставить это работать правильно?
Любая помощь приветствуется:
<html>
<head>
</head>
<body>
<?php
// Determine Yesterday
date_default_timezone_set('Europe/London');
$m= date("m"); // Month value
$de= date("d"); //today's date
$y= date("Y"); // Year value
$yd = date('d', mktime(0,0,0,$m,($de-1),$y));
$ym = date('m', mktime(0,0,0,$m,($de-1),$y));
$yy = date('Y', mktime(0,0,0,$m,($de-1),$y));
$yest = $yy.'-'.$ym.'-'.$yd;
$cd = date("Y-m-d");
// Make a MySQL Connection
ini_set('mysql.connect_timeout', '240');
// Make a MySQL Connection
$con=mysql_connect("location", "Username", "Password");
// Check MySQL connection
if (mysql_connect_errno()) {
echo "Failed to connect to MySQL: " . mysql_connect_error();
}
$Test= mysql_query("SELECT * FROM DB1.Table WHERE date(DateCreated) between '$yest' and '$yest'") or die(mysql_error());
echo "<table border='1'>
<tr>
<th> DataField1 </th>
</tr>"
while($row=mysql_fetch_array($Test)){
echo "<tr>
<th>" .$row['DataField1']. "</th>
</tr><tr>
<th>" .$row['DataField2']. "</th>
</tr>";
}
echo"</table>";
mysql_close($con);
?>
</body>
<footer>
</footer>
</html>
Для некоторых я уверен, что это явно очевидная проблема, но я немного новичок в подключениях к базе данных. Этот текущий код ничего не производит на веб-странице при загрузке.
Ошибка метауровня:
date(DateCreated) between '$yest' and '$yest'
в основном многословная / бесполезная версия
date(DateCreated) = '$yest'
И если это должно быть «вчера», то весь ваш код искажения даты на PHP бессмыслен. Вы можете сделать это намного проще прямо в базе данных:
WHERE date(DateCreated) = (CURDATE() - INTERVAL 1 DAY)
И функциональные ошибки:
if (mysql_connect_errno()) {
Эта функция не существует. Функции mysql _ * () просто возвращают логическое значение FALSE, и вы проверите это следующим образом:
$db = mysql_connect(...);
if ($db === FALSE) {
die(mysql_error());
}
Для mysql_fetch_array: mysql_fetch_array($Test,MYSQL_ASSOC)
или используйте $ row [0] вместо $ row [‘DataField1’]. Вы получаете обычный массив, но пытаетесь использовать его как ассоциативный массив