2017-04-08 67 views
0

我想,我从MySQL得到我的PHP阵列 谁能帮助我的结果转换的MySQL结果到PHP数组

解决
<?php 
    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "women"; 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    $id=$_GET['id']; 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 
    $sql = "SELECT DAY(ADDDATE(`dateDebutC`, `dureeC`)) AS MONTHS, 
        DAY(ADDDATE(ADDDATE(`dateDebutC`, `dureeC`),`dureeR`))AS DAYS 
      FROM normalW 
      where id = '$id'"; 
    $result = $conn->query($sql); 
    if ($result->num_rows > 0) { 
     foreach($new_array as $array){ 
      echo $row['DAYS'].'<br />'; 
      echo $row['MONTHS'].'<br />'; 
     } 
    } else { 
     echo "0 results"; 
} 
$conn->close(); 
?> 

问题谢谢你们

+1

你从来没有设置'$ new_array' ...获取'$ result'。您还应该参数化该查询,您可以按照原样打开注射。 – chris85

+0

你的脚本存在[SQL注入攻击]的风险(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) 看看发生了什么[小鲍比表](http://bobby-tables.com/)即使 [如果你是逃避投入,它不安全!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets -around-mysql-real-escape-string) 使用[prepared parameterized statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly

+0

你可以举一个你需要的例子请结果。现在它不是很清楚你想要做什么 – RiggsFolly

回答

0

要回答你的问题,你必须首先声明新的阵列 $new_array = array();

然后通过您的查询结果循环填充数组

while ($row = $result->fetch()) { 
    $new_array[] = $row; 
} 

但作为提到的一个意见,你真的应该使用准备语句来保护自己免受sql注入。

$stmt = $mysqli->prepare("SELECT DAY(ADDDATE(`dateDebutC`, `dureeC`)) AS MONTHS, DAY(ADDDATE(ADDDATE(`dateDebutC`, `dureeC`),`dureeR`)) AS DAYS FROM normalW where id = ?"); 

    /* bind parameters i means integer type */ 
    $stmt->bind_param("i", $id); 

    $stmt->execute(); 

    $new_array = array(); 

    while($row = $stmt->fetch()) { 
     $new_array[] = $row; 
    } 
+0

那对我不起作用 –

+0

@MeriemMariem哪一部分不起作用?你有没有打开php错误?什么是问题? –