Как выбрать данные из моей таблицы и сделать ее строкой? - PullRequest
0 голосов
/ 22 февраля 2012

Я пытаюсь использовать базу данных, в которой в письме может быть несколько записей, но я хотел бы предотвратить повторяющиеся записи.В настоящее время у меня есть:

    <?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 ]

2 голосов
/ 22 февраля 2012

Я что-то здесь упускаю?Я не стал отвечать, потому что думал, что это будет слишком очевидно, и мой пост будет тратить время -

<?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, результаты последней строки или что-то в этом роде?

0 голосов
/ 22 февраля 2012

Исходя из разговора, который мы провели в комментариях, кажется, что вам лучше всего справиться с этой функциональностью на уровне базы данных, добавив уникальный запрет на все три столбца (электронная почта, itemName, заметки).При таком решении база данных не разрешит более одной строки с одинаковым значением для всех трех столбцов.

Команда 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

Единственный недостаток - запись вбаза данных будет стоить дороже, так как все три столбца (особенно примечания) должны будут учитываться для ограничения уникальности.

Другой вариант - загрузить все строки, соответствующие адресу электронной почты, а затем пройтись по каждой строке в поисках совпадений сИмя предмета и заметки, которые будут еще более болезненными.

0 голосов
/ 22 февраля 2012

Как насчет подсчета количества записей, где email = '$ email'?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...