Мне нужна форма, чтобы связать записи MySQL - PullRequest
1 голос
/ 19 марта 2011

Мне нужна форма на основе HTML, чтобы связать записи базы данных вместе. Сценарий пользователя, который я представляю, выглядит примерно так:

Суперпользователь выполняет поиск в базе данных и доставляет таблицу записей на основе этого поиска; каждая запись нумеруется с идентификатором записи базы данных.

Там также будет два текстовых поля рядом с каждой записью. Эти текстовые поля позволят:

  1. пользователь делает ссылку из одной записи в другую. Например, пользователь может ввести в идентификатор записи # 457 целое число 242, чтобы указать, что существует корреляция с идентификатором записи # 242.
  2. Пользователь также описал бы тип отношения, которым он является. Это можно сделать с помощью простого целого числа во втором поле, которое указывает тип отношений между двумя записями.

Когда суперпользователь нажимает кнопку отправки, все эти отношения сохраняются в таблице mySqljoin.

Один из вариантов - дать мне совет о том, как реализовать и кодировать это самостоятельно на PHP. Тем не менее, прежде чем я изобрету колесо, еще один вариант - привести меня к бесплатному сценарию, который выполняет нечто подобное.

Ответы [ 2 ]

1 голос
/ 21 марта 2011

Если вы просто ищете псевдокодовый фреймворк, я бы сделал что-то вроде этого для тела формы:

<form id="my_form" action="" method="post">
<table id="my_table"><tr><th>Result ID</th><th>Related ID</th><th>Relation Type</th></tr>

<?php
$result = mysql_query("SELECT blah blah");
while ($row = [your chosen method of fetching results]) {
    $resource_id = $row['id'];
    echo "<tr><td>".$resource_id."</td>";
    echo "<td><input type=\"text\" name=\"related[".$resource_id."]\" /></td>";
    echo "<td><input type=\"text\" name=\"type[".$resource_id."]\" /></td></tr>";
}
?>
</table>
<input type="submit" value="Submit Related Resources" />
</form>

А затем, когда пользователь отправит форму, обработайте еес другим циклом, который проходит через каждое значение в связанных и типовых массивах и отправляет mysql_query («INSERT бла-бла»).Например:

$related_resources = $_POST['related'];
$related_types = $_POST['type'];
foreach ($related_resources as $original_resource -> $related_resource) {
    $type = $related_types[$original_resource];
    mysql_query("INSERT INTO [table name] ('resource', 'related', 'type') VALUES ('".$original_resource."', '".$related_resource."', '".$type."'");
}

Конечно, вы также должны добавить «if in_array» и т. Д. До получения типа, чтобы убедиться, что пользователь ввел его, и сохранить значение по умолчанию, если нет, или проверить форму на полноту передобрабатывая его, если вы хотите, чтобы они заполнили оба поля.Вы также должны выполнить ввод через функцию безопасности (экранирование кавычек и т. Д.), Прежде чем разрешить пользователям вводить данные в ваши таблицы.

0 голосов
/ 21 марта 2011

Это звучит слишком специфично для вас, чтобы можно было легко переназначить скрипт из другого места. Кроме того, комбинация пользователь / суперпользователь усложняет реализацию.

Если контроль доступа не является проблемой, вы можете использовать phpMyAdmin или что-то подобное. В противном случае вам понадобится пользовательская реализация. Хотя сложно советовать вам, как это сделать, основываясь на вашем вопросе. Более подробная информация поможет.

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