0

申し訳ありませんが、一連の div を設定する単純なページを作成する初心者です。私が見逃しているものが初歩的なものである場合は申し訳ありません-

私は取得しています

警告: mysql_fetch_assoc(): 56 行目の指定された引数は有効な MySQL 結果リソースではありません

行 56 の開始:

<?php
$result = mysql_query('SELECT * FROM `all_products`;'); 
while($row = mysql_fetch_assoc($result)){
echo '<div class="product">';
echo '<img src="images/product-\'.$row[\'id\'].\'s.jpg" onclick="JavaScript:newPopup(\'images/product-\'.$row[\'id\'].\'.jpg\');">';
echo '<span class="tiger" data-name="show" data-price="show" data-text="Buy Now">\'.$row[\'id\'].\'</span>\'.$row[\'description\'].\'</div>';
}
?>

提案は大歓迎です。すでに数時間です笑。

-AR

アップデート - -

新しいコード:

<?php 
$link = mysqli_connect('ip', 'usr', 'pass');

if (!$link) {
die('Connect Error (' . mysqli_connect_errno() . ') '
        . mysqli_connect_error());
}
mysqli_select_db($link, "db");
?>

<?php
$result = mysqli_query($link, "SELECT * FROM `all_products`") or die(mysql_error());
while($row = mysqli_fetch_assoc($result)){
echo '<div class="product">';
echo '<img src="images/product-\'.$row[\'id\'].\'s.jpg" onclick="JavaScript:newPopup(\'images/product-\'.$row[\'id\'].\'.jpg\');">';
echo '<span class="tiger" data-name="show" data-price="show" data-text="Buy Now">\'.$row[\'id\'].\'</span>\'.$row[\'description\'].\'</div>';
}
?>

私はsqliに変更しました。各行に1つずつ、複数のdivを取得しますが、各div内にはメッセージがあります

警告: mysql_num_rows(): 指定された引数は、/classes/class.product.php の 16 行目の有効な MySQL 結果リソースではありません 無効な Product'.$row['description'].'

アップデート-

うまくいけば、いくつかの背景が役立ちます-このコード:

<div class="product">
<img src="images/product-1s.jpg" onclick="JavaScript:newPopup('images/product-1.jpg');">
<span class="tiger" data-name="show" data-price="show" data-text="Buy Now">
1</span>Lorem Ipsum Dolar</div>

クラスはすでにコーディングされており、主に mysql_ が使用されています。

私がやりたいのは、テーブルのすべての行に id# と desc を貼り付けることだけです。思ったほど簡単にはできないと思います。私は手動ですべてを書き出してすべてを機能させることができましたが、明らかにそれは理想的ではありません.

すでに起こっていることの外でこれを実行できる別の方法はありますか?

この機能:

class Product{
var $error = '';
var $msg = '';
public function all(){
$result = mysql_query("SELECT * FROM  " . PFX . "products WHERE active = 1");
$products = array();
while($rows = mysql_fetch_assoc($result)){
    $products[]=$rows;
    }
return $products;
}

既に完了しています。これを呼び出して、必要なデータベースから変数を設定できますか?

4

1 に答える 1

2

最も簡単な方法は、 であるかどうかを確認すること$resultです。falsemysql_query

戻り値
SELECT、SHOW、DESCRIBE、EXPLAIN、および結果セットを返すその他のステートメントの場合、mysql_query() は成功するとリソースを返し、エラーの場合は FALSE を返します。

または使用or die(...)

$result = mysql_query('SELECT * FROM `all_products`') or die(mysql_error());

関数は非推奨であるため、mysqliまたはに切り替えることを検討する必要があります。PDOmysql_*

あなたのアップデートに更新してください:

これは合いません。

  • mysql_num_rows()変更されたコードにはありません。
  • と混ぜないmysql_*でくださいmysqli_*
  • 最後に、変数は単一引用符内で置換されない'ため、このエラー メッセージがどこから来たのかわかりません。

Update2 :

このメソッドはオブジェクト メンバーを使用しないため、静的メンバー関数として定義できます。

public static function all(){
    $result = mysql_query("SELECT * FROM  " . PFX . "products WHERE active = 1");
    $products = array();
    while($rows = mysql_fetch_assoc($result)){
        $products[]=$rows;
    }
    return $products;
}

そしてそれを次のように呼び出します

$products = Product::all();
于 2013-02-15T23:32:46.440 に答える