簡體   English   中英

PHP Select語句需要快速更正

[英]PHP Select statement need quick correction

最后的我的echo語句肯定是錯誤的,我只是為了顯示我要執行的操作而已將其放入,我只是想調用先前設置的這三個變量。 正確的做法是什么?

$table_id = 'mynewtable';
$query = "SELECT id,name,price FROM $table_id";
$result_set= mysql_query($query);

$id = "SELECT id FROM $table_id";
$name = "SELECT name FROM $table_id";
$price = "SELECT price FROM $table_id";

if ($result_set){

$record= mysql_fetch_row($result_set);
$idrecord= mysql_fetch_row($id);
$namerecord= mysql_fetch_row($name);
$pricerecord= mysql_fetch_row($price);

        foreach ( $record as $value){
        echo "<td><tr> $idrecord $namerecord $pricerecord </tr></td>";
    }
}

沒有必要分別獲取每個元素。 使用mysql_fetch_assoc獲取一個數組,該數組具有SELECT語句中指定的列作為鍵。 這樣,您可以輕松獲得所需的回顯,而不必查詢數據庫

$table_id   = 'mynewtable';
$query      = "SELECT id,name,price FROM $table_id";
$result_set = mysql_query($query);

if($result_set)
{
    while ($row = mysql_fetch_assoc($result_set)) {
        echo "<td><tr>" .$row["id"]
        . " ". $row["name"]
        . " " .$row["price"] . "</tr></td>";
    }

}

您的$resultset僅來自第一個查詢( $query = "SELECT id,name,price FROM $table_id"; ),而不來自其他查詢?

這個部分:

$id = "SELECT id FROM $table_id";
$name = "SELECT name FROM $table_id";
$price = "SELECT price FROM $table_id";

實際上是沒有用的,因為它只是將字符串分配給$id$name$price

你的意思是?:

$result_set= mysql_query($query);
while ($row = mysql_fetch_assoc($result_set)) 
{
    echo "<td><tr> ".$row['id']." ".$row['name']." ".$row['price']." </tr></td>";
}
$table_id = 'mynewtable';
$query = "SELECT id,name,price FROM $table_id";
$result_set= mysql_query($query);

if (mysql_num_rows() > 0){

    while($row = mysql_fetch_array($result_set)) {
        echo $row['id'] .", ". $row['name'] .", ". $row['price'];
    }

}

請開始使用mysqli_ *而不是mysql_ *

為什么不

$table_id = 'mynewtable';
$query = "SELECT id, name, price FROM $table_id";
$result_set= mysql_query($query);

if ($result_set){
        while( $row = mysql_fetch_array(result_set)){ ?>
        <td>
          <tr> <?php echo $row['id'] . ' ' $row['name'] . ' ' . $row['price']; ?> </tr>
        </td>
<?php
    } // end of while
} // end of if

您無需為ID,名稱和價格分別選擇三個。 只需使用:

if ($result_set) {
    $row = $result_set -> fetch_assoc();
    $id = $row['id'];
    $name = $row['name'];
    $price = $row['price'];
}

然后,您可以將其輸入到表格中,也可以對信息進行任何操作。 只有使用MySQLi時fetch_assoc()才能工作。 mysql_fetch_assoc棄用 ,您應該切換到PDOMySQLi

<?php
$query = "SELECT id,name,price FROM mynewtable";
$result_set = mysql_query($query);

if ($result_set!==false){
    while( $row = mysql_fetch_assoc( $result_set ) ) {
     echo '<td>' $row['id'] . ' ' . $row['name'] . ' ' . $row['price'] . '</td>';
    }
}
else {
    echo "Something went wrong with the query:";
    echo mysql_error( );
}

這似乎更應該工作:)

編輯 :順帶一提,強烈建議不要使用mysql_ *,因為它們將在即將發布的PHP版本中消失。 開始使用PDO或MySQLi。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM