PHP检查MySQL表是否包含值


PHP check if MySQL table contains value

好的,所以标题可能有点误导。我想做的是在我的网站上添加一个喜欢的系统。我有一列我最喜欢的东西,我设置了它,所以在每个项目ID之后都有一个:。如果数据库(1345:13456:232:524378:324)中包含232,如何检查返回的字符串?如果是这样,我将回显preRend,否则我将回隐insert并插入该ID后面跟着:。这就是我目前所拥有的:

<?php
session_start();
require_once(".conf.php");
$logged = $_SESSION['logged'];
$user = $_SESSION['user'];
$fwdfav = $_POST['id'];
$query = mysql_query("SELECT * FROM accountController WHERE user='$user'");
if ($logged == 1) 
{
    while ($row = mysql_fetch_array($query)) {
    if ($row['fav-itms'] //This is where I got stuck. How to check if it contains a value.)
        {
            mysql_query("INSERT INTO accountController ('fav-itms') VALUES ('$fwdfav')");
            echo 'inserted';
        }
        else
        {
            echo 'preRend';
        }
    }
} 
else
{
    echo 'nlog';
}
?>

非常感谢!我确信这里有很多错误,因为我很累。

您采用的方法效率极低,并且没有利用您使用数据库的事实。

(顺便说一句……我希望这只是示例代码;您的INSERT查询中有一个巨大的SQL注入漏洞。)

相反,我要做的是创建第二个表,看起来像:

favorites (
    id int(11) NOT NULL auto_increment,
    user_id int(11),
    fav_id int(11)
)

并让每一行代表一对用户最喜欢的情侣。然后,您可以让MySQL来完成繁重的工作,来判断用户是否喜欢某个东西,例如

SELECT COUNT(*) FROM favorites WHERE user_id = %d AND fav_id = %d;
// Substitute the actual look-up values in using prepared statements

你也可以同样快速地获得用户的实际收藏夹,等等。

请记住,数据库是为快速存储和查找信息而设计的。PHP是一种通用编程语言。在可能的情况下,让MySQL为您代步。

(这个建议对于适度规模的设置来说是通用的。如果你需要处理数百万同时使用的用户,显然需要更多的优化,而传统的关系数据库可能甚至不适合。但我不认为这是你现在的处境。)

您可以将其分解为检查数组,如:


$yourArr = explode(":", $row['fav-itms']);
$checkFor = 232;
if(in_array($checkFor, $yourArr)) {
  //it exists
}
else {
  //does not exist
}

你的意思是这个吗

我知道这是不久前发布的,但当我搜索时它出现了。

我有一个数据库为我的投资组合存储信息,它保存图像的位置。

我正在创建一个页面来显示项目的完整视图。在页面中,我需要它来检查图像的列,如果有空的,我需要不显示任何内容。

我就是这么做的。

//连接,选择数据库,查询与页面相关的表。我已经查询了一个特定的行。

    if($row[columnName1]){
       echo '<div> displaying value </div>';
    }
    if($row[columnName2]){
       echo '<div> displaying value </div>';
    }

如果所选行中的columnName1有一个值,则显示div中的值,否则什么都不显示。然后转到第2列。

如果像这样

    if(!$row[columnName1]){
            //content displayed
    }

并且该列不包含值,则将运行介于{}之间的内容。

按照我需要的方式工作,也许这会对某人有所帮助。