2013-08-30 45 views
1

我有这样的代码:mysql的获取数组错误2

<?php 
include 'config.php'; 
date_default_timezone_set('America/Los_Angeles'); 
$d = date('Y-m-d'); 
$m = date("m"); 
$day = date("d"); 
$t = date("His"); 
$ip = $_SERVER['REMOTE_ADDR']; 
$c = file_get_contents('http://api.wipmania.com/'.$ip); 

echo "<h2>ALL RESULTS TODAY:</h2><table>"; 
$_GET['c'] = $c; 
$sc = $_GET['sc']; 
if($c === "key"){ 
    if($sc === "t"){ 
     $result = "SELECT * FROM main WHERE date = '$d' ORDER BY time"; 
     while($row = mysqli_fetch_array($result)) 
    {echo "<tr><td>".$row['key'] . "</td><td> " . $row['country']."</td><td>".$row['ip']."</td></tr>"; } 
     } 

} 

echo '</table>'; 
?> 

我曾尝试没有$conmysqli_fetch_array($result),但它是一样的...

,但似乎没有任何事情...... 没有错误没有结果... 请帮助...谢谢!

+0

这一点,你需要在你的查询 - '$结果= mysqli_query($ CON,$ SQL)或死亡(mysqli_error($ CON))',其中$ sql是要运行的查询,$ con是有效的mysqli数据库连接。 – andrewsi

+0

请在编写任何**更多SQL接口代码之前,您必须阅读[正确的SQL转义](http://bobby-tables.com/php)以避免严​​重的[SQL注入漏洞](http: //bobby-tables.com/)。当使用'mysqli'时,您应该使用参数化查询和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)将用户数据添加到您的查询中。 **从不**使用字符串插值来实现这一点。 – tadman

回答

0

你忘了mysqli_query

更换

$result = "SELECT * FROM main WHERE date = '$d' ORDER BY time"; 

通过

$result =mysqli_query("SELECT * FROM main WHERE date = '$d' ORDER BY time"); 
1

您还没有连接到数据库或查询结果:

$conn = mysqli_connect($hostname,$username,$password,$dbname) or die(mysqli_error()); 
//... 
$your_query = "SELECT * FROM main WHERE date = '$d' ORDER BY time"; 
$result = mysqli_query($conn, $your_query); 
while ($row = mysqli_fetch_array($result)){ 
    //... 
} 
0

你忘了执行查询。

$result = mysqli_query($con, "SELECT * FROM main WHERE date = '$d' ORDER BY time");