PHP 기본 개발 뉴스 사이트에 뉴스 추가
이전 강의에서는 뉴스 목록 페이징 기능을 완료했으니 이번 강의부터 뉴스 추가, 삭제, 수정, 확인 작업을 완료하겠습니다. 이제 확인이 완료되었으니 다음 단계로 넘어갑니다. 삭제, 수정, 추가! 오늘은 주로 추가하는 방법을 소개해드리겠습니다!
마찬가지로 추가된 템플릿을 찾아서 생성한 데이터 테이블의 필드를 기준으로 필요한 부분을 선택합니다~뉴스를 추가하려면 양식 양식을 사용하여 제출한 다음 데이터베이스에 삽입합니다
<form method="post" class="form-x" action="" enctype="multipart/form-data"> <div class="form-group"> <div class="label"> <label>分类:</label> </div> <select name="category_id" style="padding:5px 15px; border:1px solid #ddd;"> <option value="">-请选择-</option> <?php foreach( $arr_news_category as $val){ echo "<option value='{$val['id']}'>{$val['name']}</option>"; } ?> </select> </select> </div> <div class="form-group"> <div class="label"> <label>标题:</label> </div> <div class="field"> <input type="text" class="input w50" value="" 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="" /> </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;"></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="" /> <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="" 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="" 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>
양식 양식에 , 우리는 데이터를 전송하기 위해 post를 사용합니다. method="post "
action="" 제출할 곳입니다. 이 페이지에 제출할 예정이지만 다른 처리 페이지를 만드는 것이 좋습니다
enctype="multipart/form -data" 이미지 업로드에 필수입니다!
Content 여기서 사용하는 편집기는 매우 간단합니다. 온라인에서 다운로드하여 프로젝트에 넣은 다음<textarea></textarea>
<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;"></textarea> </div> </div>
를 호출하여 사용할 수 있습니다. script>코드는 다음과 같습니다.
<script type="text/javascript"> //实例化编辑器 //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例 UE.getEditor('content',{initialFrameWidth:1500,initialFrameHeight:400,}); </script>
양식이 설정되면 PHP 처리 페이지 작성을 시작합니다
1단계: 데이터베이스에 연결
<?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"); ?>
여기에 이미지를 업로드해야 하기 때문입니다. 그래서 이미지를 업로드하고 저장하고 처리했습니다.
<?php if(count($_FILES['pic']) > 0){ // 检查文件类型 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,不允许上传."; } $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; // 注意,保存的时候,设置从服务器的根目录开始 } ?>
이미지가 처리된 후 양식 전송을 시작하고 데이터를 데이터베이스에 삽입해야 합니다.
<?php if ($_POST['created_at']){ $current_time = $_POST['created_at']; }else{ $current_time = date("Y-m-d H:i:s"); } $sql = "insert into new(category_id,title,content,tag,author,pic,created_at) VALUES ('{$_POST['category_id']}', '{$_POST['title']}', '{$_POST['content']}', '{$_POST['tag']}', '{$_POST['author']}', '{$avatar_path}', '$current_time' )"; $result = mysqli_query($link,$sql); if($result){ $url = "http://127.0.0.1/news/Admin/new/new_list.php"; header("Location: $url"); exit; }else{ echo "添加新闻失败!"; echo mysqli_error($link); exit; } } ?>
여기에는 선택할 카테고리가 아직 남아 있으므로 카테고리 테이블을 쿼리해야 합니다:
$sql = "select * from new_category "; $result = mysqli_query($link, $sql); $arr_news_category = mysqli_fetch_all($result, MYSQL_ASSOC);
그런 다음 카테고리 입력 상자에서 카테고리를 순환합니다
<div class="form-group"> <div class="label"> <label>分类:</label> </div> <select name="category_id" style="padding:5px 15px; border:1px solid #ddd;"> <option value="">-请选择-</option> <?php foreach( $arr_news_category as $val){ echo "<option value='{$val['id']}'>{$val['name']}</option>"; } ?> </select> </div>
이렇게 하면 뉴스 기능 추가가 완료됩니다!