单击php,ajax,mysql创建一个新的表行/用户

时间:2014-12-11 19:41:22

标签: php mysql ajax

html,然后单击create div将重定向到相同的页面,但会添加一个新行并递增数据库中的[text_edit_id]。这是我的表:http://imgur.com/KoNg1ju

<div class="saveChange" onclick="saveEdits()"></div>
<div class="cancelChange" onclick="cancelEdits()"></div>
<div class="create"></div>

<div id="edit" class="title textEditor">
    <span contenteditable="true" class="pageTitle one editable" id="bodyTitle"><?php echo $row['text_title']; ?></span>
    <p id="bodyText" class="editable" contenteditable="true"><?php echo $row['text_text']; ?></p>
</div>

保存更改时

function saveEdits() {
var title = $('.pageTitle').html();
var text = $('#bodyText').html();
    console.log(title + text);
    $.ajax({
      type: "POST",
      url: "functions/functions.php",
      data: { title: title, text: text }
    }).done(function( msg ) {
        console.log(msg);
    });
};

functions.php

<?php 
$host = "localhost";
$username = "root";
$password = "root";
$db = "textedit";

$connection = mysqli_connect($host,$username,$password,$db);
if (!$connection) {
    die("Database connection failed: " . mysql_error());
}

$text_title = $_POST['title'];
$text_text = $_POST['text'];

$stmt = $connection->prepare("UPDATE data SET text_title = ?, text_text = ? WHERE text_edit_id = 1");
$stmt->bind_param('ss', $text_title, $text_text);
$stmt->execute();
?>

1 个答案:

答案 0 :(得分:1)

如果你设法在mysql数据库中添加新记录,但问题是你想要字段&#34; text_edit_id&#34;自动增加...然后解决方案非常简单:

在phpmyadmin中定义&#34; text_edit_id&#34;如上所述:

  • 类型整数
  • 自动增量(标记复选框 - 必须选择此选项)

Text_edit_id应该是&#34;主键&#34;该表。

您可以在&#34;结构&#34;中修改所有这些参数。你桌子的一部分。这很容易。

这样,当您将新记录保存到数据库中时,&#34; text_edit_id&#34;值将自动生成,并且等于&#34;最后一个值+ 1&#34;。

text_edit_id    text_title    text_text
     1          First news   News content
     2          Second news  Other content

重要 请注意,如果您想在表格中添加新行(如上所示),则查询错误。

  $stmt = $connection->prepare("UPDATE data SET text_title = ?, text_text = ? WHERE text_edit_id = 1");

这意味着:&#34;更新表记录&#34; text_id_field&#34;将&#34; text_title&#34;的新值等于1和&#34; text_text&#34;。 当然text_edit_id没有改变!!

您正在寻找的是INSERT STATMENT。这样,每次使用自动增量索引创建NEW行(=新记录)时。

$stmt = $connection->prepare("INSERT INTO data (text_title, text_text) VALUES (?,?) ");

将此行替换为脚本中的一行。