Nouvelles de modification de la station d'information sur le développement natif PHP

Cette leçon continue de vous présenter la modification des nouvelles, l'ajout, la suppression, la modification et la vérification. Dans la dernière leçon, nous avons complété la fonction d'ajout de nouvelles. En fait, le principe de modification des nouvelles est le même que celui de l'ajout de nouvelles. modifiez simplement la valeur des données que nous voulons obtenir dans la zone de saisie, puis modifiez et enregistrez dans la base de données. Voyons comment l'implémenter !

Créez d'abord un fichier php, nous l'appelons new_edit.php

Nous trouvons le bouton pour modifier les actualités sur la page d'affichage de la liste des actualités, puis lui donnons une connexion pour transmettre l'information via l'identifiant. Nous l'acceptons via. l'identifiant dans new_edit.php

<a class='button border-main' href='new_edit.php?id=<?php echo $val['id'];?>'>
<span class='icon-edit'></span> 修改</a>

Ensuite, nous nous connectons à la base de données

<?php
// 连接mysql数据库
$link = mysqli_connect('localhost', 'root', 'root');
if (!$link) {
    echo "connect mysql error!";
    exit();
}
// 选中数据库 news为数据库的名字
$db_selected = mysqli_select_db($link, 'news');
if (!$db_selected) {
    echo "<br>selected db error!";
    exit();
}
// 设置mysql字符集 为 utf8
$link->query("set names utf8");

Ensuite, définissons l'image, obtenons l'image

<?php
if(count($_POST)>0){

if( count($_FILES['pic']) > 0 && $_FILES['pic']['name']   ) { // 保存头像图片
    $flag = true;
}
        // 检查文件类型
        if(  !in_array($_FILES['pic']['type'], array('image/jpeg','image/png', 'image/gif')) ){
            echo "只运行上传jpg或png图片, 文件类型不合法,不允许上传";
        }
        // 检查文件大小
        if ($_FILES['pic']['size'] > 5*1024*1024){
            echo "文件最大尺寸为5M,不允许上传.";
        }
    if ( $flag ){
        // 获取文件后缀名
        $file_ext= pathinfo($_FILES['pic']['name'], PATHINFO_EXTENSION);
        $tmp_file = $_FILES['pic']['tmp_name']; // 临时文件
        $dest_file = pathinfo($tmp_file, PATHINFO_FILENAME).".".$file_ext; // 保存的文件名
        //move_uploaded_file($tmp_file, "d:/wamp/www/upload/".$dest_file);  // 使用绝对地址保存图片
        move_uploaded_file($tmp_file, "../../upload/".$dest_file); // 使用相对地址保存图片
        $avatar_path ="../../upload/".$dest_file; // 注意,保存的时候,设置从服务器的根目录开始
    }
    if( !$avatar_path ){
    $avatar_path = $arr_recommend['img'];
}

Ensuite, récupérons les informations via l'identifiant, interrogeons la table de données, exécutons l'instruction SQL

// 根据id 获取用户信息
$id = $_GET['id'];
if( !is_numeric($id) ) {
    echo "ERROR!";
    exit;
}
//获取查询信息
$sql ="select * from new where id = $id";
$result = mysqli_query($link,$sql);
$arr_news = mysqli_fetch_array($result, MYSQL_ASSOC);

Ensuite utilisez le jeu de mise à jour pour enregistrer les données dans la base de données, le code est le suivant :

 $update_sql = "update new set category_id = '{$_POST['category_id']}',
                                        title ='{$_POST['title']}',
                                       content ='{$_POST['content']}', 
                                       tag ='{$_POST['tag']}', 
                                       author ='{$_POST['author']}', 
                                       pic ='{$avatar_path}', 
                                       created_at ='{$_POST['created_at']}'
                                       where id ='{$_POST['id']}' 
                                       ";
    $result = mysqli_query($link,$update_sql);
    if($result){
        echo "添加成功!";
        $url = "http://127.0.0.1/news/Admin/new/new_list.php";
        header("Location: $url");
        exit;
    }else{
        echo "修改失败!";
    }
}

L'étape suivante consiste à attribuer une valeur à la valeur dans chaque zone de saisie :

<form method="post" class="form-x" action="" enctype="multipart/form-data">
    <input type="hidden" name="id" value="<?php echo $arr_news['id'];?>">
    <div class="form-group">
        <div class="label">
            <label>分类ID:</label>
        </div>
        <div class="field">
            <select name="category_id" required class="form-select">
                <option value="">-请选择-</option>
                <?php
                foreach( $arr_news_category as $val){
                    $str_selected = "";
                    if( $arr_news['category_id'] == $val['id']){
                        $str_selected = "selected";
                    }
                    echo "<option value='{$val['id']}' $str_selected>{$val['name']}</option>";
                }
                ?>
            </select>

            <div class="tips"></div>
        </div>
    </div>
    <div class="form-group">
        <div class="label">
            <label>标题:</label>
        </div>
        <div class="field">
            <input type="text" class="input w50" value="<?php echo $arr_news['title'];?>" name="title" data-validate="required:请输入标题" />
            <div class="tips"></div>
        </div>
    </div>


    <div class="clear"></div>
    <div class="form-group">
        <div class="label">
            <label>关键字:</label>
        </div>
        <div class="field">
            <input type="text" class="input" name="tag" value="<?php echo $arr_news['tag'];?>" />
        </div>
    </div>

    <div class="form-group">
        <div class="label">
            <label>内容:</label>
        </div>
        <div class="field">
            <textarea name="content" class="input" id="content" style="height:450px; width: 98%; border:1px solid #ddd;"><?php echo $arr_news['content'];?></textarea>

        </div>
    </div>

    <div class="form-group">
        <div class="label">
            <label>作者:</label>
        </div>
        <div class="field">
            <input type="text" class="input w50" name="author" value="<?php echo $arr_news['author'];?>"  />
            <div class="tips"></div>
        </div>
    </div>

    <div class="form-group">
        <div class="label">
            <label>图片:</label>
        </div>
        <div class="field">
            <input type="file" id="url1" name="pic" class="input tips" style="width:25%; float:left;" value="<?php echo $arr_news['pic'];?>"  data-toggle="hover" data-place="right" data-image="" />
            <input type="button" class="button bg-blue margin-left" id="image1" value="+ 浏览上传"  style="float:left;">
            <div class="tipss">图片尺寸:500*500</div>
        </div>
    </div>


    <div class="form-group">
        <div class="label">
            <label>发布时间:</label>
        </div>
        <div class="field">
            <script src="../js/laydate/laydate.js"></script>
            <input type="text" class="laydate-icon input w50" name="created_at" onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})" value="<?php echo $arr_news['created_at']?>"  data-validate="required:日期不能为空" style="padding:10px!important; height:auto!important;border:1px solid #ddd!important;" />
            <div class="tips"></div>
        </div>
    </div>

    <div class="form-group">
        <div class="label">
            <label></label>
        </div>
        <div class="field">
            <button class="button bg-main icon-check-square-o" type="submit"> 提交</button>
        </div>
    </div>
</form>

Il y a aussi une catégorie à traiter. pour interroger d'abord les données de la table de classification :

//获取所有的新闻分类
$sql  = "select * from new_category ";
$result = mysqli_query($link, $sql);
$arr_news_category = mysqli_fetch_all($result, MYSQL_ASSOC);

Parcourez les informations de catégorie dans la zone de saisie du nom de la catégorie :

<div class="form-group">
    <div class="label">
        <label>分类ID:</label>
    </div>
    <div class="field">
        <select name="category_id" required class="form-select">
            <option value="">-请选择-</option>
            <?php
            foreach( $arr_news_category as $val){
                $str_selected = "";
                if( $arr_news['category_id'] == $val['id']){
                    $str_selected = "selected";
                }
                echo "<option value='{$val['id']}' $str_selected>{$val['name']}</option>";
            }
            ?>
        </select>

OK ! La modification de l'actualité est terminée ici !

1743.png

Formation continue
||
<?php include_once "../common/mysql.php"; if(count($_POST)>0){ if( count($_FILES['pic']) > 0 && $_FILES['pic']['name'] ) { // 保存头像图片 $flag = true; } // 检查文件类型 if( !in_array($_FILES['pic']['type'], array('image/jpeg','image/png', 'image/gif')) ){ echo "只运行上传jpg或png图片, 文件类型不合法,不允许上传"; } // 检查文件大小 if ($_FILES['pic']['size'] > 5*1024*1024){ echo "文件最大尺寸为5M,不允许上传."; } if ( $flag ){ // 获取文件后缀名 $file_ext= pathinfo($_FILES['pic']['name'], PATHINFO_EXTENSION); $tmp_file = $_FILES['pic']['tmp_name']; // 临时文件 $dest_file = pathinfo($tmp_file, PATHINFO_FILENAME).".".$file_ext; // 保存的文件名 //move_uploaded_file($tmp_file, "d:/wamp/www/upload/".$dest_file); // 使用绝对地址保存图片 move_uploaded_file($tmp_file, "../../upload/".$dest_file); // 使用相对地址保存图片 $avatar_path ="../../upload/".$dest_file; // 注意,保存的时候,设置从服务器的根目录开始 } if( !$avatar_path ){ $avatar_path = $arr_recommend['img']; } $update_sql = "update new set category_id = '{$_POST['category_id']}', title ='{$_POST['title']}', content ='{$_POST['content']}', tag ='{$_POST['tag']}', author ='{$_POST['author']}', pic ='{$avatar_path}', created_at ='{$_POST['created_at']}' where id ='{$_POST['id']}' "; $result = mysqli_query($link,$update_sql); if($result){ echo "添加成功!"; $url = "http://127.0.0.1/news/Admin/new/new_list.php"; header("Location: $url"); exit; }else{ echo "修改失败!"; } } //获取所有的新闻分类 $sql = "select * from new_category "; $result = mysqli_query($link, $sql); $arr_news_category = mysqli_fetch_all($result, MYSQL_ASSOC); // 根据id 获取用户信息 $id = $_GET['id']; if( !is_numeric($id) ) { echo "ERROR!"; exit; } //获取查询信息 $sql ="select * from new where id = $id"; $result = mysqli_query($link,$sql); $arr_news = mysqli_fetch_array($result, MYSQL_ASSOC); ?> <!DOCTYPE html> <html lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="renderer" content="webkit"> <title></title> <link rel="stylesheet" href="../css/pintuer.css"> <link rel="stylesheet" href="../css/admin.css"> <script src="../js/jquery.js"></script> <script src="../js/pintuer.js"></script> <script type="text/javascript" charset="utf-8" src="../ueditor/ueditor.config.js"></script> <script type="text/javascript" charset="utf-8" src="../ueditor/ueditor.all.min.js"> </script> <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败--> <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文--> <script type="text/javascript" charset="utf-8" src="../ueditor/lang/zh-cn/zh-cn.js"></script> </head> <body> <div class="panel admin-panel"> <div class="panel-head" id="add"><strong><span class="icon-pencil-square-o"></span>修改内容</strong></div> <div class="body-content"> <form method="post" class="form-x" action="" enctype="multipart/form-data"> <input type="hidden" name="id" value="<?php echo $arr_news['id'];?>"> <div class="form-group"> <div class="label"> <label>分类ID:</label> </div> <div class="field"> <select name="category_id" required class="form-select"> <option value="">-请选择-</option> <?php foreach( $arr_news_category as $val){ $str_selected = ""; if( $arr_news['category_id'] == $val['id']){ $str_selected = "selected"; } echo "<option value='{$val['id']}' $str_selected>{$val['name']}</option>"; } ?> </select> <div class="tips"></div> </div> </div> <div class="form-group"> <div class="label"> <label>标题:</label> </div> <div class="field"> <input type="text" class="input w50" value="<?php echo $arr_news['title'];?>" name="title" data-validate="required:请输入标题" /> <div class="tips"></div> </div> </div> <div class="clear"></div> <div class="form-group"> <div class="label"> <label>关键字:</label> </div> <div class="field"> <input type="text" class="input" name="tag" value="<?php echo $arr_news['tag'];?>" /> </div> </div> <div class="form-group"> <div class="label"> <label>内容:</label> </div> <div class="field"> <textarea name="content" class="input" id="content" style="height:450px; width: 98%; border:1px solid #ddd;"><?php echo $arr_news['content'];?></textarea> </div> </div> <div class="form-group"> <div class="label"> <label>作者:</label> </div> <div class="field"> <input type="text" class="input w50" name="author" value="<?php echo $arr_news['author'];?>" /> <div class="tips"></div> </div> </div> <div class="form-group"> <div class="label"> <label>图片:</label> </div> <div class="field"> <input type="file" id="url1" name="pic" class="input tips" style="width:25%; float:left;" value="<?php echo $arr_news['pic'];?>" data-toggle="hover" data-place="right" data-image="" /> <input type="button" class="button bg-blue margin-left" id="image1" value="+ 浏览上传" style="float:left;"> <div class="tipss">图片尺寸:500*500</div> </div> </div> <div class="form-group"> <div class="label"> <label>发布时间:</label> </div> <div class="field"> <script src="../js/laydate/laydate.js"></script> <input type="text" class="laydate-icon input w50" name="created_at" onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})" value="<?php echo $arr_news['created_at']?>" data-validate="required:日期不能为空" style="padding:10px!important; height:auto!important;border:1px solid #ddd!important;" /> <div class="tips"></div> </div> </div> <div class="form-group"> <div class="label"> <label></label> </div> <div class="field"> <button class="button bg-main icon-check-square-o" type="submit"> 提交</button> </div> </div> </form> </div> </div> </body> </html> <script type="text/javascript"> //实例化编辑器 //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例 UE.getEditor('content',{initialFrameWidth:1500,initialFrameHeight:400,}); </script>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel