Моя цель - создать форму ввода (addnew.php), которая позволит мне позже редактировать записи, сделанные с использованием другой формы (edit.php).Использование MySQL и PHP для создания редактируемой базы данных ввода
В настоящее время addnew.php использует несколько текстовых полей и 2 флажка, а то, что я пытаюсь сделать, - это вставить информацию из форм в базу данных MySQL. Информация из текстовых полей вставляется в одну таблицу, а информация из этих флажков вставляется в другую таблицу.
Теперь, однако, я пытаюсь использовать третью таблицу (если необходимо), чтобы сделать таблицу пересечений, которая позволит мне использовать тот же формат, что и в addnew.php, в форме редактирования.
Таким образом, addnew.php будет иметь текстовые поля и флажки, а также будет edit.php, разница в том, что в файле edit.php будет заполнена информация, а в случае флажков , они будут проверены, и у пользователя будет возможность проверить больше полей или снять отметки с уже отмеченных ящиков.
три таблицы, которые я прямо сейчас:
articles:
id - articletitle - articleorganization - articledate - articleurl
tags:
id - tag_contents
articles_tags:
id - article_id - tag_id
И код addnew.php является:
<?php
function renderForm($articletitle, $articleorganization, $articledate, $articleurl, $articletags)
{
?>
. . .
<td width="20%" align="right"><span class="field">Article Title:</span></td>
<td width="80%" align="left"><span class="field">
<input name="articletitle" type="text" value="<?php echo $articletitle; ?>" size="50"/>
</span></td>
</tr>
<tr>
<td align="right"><span class="field">Article Author:</span></td>
<td align="left"><span class="field">
<input name="articleorganization" type="text" value="<?php echo $articleorganization; ?>" size="50"/>
</span></td>
</tr>
<tr>
<td align="right"><span class="field">Access Date:</span></td>
<td align="left"><span class="field">
<input name="articledate" type="text" value="MM/DD/YYYY" size="50"/>
</span></td>
</tr>
<tr>
<td align="right"><span class="field">Article URL:</span></td>
<td align="left"><span class="field">
<input name="articleurl" type="text" value="<?php echo $articleurl; ?>" size="50"/>
</span></td>
</tr>
<tr>
<td align="right"><span class="field">Article Tags:</span></td>
<td align="left"><span class="field">
<input type="checkbox" name="articletags[]" value="geology" id="articletags_0" />
<input type="checkbox" name="articletags[]" value="astronomy" id="articletags_1" />
</span>
</td>
</tr>
<tr>
<td colspan="2" align="center" valign="middle"><input type="submit" name="submit" value="Add this Article" /></td>
</tr>
</table>
. . .
</html>
<?php
}
include('settings.php');
if(count($articletags) > 0)
{
$articletags_string = implode(",", $articletags);
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$articletitle = mysql_real_escape_string(htmlspecialchars($_POST['articletitle']));
$articleorganization = mysql_real_escape_string(htmlspecialchars($_POST['articleorganization']));
$articledate = mysql_real_escape_string(htmlspecialchars($_POST['articledate']));
$articleurl = mysql_real_escape_string(htmlspecialchars($_POST['articleurl']));
$articletags = implode(',', $_POST['articletags']);
if ($articletitle == '' || $articleorganization == '')
{
$error = 'ERROR: Please fill in all required fields!';
renderForm($articletitle, $articleorganization);
}
else
{
mysql_query("INSERT INTO articles SET articletitle='$articletitle',
articleorganization='$articleorganization',
articledate='$articledate',
articleurl='$articleurl' ")
$article_id = mysql_insert_id();
mysql_query("INSERT INTO tags SET articletags='$articletags' ");
$tag_id = mysql_insert_id();
mysql_query("INSERT INTO articles_tags SET article_id='$article_id',
tag_id='$tag_id' ")
or die(mysql_error());
header("Location:addsuccess.php");
}
}
else
{
renderForm('','','','','');
}
?>
Что я сейчас возникли проблемы с выясняет, что именно делать дальше (после второго INSERT). Я знаю, что мне нужно наладить отношения, но я не могу для жизни понять, как это сделать.
Я предполагаю, что мне нужно хранить теги в таблице tags
? Но если это так, как мне получить свой идентификатор и вставить его в качестве тега в статью?
Любая помощь очень ценится.
Вместо того, чтобы делать 2 страницы формы, просто создайте страницу с 1 формой. Это удваивает вашу работу, когда вы должны измениться в будущем. Например, если идентификатор пользователя был отправлен на страницу формы, ваши поля будут заполнены, и ваша форма будет знать, какой именно идентификатор (возможно, через скрытое поле).) Если идентификатор пользователя не загружен, все полевые эхо-сигналы будут отображаться пустым (поскольку вары пусты), а идентификатор пользователя может быть пустым в форме, и ваш php-приемник узнает, что он новый, потому что отсутствует id. (Я предполагаю, что вы, конечно же, обрабатываете ошибки/здравомыслящие/логинские проверки). – colonelclick