如何从表中选择数据并使其成为字符串?

时间:2012-02-22 00:43:35

标签: php mysql phpmyadmin

我正在尝试使用数据库,其中电子邮件可以有多个条目,但我想防止重复条目。目前我有:

    <?php
    "SELECT Notes, itemName from UserItems where email = '$email'";
    if("itemName" == $name && "Notes" == $desc) {
        echo "duplicate";
    }
    ?>

但是itemName和Notes需要成为我的if语句的字符串

我的插入功能在我的代码中较低,但发布不好

    $insert = ("insert into UserItems (itemName, ItemNumber, email, Price, Notes) Value (\"$name\", \"$ItemNumber\", \"$email\", \"$price\", \"$desc\")");

3 个答案:

答案 0 :(得分:2)

我在这里遗漏了什么吗?我没有回答原因,我认为这太明显了,我的帖子会浪费时间 -

<?php
// add actual db connection info here
$email = 'someon@somewhere.com';
$name = 'John';
$desc = 'Some Description';
$row = mysql_fetch_array(mysql_query("SELECT Notes, itemName from UserItems where email = '$email'"));
if($row['itemName'] == $name && $row['Notes'] == $desc) {
    echo "duplicate";
}
?>

您永远不会实际运行查询或获取结果。或者定义您要比较的变量。它们是$ _POST,$ _GET,最后一行的结果还是什么?

答案 1 :(得分:0)

如何计算email ='$ email'的条目数?

答案 2 :(得分:0)

根据我们在评论中的对话,听起来最好的办法是在数据库层处理此功能,方法是在所有三列(email,itemName,notes)中添加唯一的约束。使用此解决方案,数据库将不允许所有三列具有相同值的多个行。

mysql命令是:

alter table <your_table> add unique (`email`, `itemName`, `notes`);

// Will be inserted/updated no problem
foo@bar.com, itemName1, notes1
foo@bar.com, itemName1, notes2
foo@bar.com, itemName2, notes1

// An error will be returned because this row already exists
foo@bar.com, itemName1, notes2

唯一的缺点是对数据库的写入会更加昂贵,因为必须考虑所有三列(特别注意)的唯一约束。

您的另一个选择是加载与电子邮件地址匹配的所有行,然后单步执行搜索与项目名称和注释匹配的每一行,这将更加痛苦。