2016-12-02 22 views
1

私の問題を理解してもらえますか、英語はあまり知られていませんが、試してみます。私はhostingerでページをきたし、ときに私は、行を表示するためのコードを生成し、私は、このエラーを与える:hostingerのforeach php pdoに無効な引数が指定されています

Warning: Invalid argument supplied for foreach()

接続コード:

public static function conexion() { 
    try { 
     $con = new PDO('mysql:host=localhost;dbname=example', 'usuario', 'clave'); 
     return $con; 
    } catch (PDOException $e) { 
     return false; 
    } 
} 

そして:

include 'functions.php'; 
$con = Functions::conexion(); 
$sql = 'SELECT * FROM Products p, Prices ps, ProductsPrices pc where p.IDP=pc.IDP AND ps.ID=pc.ID ORDER BY p.IDP ASC'; 
foreach ($con->query($sql) as $row) { 
    echo '<tr>'; 
    echo '<td>'. $row['IDP'] . '</td>'; 
    echo '<td>'. $row['Name'] . '</td>'; 
    echo '<td>'. $row['Description'] . '</td>'; 
    echo '<td style="color: #333;">'. $row['Price'] . '</td>'; 
    echo '<td>' . '<a class="btn" href="update.php?id='.$row['IDP'].'">Edit</a>' . '</td>'; 
    echo '</tr>'; 

をしかし、私はlocalhostにロードするときに問題はありません、行を示しています。

答えて

0

これはあなたのクエリで少し問題がある可能性があります

$sql = 'SELECT * FROM Products p, Prices ps, ProductsPrices pc where p.IDP=pc.IDP AND ps.ID=pc.ID ORDER BY p.IDP ASC'; 
$pdoStatement = $con->query($sql); 
$data = $pdoStatement->fetchAll(); 
foreach($data as $row){ 
    //... 
} 
+0

こんにちは、ありがとうr返答、私はあなたのソリューションを試して、これを与える:致命的なエラー:非オブジェクトのメンバー関数fetchAll()を呼び出す – forerser

0

foreachループの前に次の行を追加しますが、あなたはphpMyAdminのか、そのような何かでそれをテストしてい??

+0

私は最後のコメントで言うように、クエリは問題ではない、私は試して、行を表示します。 – forerser

0

それでも

$con = new PDO('mysql:host=localhost;dbname=example', 'usuario', 'clave'); 

これは

+0

私はそれを知っていますが、私もグラフを持っています。私は問題ではないと思う。とにかく、あなたに感謝返信:) – forerser

0

この

<?php 

$sql = $con->prepare("SELECT * FROM Products p, Prices ps, ProductsPrices pc where p.IDP=pc.IDP AND ps.ID=pc.ID ORDER BY p.IDP ASC'"); 
$sq->execute(); 

$results = $sql->fetchall(PDO::FETCH_ASSOC); 

if (count($results > 0)) { 

    foreach ($con->query($sql) as $row) { 
     echo '<tr>'; 
     echo '<td>' . $row['IDP'] . '</td>'; 
     echo '<td>' . $row['Name'] . '</td>'; 
     echo '<td>' . $row['Description'] . '</td>'; 
     echo '<td style="color: #333;">' . $row['Price'] . '</td>'; 
     echo '<td>' . '<a class="btn" href="update.php?id=' . $row['IDP'] . '">Edit</a>' . '</td>'; 
     echo '</tr>'; 
    } 

} 
?> 
を試すのに役立ちます名前

$con = new PDO('mysql:host=hostinger_host_name;dbname=example', 'usuario', 'clave'); 

希望を提供hostingersに変更したホスト名をとしてホストを設定しているためであります

関連する問題