PHP SQL查询打印结果的网页


PHP SQL query to print results in webpage

我试图让我的PHP脚本打印所有行我有在我的数据库整洁的顺序。目前我什么都没得到。我的表有4列,名称,地址,长和晚,和2行数据。这个表叫做Locations。我正在使用以下代码,但我不去工作:

<?php
$con=mysqli_connect("localhost","user","pass","db");
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT * FROM `Locations` ";
if ($result = mysqli_query($con, $sql))
{
 $resultArray = array();
 $tempArray = array();
 while($row = $result->fetch_object())
 {
  $tempArray = $row;
     array_push($resultArray, $tempArray);
 }
 echo json_encode($resultArray);
}
// Close connections
mysqli_close($con);
?>

下面是一个使用pdo代替mysqli的简单示例

    $dbHOST = 'localhost';
    $dbNAME = 'nilssoderstrom_';
    $dbUSER = 'nilssoderstrom_';
    $dbPASS = 'Durandal82!';
    $pdo = new PDO('mysql:host=' . $dbHOST . ';dbname=' . $dbNAME, $dbUSER, $dbPASS); // create connection
    $stmt = $pdo->prepare("SELECT Name, Address, Long, Lat FROM Locations");
    //you should never use *, just call each field name you are going to use
    $stmt->execute(); // run the statement
    $arr = $stmt->fetchAll(PDO::FETCH_ASSOC); // fetch the rows and put into associative array
    print_r($arr); // print all array items, unformatted

,你可以回显数据并使用for循环自行格式化,如下所示

    for($i=0; $i<sizeof($arr); $i++) { // this will loop through each row in the database. i prefer this method over while loops as testing has shown this is much faster for large scale tables
        echo 'Name: ' . $arr[$i]['Name'] . '<br />'; // $arr is the array name, $i is the number of the array item, or iterator, ['Name'] is the field name
        echo 'Address: ' . $arr[$i]['Address'] . '<br>';
        echo 'Long: ' . $arr[$i]['Long'] . '<br>';
        echo 'Lat: ' . $arr[$i]['Lat'] . '<br>';
    }

如果名称是正确的,这将回显您的行ID和行CITY。只需将名称更改为您的字段名称。如果你需要进一步的帮助,请尽管开口。

但是,如果你想继续使用mysqli,请对下面的代码进行修改。

    $dbHOST = 'localhost';
    $dbNAME = 'nilssoderstrom_';
    $dbUSER = 'nilssoderstrom_';
    $dbPASS = 'Durandal82!';
    $mysqli = mysqli_connect($dbHOST, $dbUSER, $dbPASS, $dbNAME);
    $query = "SELECT Name, Address, Long, Lat FROM Locations";
    $result = mysqli_query($mysqli, $query);
    if($result) {
        while($row = mysqli_fetch_assoc($result)) {
            echo 'Name: ' . $row['Name'] . '<br />';
            echo 'Address: ' . $row['Address'] . '<br>';
            echo 'Long: ' . $row['Long'] . '<br>';
            echo 'Lat: ' . $row['Lat'] . '<br>';    
        }
    }

将fieldname更改为要显示的字段

编辑:粘贴以下代码。它会回显行数。这将告诉您查询语句是否正确。
    $dbHOST = 'localhost';
    $dbNAME = 'nilssoderstrom_';
    $dbUSER = 'nilssoderstrom_';
    $dbPASS = 'Durandal82!';
    $pdo = new PDO('mysql:host=' . $dbHOST . ';dbname=' . $dbNAME, $dbUSER, $dbPASS);
    $stmt = $pdo->query("SELECT Name, Address, Long, Lat FROM Locations");
    echo $stmt->rowCount();

将查询结果作为关联数组获取,并使用每个数组打印所有结果

 <?php
$con=mysqli_connect("localhost","user","pass","db");
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT * FROM `Locations` ";
if ($result = mysqli_query($con, $sql))
{
while($rows = mysqli_fetch_assoc($result)) {     
      foreach($rows as $key => $val)
{
     echo $val;
}      
}
}
mysqli_close($con);
?>