gpt4 book ai didi

php - 愚蠢的 mysql_fetch_assoc() : Error

转载 作者:行者123 更新时间:2023-11-29 08:37:22 26 4
gpt4 key购买 nike

抱歉,我是一个新手,正在制作一个填充一系列 div 的简单页面。如果我所缺少的只是初级的,我深表歉意-

我得到了

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource on line 56

第 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,现在我确实得到了多个div,每一行一个,但每个div内都有消息

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /classes/class.product.php on line 16 Invalid 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;
}

已经完成了,我可以调用它来填充我需要的数据库中的变量吗?

最佳答案

最简单的方法是检查$result是否为false,请参阅mysql_query

Return Values
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

或者使用or die(...)

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

您应该考虑切换到 mysqliPDO,因为 mysql_* 函数已被弃用。

更新您的更新:

这不适合在一起。

  • 修改后的代码中没有 mysql_num_rows()
  • 请勿将 mysql_*mysqli_* 混合使用。
  • 最后,单引号内的变量不会被替换',所以我不知道这个错误消息来自哪里。

更新2:

由于该方法不使用任何对象成员,因此可以将其定义为静态成员函数

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();

关于php - 愚蠢的 mysql_fetch_assoc() : Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14905088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com