能过增加删除内容,能导入数据库,有正常登录的登录页面以及页码以及其他基础小功能,
1条回答 默认 最新
- 小P聊技术 2021-06-17 09:44关注
PHP新闻发布系统:
源码已上传至百度网盘,链接: https://pan.baidu.com/s/1TBh3XW5kHMGaYQ4XHnv_Mw 密码: k5d6
推荐一个mysql图形化工具:adminer 下载地址:https://pan.baidu.com/s/1dE7TFNV
1.mysqli与php
视频:http://www.php.cn/code/20545
连接数据库
<?php header("Content-Type: text/html; charset=utf-8"); //1. //$mysqli = new mysqli(); //$mysqli->connect('localhost','root','root2'); //$mysqli->select_db('news'); //2. //$mysqli = new mysqli('localhost','root','root'); //$mysqli->select_db('news'); //3. $mysqli = new mysqli('localhost','root','root','news'); //echo '<pre>'; //print_r($mysqli); //echo '</pre>'; $mysqli->set_charset('utf8'); if($mysqli->connect_errno) { die('<h2 style="color: red">连接错误</h2>'.$mysqli->connect_error); } //else { // echo '<h2>连接成功</h2>'; //}
插入数据
<?php require 'mysqli_connect.php'; $sql = "INSERT root(username,password) VALUES('wen','simiao')"; if($mysqli->query($sql)) { echo '成功添加了'.$mysqli->affected_rows.'条记录,新增的主键id是:'.$mysqli->insert_id; } else { echo '添加失败'.$mysqli->errno.': '.$mysqli->error; } //关闭连接 $mysqli->close();
更新数据
<?php require 'mysqli_connect.php'; $sql = "UPDATE root SET username='ww',password='yy' WHERE id=235"; if($mysqli->query($sql)) { echo '成功更新了'.$mysqli->affected_rows.'条记录'; } else { echo '更新失败'.$mysqli->errno.': '.$mysqli->error; } $mysqli->close();
删除数据
<?php require 'mysqli_connect.php'; $sql = "DELETE FROM root WHERE id=235"; if($mysqli->query($sql)) { echo '成功删除了'.$mysqli->affected_rows.'条记录'; } else { echo '删除失败'.$mysqli->errno.': '.$mysqli->error; } $mysqli->close();
查询操作
<?php require 'mysqli_connect.php'; $sql = "SELECT goods_name,goods_price,goods_id FROM tdb_goods WHERE goods_price>3500"; //执行查询,返回结果集对象 $mysqli_reseult = $mysqli->query($sql); //如果结果集存在并且有数据 if ($mysqli_reseult && $mysqli_reseult->num_rows) { //查询第一条满足条件的记录,然后指针下移,返回的是一维数组 $row = $mysqli_reseult->fetch_array(); echo '货物: '.$row['goods_name'].' 价格: '.$row['goods_price'].' id: '.$row['goods_id'].'<br>';//查询第一条满足条件的记录,然后指针下移,返回的是一维数组 //对象 $row = $mysqli_reseult->fetch_object(); echo '货物: '.$row->goods_name.' 价格: '.$row->goods_price.' id: '.$row->goods_id.'<br>'; $row = $mysqli_reseult->fetch_array(MYSQL_BOTH); //MYSQL_ASSOC MYSQL_NUM echo '<pre>'; print_r($row); echo '</pre>'; //fetch_row() == MYSQL_NUM //fetch_assoc() == MYSQL_ASSOC echo '<hr color="red">'; //指针复位 $mysqli_reseult->data_seek(0); echo '<h3 align="center">商品货物表</h3>'; echo '<table border="1" cellpadding="1" cellspacing="0" width="800" align="center">'; echo '<tr bgcolor="#87ceeb"><th>货物</th><th>价格</th><th>编号</th></tr>'; while($row = $mysqli_reseult->fetch_assoc()) { echo '<tr>'; echo '<td>'.$row['goods_name'].'</td><td>'.$row['goods_price'].'</td><td>'.$row['goods_id'].'</td>'; echo '</tr>'; } echo '</table>'; } else { echo '么有你想要的东西'; } $mysqli->close();
总感觉写这种代码舒服一些。
fetch_all()
<?php require 'mysqli_connect.php'; $sql = "SELECT goods_name,goods_price,goods_id FROM tdb_goods WHERE goods_price>8000"; $mysqli_result = $mysqli->query($sql); if ($mysqli_result && $mysqli_result->num_rows>0) { $rows = $mysqli_result->fetch_all(MYSQLI_ASSOC); echo '<pre>'; print_r($rows);//二维数组 echo '</pre>'; echo '<h3 align="center">商品货物表</h3>'; echo '<table border="1" cellpadding="1" cellspacing="0" width="800" align="center">'; echo '<tr bgcolor="#87ceeb"><th>货物</th><th>价格</th><th>编号</th></tr>'; foreach ($rows as $row) { echo '<tr>'; echo '<td>'.$row['goods_name'].'</td><td>'.$row['goods_price'].'</td><td>'.$row['goods_id'].'</td>'; echo '</tr>'; } echo '</table>'; } else { echo '么有你想要的东西'; } $mysqli->close();
2.登陆&退出(后台)
我们要实现一个按键调用php代码,最初我是写js函数,里面加php代码,但是调了好久,发现根本不能怎么写 = =。
正确方法是调用ajax,之后用ajax连到php。可以参考:http://www.runoob.com/php/php-ajax-php.html
我的功能比较简单,代码如下:index.php
<!-- 检查是否登陆过--> <?php session_start(); if(!isset($_SESSION['uname'])) { echo "<script>alert('您没有权限,请先登陆!');window.location.href=\"login.html\"</script>"; } ?> <!-- 按键调用ajax 调用php--> <script> function Logout() { if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行的代码 xmlhttp=new XMLHttpRequest(); } else { //IE6, IE5 浏览器执行的代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","logout.php",true); xmlhttp.send(); } </script> <!-- 退出登录按键调用ajax--> <a class="button button-little bg-red" href="login.html" onclick="Logout()" ><span class="icon-power-off"></span> 退出登录</a>
logout.php(调试时,可以查看session文件是否消失)
<?php session_start(); session_destroy();
3.连接数据库(后台)
解决php缓存问题
<!-- ajax刷新头像--> <script> $(function(){ $.ajax({ success: function(msg){ $("#flush_head").attr("src", "images/h1.jpg"); }, error:function(msg){ console.log(msg); } }); }) <!-- 通过给url+?1 可以刷新缓存--> <iframe scrolling="auto" rameborder="0" src="page.html?1" name="right" width="100%" height="100%"></iframe>
创建news表
CREATE TABLE news ( news_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, title VARCHAR(200) NOT NULL, content TEXT NOT NULL, cre_date DATETIME, click INT DEFAULT 0, category VARCHAR(200) );
mysqli_connect.php
<?php header("Content-Type: text/html; charset=utf-8"); $mysqli = new mysqli('localhost','root','root','news'); echo "<link rel=\"stylesheet\" href=\"css/bootstrap.min.css\">"; echo "<script src=\"js/jquery.js\"></script>"; echo "<script src=\"js/bootstrap.min.js\"></script>"; $mysqli->set_charset('utf8'); if($mysqli->connect_errno) { die('<h2 style="color: red">连接错误</h2>'.$mysqli->connect_error); }
page.php(插入发布新闻数据,显示结果用了bootStrap)
<?php require 'mysqli_connect.php'; $title = $_POST['title']; $content = $_POST['content']; $category = $_POST['category']; //echo '<pre>'; //print_r($title); //echo '</pre>'; // //echo '<hr>'; // //echo '<pre>'; //print_r($category); //echo '</pre>'; $sql = "INSERT news(title,content,cre_date,category) VALUES('{$title}','{$content}',NOW(),'{$category}')"; if($mysqli->query($sql)) { $res1 = '成功添加了'.$mysqli->affected_rows.'条记录'; $res2 = '新增的主键id是:'.$mysqli->insert_id; echo "<div class=\"container\"> <div class=\"jumbotron\"> <h1>{$res1}</h1> <p>{$res2}</p> </div> </div>"; } else { echo '添加失败'.$mysqli->errno.': '.$mysqli->error; } //关闭连接 $mysqli->close();
4.注册,登陆(前台)
发现一个好漂亮的注册,登陆模版:http://www.mycodes.net/192/9784.htm
建表userCREATE TABLE user( user_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(30) NOT NULL, password VARCHAR(30) NOT NULL, email VARCHAR(30) NOT NULL );
chrome关闭js缓存:
哇,这个是真的恶心,整了1天,最后发现我改的js,在域名访问根本就没变,才发现是缓存的问题,又在QQ问了老师Peter Zhu(网上教程的)才解决的,不得不说,老师好负责任,都不认识,还免费解答问题。
解决方法:chrome 中 按F12 之后点 NetWork 接着勾选 Disable cache,这样你改的js就可以实时显示在域名的网页上了。
register.php(注册,插入数据库)
<?php require '..\admin\mysqli_connect.php'; header('Access-Control-Allow-Origin:*'); echo "<script> alert('success register'); </script>"; $username = $_POST['username']; $password = $_POST['password']; $email = $_POST['email']; $sql = "INSERT user(username,password,email) VALUES('{$username}','{$password}','{$email}')"; if($mysqli->query($sql)) { $res1 = '成功添加了'.$mysqli->affected_rows.'条记录'; $res2 = '新增的主键id是:'.$mysqli->insert_id; echo "<div class=\"container\"> <div class=\"jumbotron\"> <h2 style='color: #30ff09;'>{$res1}</h2> <p>{$res2}</p> <p><a href='login.html' class=\"btn btn-primary btn-lg\" role=\"button\"> 转到登陆</a> </p> </div> </div>"; } else { echo '添加失败'.$mysqli->errno.': '.$mysqli->error; } //关闭连接 $mysqli->close();
建表其他表
CREATE TABLE root( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(30) NOT NULL, password VARCHAR(30) NOT NULL ); CREATE TABLE comment( cid INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, ctext TEXT NOT NULL, ctime DATETIME NOT NULL, cuser VARCHAR(30) NOT NULL, nid INT UNSIGNED ); CREATE TABLE recycle( news_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, title TEXT NOT NULL, content TEXT NOT NULL, cre_time DATETIME NOT NULL, category VARCHAR(30) NOT NULL, click INT UNSIGNED );
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效