php获取数据库指定表最大ID那一行全部数据输出在html上

php获取数据库指定表最大ID那一行全部数据输出在html上

数据库

hots:127.0.0.1

user:root

pwd:root

dbname:sql

sql数据库中有个user的表 ID作为主建自递增

需要获取这个ID最大数

列如通过后台添加数据ID为ID8前台读取ID8

后天在添加ID为ID9前台读取ID9

小白求打扰解答或者给个demo
图片说明

图片说明

每次后台新添加数据ID为自增,需要读取最大ID如ID12 输出他的三列数据到前端

3个回答

看一下这个 https://github.com/bottod/emq_server_sets/tree/master/ShowDemo/iot
主要就是js文件夹下的bottod文件夹 和php文件夹和index.html
sql语句有人贴了,这是自己之前做得一个比较大的项目了,可以参考下,不懂问我

select top 1 from `user` order by id desc

方法一:

Declare @FMaxNum Int;
Select @FMaxNum = max(ID) From user 
Select * From user where ID = @FMaxNum

方法二:

select * from user where ID = (select max(ID) from user)

以上基于 Sql Server ,MySQL 应该差不多的。不过需要考虑到数据量的大小,若数据量较大不建议采用第二种方法。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数据库读取数据 输出数组 转为json输出
``` header('Content-type: application/json;charset=utf-8'); require 'conn.php'; //读取数据 $sql_notice = mysql_query('SELECT id,user_name FROM user limit 0,4'); //$jobj[] = mysql_fetch_array($sql_notice,MYSQL_ASSOC); //第一行 //打印所有行 数组数据 while ($jobj[] = mysql_fetch_array($sql_notice,MYSQL_ASSOC)){ $jobj; } var_dump($jobj); echo "<br>"; $data = json_encode($jobj); echo $data;//打印编码后的json字符串 ``` 是准备做APP接口 但没经验 不知道是不是这样 现在的问题是 读出4条数据 但只显示3条 数组的第四条是[4]=> bool(false) 另外json显示出来的是一横排 查看源代码也是 怎样让它按json那样的格式去排呢
datagrid生成的表格,欲把某一列的所有行都设置为下拉列表的形式;内容从后台数据库中读取;静态加载数据可行,动态加载数据下拉列表出不来
```<!-- var colData=[{id:'高',projectName:'高','selected':'true'},{id:'中',projectName:'中'},{id:'低',projectName:'低'},{ id: "操作错误", projectName: "操作错误" }, { id: "滥用授权", projectName: "滥用授权" },{ id: "身份假冒", projectName: "身份假冒" },{ id: "安全漏洞", projectName: "安全漏洞" }, --> <!-- { id: "拒绝服务", projectName: "拒绝服务" },{ id: "恶意代码", projectName: "恶意代码" },{ id: "窃听数据", projectName: "窃听数据" },{ id: "物理破坏", projectName: "物理破坏" },{ id: "社会工程", projectName: "社会工程" }]; --> <!-- console.log(colData); --> <!-- console.log(typeof colData); --> ///////上面注释掉的代码是我尝试静态加载的语句,////下面的代码是我ajax请求的代码 var colData=[]; console.log(typeof colData); $.ajax({ type:"POST", url:"./php/read_from_db2.php", dataType:"json", async:false, data:{}, success:function(data){ console.log(data); colData = []; data.forEach(ele => { var obj = { id:ele, projectName:ele, selected:true }; colData.push(obj); }); console.log(colData); }, async:true, error:function(){ alert("请求失败"); }, }); //////下面的代码为我想要设置的列 {field:'关联威胁',title:"关联威胁", width:140,align:'center',editor: { type:'combobox', options: { valueField:'id', textField:'projectName', panelHeight:'auto', data:colData//这里是我定义的全局变量,将它传给options的data }}}, ```
商品销售情况统计,Mysql数据库,涉及多张表 怎么查询,效率比较高的做法怎么做?
涉及的表是这样一个情况 商品表(商品ID xxx....商品信息的一些字段),订单表(订单ID,创建订单日期,订单总价 .....) ,订单详单表(订单ID,商品ID,价格,数量),然后现在的需求是 查询某一个时间段的 比如这个月的 商品销售情况 商品名称 订单总量 总的销售额 xxx 10 100 类似这种列表怎么查询,这边使用的是PHP+mysql数据库,希望能得到高手指点 讲讲思路就行,因为数据量比较大 查询效率也是个问题
求解数据库查询排序分页算法
有新闻表news,有地区属性area_id,创建时间属性create_time(),随便时间戳,或日期类型均可,不是重点 有地区表area,有area_id,parent_id,表示市和省,只有两级地区,简单的地区表, 现在要根据不同地区显示所有新闻 比如南京新闻 所谓南京新闻指 按顺序显示: 3天内本地->3天内本省别的城市->所有别的新闻 每页显示10条记录 3天内本地是按时间倒排,就是新的在前。 3天内本省别的城市 是按时间倒排,注意不按地区排 所有别的新闻当然要排除掉前面两条 算法的输入是地区id,和 页码数。页码数从1算起, 输出是一个数组,当然,最多10条。 如果输入的页码过大,如100000,则返回空数组。 超级难!!我都感觉我的sql相当不错了,我知道要结合程序与sql一起解决,但不知怎么办? 用java解答或php都行,数据库用mysql,因为可以用limit 不用存储过程,我不会用
有人愿意帮我看看这个PHP代码吗,我想要实现的是PHP连接数据库,实现搜索并分页的。但是有点小状况。
``` <?php $servername = "localhost"; $username = "root"; $password = "0202"; $dbname = "mydb"; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>搜索</title> <link rel = "stylesheet" type = "test/css" href = "sql_php.css"/> </head> <body> <form> <input type="text" id="txt_uname" name="uname"/> <br/> <input type="submit"/> <p> <?php $num_rec_per_page=10; if (isset($_GET["page"])){ $page = $_GET["page"]; }else{ $page=1; } $start_from = ($page-1) * $num_rec_per_page; if (isset($_GET['uname'])) { //连上数据库 $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } //查找 $sql = "SELECT * FROM content WHERE title LIKE '%".$_GET['uname']."%' LIMIT $start_from, $num_rec_per_page"; //执行 $result = $conn->query($sql); $total_records = mysqli_num_rows($result); // 统计总共的记录条数 $total_pages = ceil($total_records / $num_rec_per_page); // 计算总页数 //输出值 if ($result->num_rows > 0){ // 输出每行数据 while($row = $result->fetch_assoc()){ echo '<p>' . ' <li><a href=" ' . $row['url'] . '"> '. $row['url'] . '</a></li> '. PHP_EOL . PHP_EOL . $row['title'] . '</p>'; } }else{ echo "没数据"; } echo "<a href='search-page.php?page=1'>".'|<'."</a> "; // 第一页 for ($i=1; $i<=$total_pages; $i++) { echo "<a href='search-page.php?page=".$i."'>".$i."</a> "; }; echo "<a href='search-page.php?page=$total_pages'>".'>|'."</a> "; // 最后一页,注意把网址改到当前页 //关闭数据库连接,释放资源 $conn->close(); } ?> </p> </form> </body> </html> ``` 谢谢大家了。给点小提示。。
PHP WEB版QQ多人聊天,数据无法插入数据库
制作WEB版QQ多人聊天过程中, 无法将数据插入数据库,查找了多遍,实在不知哪里有错误,请各位老师帮忙看一下,给指点,非常感谢! 下面是各文件: ``` //my.js function getXmlHttpObject(){ var xmlHttpRequest; if(window.ActiveXObject){ xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP"); }else{ xmlHttpRequest=new XMLHttpRequest; } return xmlHttpRequest; } function $(id){ return document.getElementById(id); } <!-- login.php --> <?php ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>登录页面</title> </head> <body style="text-align: center;"> <h1>欢迎登录聊天室</h1> <form action="LoginController.php" method="post"> 用户名: <input type="text" name="username" /><br /><br /> 密&nbsp;码: <input type="password" name="passwd" /><br /><br /> <input type="submit" value="登录聊天室" /> </form> </body> </html> <!-- friendList.php --> <?php ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>好友列表</title> <script src="scripts/my.js"></script> <script> function change1(val,obj){ if(val=='over'){ obj.style.color="red"; obj.style.cursor="pointer"; }else if(val=='out'){ obj.style.color="black"; } } function openChatRoom(obj){ window.open("chatRoom.php?username="+obj.innerText,'',"width=300,height=500"); } </script> </head> <body style="text-align: center;"> <h1>好友列表</h1> <ul> <li onmouseover="change1('over',this)" onmouseout="change1('out',this)" onclick="openChatRoom(this)">小张</li> <li onmouseover="change1('over',this)" onmouseout="change1('out',this)" onclick="openChatRoom(this)">小王</li> <li onmouseover="change1('over',this)" onmouseout="change1('out',this)" onclick="openChatRoom(this)">小刘</li> </ul> </body> </html> <!-- LoginController.php --> <?php $loginUser=$_POST['username']; $pwd=$_POST['passwd']; if($pwd=="123"){ session_start(); $_SESSION['loginuser']=$loginUser; header("Location: friendList.php"); }else{ header("Location: login.php"); } ?> <!-- SendMessageController.php --> <?php include_once 'MessageService.class.php'; $sender=$_POST['sender']; $getter=$_POST['getter']; $con=$_POST['con']; // file_put_contents("d :/mylog.log",$sender."-".$getter."-".$con."\r\n",FILE_APPEND); $messageService=new MessageService(); $res=$messageService->addMessage($sender, $getter, $con); if($res==1){ }else{ echo "err"; } ?> <!-- MessageService.class.php --> <?php include_once 'SqlHelper.class.php'; class MessageService { function addMessage($sender, $getter, $con) { $sql="insert into messages(sender,getter,content,sendTime) values('$sender','$getter','$con',now())"; $sqlHelper=new SqlHelper(); return $sqlHelper->execute_dml($sql); } } ?> <!-- SqlHelper.class.php --> <?php class SqlHelper { public $conn; public $dbname="chat"; public $username="root"; public $password="123"; public $host="localhost"; public function __construct(){ $this->conn=mysql_connect($this->host,$this->username,$this->password); if(!$this->conn){ die("连接失败".mysql_error()); } mysql_select_db($this->dbname,$this->conn); } //执行dql语句 public function execute_dql($sql){ $res=mysql_query($sql,$this->conn) or die(mysql_error()); return $res; } //执行dql语句,但是返回的是一个数组 public function execute_dql2($sql){ $arr=array(); $res=mysql_query($sql,$this->conn) or die(mysql_error()); //把$res=>$arr 把结果集内容转移到一个数组中. while($row=mysql_fetch_assoc($res)){ $arr[]=$row; } //这里就可以马上把$res关闭. mysql_free_result($res); return $arr; } //考虑分页情况的查询,这是一个比较通用的并体现oop编程思想的代码 //$sql1="select * from where 表名 limit 0,6"; //$sql2="select count(id) from 表名" public function exectue_dql_fenye($sql1,$sql2,$fenyePage){ //这里我们查询了要分页显示的数据 $res=mysql_query($sql1,$this->conn) or die(mysql_error()); //$res=>array() $arr=array(); //把$res转移到$arr while($row=mysql_fetch_assoc($res)){ $arr[]=$row; } mysql_free_result($res); $res2=mysql_query($sql2,$this->conn) or die(mysql_error()); if($row=mysql_fetch_row($res2)){ $fenyePage->pageCount=ceil($row[0]/$fenyePage->pageSize); $fenyePage->rowCount=$row[0]; } mysql_free_result($res2); //把导航信息也封装到fenyePage对象中 $navigate=""; if ($fenyePage->pageNow>1){ $prePage=$fenyePage->pageNow-1; $navigate="<a href='{$fenyePage->gotoUrl}?pageNow=$prePage'>上一页</a>&nbsp;"; } if($fenyePage->pageNow<$fenyePage->pageCount){ $nextPage=$fenyePage->pageNow+1; $navigate.="<a href='{$fenyePage->gotoUrl}?pageNow=$nextPage'>下一页</a>&nbsp;"; } $page_whole=10; $start=floor(($fenyePage->pageNow-1)/$page_whole)*$page_whole+1; $index=$start; //整体每10页向前翻 //如果当前pageNow在1-10页数,就没有向前翻动的超连接 if($fenyePage->pageNow>$page_whole){ $navigate.="&nbsp;&nbsp;<a href='{$fenyePage->gotoUrl}?pageNow=".($start-1)."'>&nbsp;&nbsp;<<&nbsp;&nbsp;</a>"; } //定$start 1---》10 floor((pageNow-1)/10)=0*10+1 11->20 floor((pageNow-1)/10)=1*10+1 21-30 floor((pageNow-1)/10)=2*10+1 for(;$start<$index+$page_whole;$start++){ $navigate.="<a href='{$fenyePage->gotoUrl}?pageNow=$start'>[$start]</a>"; } //整体每10页翻动 $navigate.="&nbsp;&nbsp;<a href='{$fenyePage->gotoUrl}?pageNow=$start'>&nbsp;&nbsp;>>&nbsp;&nbsp;</a>"; //显示当前页和共有多少页 $navigate.=" 当前页{$fenyePage->pageNow}/共{$fenyePage->pageCount}页"; //把$arr赋给$fenyePage $fenyePage->res_array=$arr; $fenyePage->navigate=$navigate; } //执行dml语句 public function execute_dml($sql){ $b=mysql_query($sql,$this->conn) or die(mysql_error()); if(!$b){ return 0; //失败 }else{ if(mysql_affected_rows($this->conn)>0){ return 1;//表示执行ok }else{ return 2;//表示没有行受到影响 } } } //关闭连接的方法 public function close_connect(){ if(!empty($this->conn)){ mysql_close($this->conn); } } } ?> 数据库 create database chat; create table messages( id int unsigned primary key auto_increment, sender varchar(64) not null, getter varchar(64) not null, content varchar(3600) not null, sendTime datetime not null, isGet tinyint default 0) ``` 请老师们指点,多谢!
大家好,我刚学习php 怎么样把一行所有图片取出来?
在数据库表我是这样设计的 id 还有一些其他的杂项,然后主要是图片, 暂定图片大致有 img1 img2 img3 img4 img5 img6。 现在的问题是 id1 有可能是6个图片 都有数据 id2或者只有3个 或者5个 然而 id3 id4 图片数量不确定 该怎么办把有的图片取出来,意思是 id=1时 取出后面有数据的图片数据 我有点点思路了 大家看下对不对 ; $sql = "SELECT * FROM img where id = $id"; result = $mysqli->query($sql); if ($result->num_rows > 0) { while($row =$result->fetch_assoc()) { //存一个数组 $aa=array($row['img'],$row['img2'],$row['img3'],$row['img4'],$row['img5'],$row['img6']); //在把没有数据的的排除。。。。 }
求助:现在需要在oracle中先按照单位分组,然后将单位的各个数值信息进行相加统计,汇总成一行,请大神帮助,谢谢!!!
数据库:ORACLE 11G<br> 这是我根据工作环境创建的简化的表,实际单位有上百个,需要一个比较通用的方法。 原始数据表结构如下:<br> ![图片说明](https://img-ask.csdn.net/upload/201910/18/1571361779_863630.png) <br>需要达到的效果如下图:![图片说明](https://img-ask.csdn.net/upload/201910/18/1571361895_283475.png) <br>也就是先根据单位分类,然后将后面四个属性中的数值进行合并相加。 <br>如果达不到这样的效果也可以在每类单位下面加一行合计。 <br>测试表建表代码如下: ``` -- Create table create table TONGJI002 ( id NUMBER, danwei VARCHAR2(100), yilei NUMBER, erlei NUMBER, sanlei NUMBER, silei NUMBER ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64 next 1 minextents 1 maxextents unlimited ); insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (1, '第一中学', 2, 2, 5, 6); insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (2, '第一中学', 1, null, 4, null); insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (3, '第一中学', null, 3, null, 9); insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (4, '第二中学', null, null, 7, 8); insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (5, '第二中学', null, 5, null, null); insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (6, '第三中学', 3, 3, 4, 8); insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (7, '第三中学', 1, null, 5, null); insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (8, '第三中学', 1, 6, null, 9); insert into tongji002 (ID, DANWEI, YILEI, ERLEI, SANLEI, SILEI) values (9, '第三中学', null, null, 8, 8); ``` ## **急需大神帮助,跪谢!!!**
php网站查询到数据,然后实现对图片的编辑
1.用户在index.php网页填写入自己的身份证和数字ID,连接到数据库查询得到用户的Name,ID,身份证,地址,职位的信息。 2.跳转到一个页面xianshi.php,在里面设置好的5个文本框内显示查询到的这些信息, 3.xianshi.php末尾有个生成证书的button 4.点击这个button,网站生成一张含有用户信息的证书 这个是index的代码 <div> <input type="text" name="username" class="username" placeholder="您的名字" autocomplete="off"/> </div> <div> <input type="text" name="id_number" class="id_number" placeholder="输入身份证号" autocomplete="off" id="number"/> </div> <button id="submit" type="submit">查询</button> <?php if(isset($_POST["submit"])) { $a1=$_POST["username"]; $a2=$_POST["id_number"]; //连接服务器: $con = mysql_connect("数据库名localhost","账号root","密码123"); if(!$conn){ echo "数据库连接失败,请联系管理员"; } //选择数据库: $ok=mysql_select_db("记得要改数据表名",$con); //汉字编码: mysql_query("SET CHARACTER SET utf8"); //执行SQL语句: $result=mysql_query("SELECT * FROM 记得要改数据表 where StNum='$a1' and Sfz='$a2'", $con); //读取一行 $info=mysql_fetch_array($result,MYSQL_ASSOC); if($info==true) //如果有值 { header("Location:xianshi.php"); //跳转到xianshi.php } else { echo "查询有误,请输入正确的信息"; } } ?> 显示页面和xianshi.php,生成证书的button应该怎么写。 我看到网上说php需要GD2图形库才能实现对图片的编辑,我在阿里云ECS服务器的cent os弄了好久,vsftpd和httpd刚安装好,自己的电脑输入服务器地址无法访问。 求,各位帮帮忙,感激!
php+mysql查询问题,新手,不知道到底哪儿出了问题,烦死了
原本想点击Client ID就按client_id排序,点击Order Time就按order_time排序。。。。 可是点击了没有用,不知道是哪儿出现了问题,新手求大家帮忙解决一下哈~ <?php require_once "D:\PHP\pear\HTML\Table.php"; //连接数据库 $mysqli=new mysqli("localhost","root","xxxxxxxx","lianxi1"); //创建表属性数组 $attributes=array("border"=>"1"); //创建表对象 $table=new HTML_Table($attributes); //创建表头链接 $orderID="<a href='042.php?sort=id'>Order ID</a>"; $clientID="<a href='042.php?sort=client_id'>Client ID</a>"; $time="<a href='042.php?sort=order_time'>Order Time</a>"; $subtotal="<a href='042.php?sort=sub_total'>Sub Total</a>"; $shipping="<a href='042.php?sort=shipping_cost'>Shipping Cost</a>"; $totalcost="<a href='042.php?sort=total_cost'>Total Cost</a>"; //设置首部 $table->setHeaderContents(0,0,$orderID); $table->setHeaderContents(0,1,$clientID); $table->setHeaderContents(0,2,$time); $table->setHeaderContents(0,3,$subtotal); $table->setHeaderContents(0,4,$shipping); $table->setHeaderContents(0,5,$totalcost); //创建和执行查询 $sort=(isset($_GET['sort'])) ? $_GET['sort'] : "id"; $columns=array('id','client_id','order_time','sub_total','shipping_cost','total_cost'); if(in_array($sort,$columns)){ $query="select id as `Order ID`,client_id as `Client ID`, order_time as `Order Time`,concat('$',sub_total) as `Sub Total`, concat('$',shipping_cost) as `Shipping Cost`, concat('$',total_cost) as `Total Cost` from sales order by ? asc"; $stmt=$mysqli->prepare($query); //绑定参数 $stmt->bind_param('s',$sort); $stmt->execute();} //绑定结果 $stmt->bind_result($id,$client_id,$order_time,$sub_total,$shipping_cost,$total_cost); //格式化每一行 $rownum=1; while($stmt->fetch()){ $table->setCellContents($rownum,0,$id); $table->setCellContents($rownum,1,$client_id); $table->setCellContents($rownum,2,$order_time); $table->setCellContents($rownum,3,$sub_total); $table->setCellContents($rownum,4,$shipping_cost); $table->setCellContents($rownum,5,$total_cost); $rownum++; } //输出数据 echo $table->toHTML(); //关闭数据库 $mysqli->close(); ?> ![图片说明](https://img-ask.csdn.net/upload/201508/17/1439782873_183638.png)
PHP数组取值的奇怪问题,哪位帮忙给看看,谢谢~
在拉取微信用户信息写入数据库的过程中,遇到一个奇怪的问题,折磨了我一天了,希望哪位高人给看一下,在通过接口获取到微信用户的信息后,使用网上找的一个数据库操作类写入数据表,在数据库操作类的insert函数中有个检查传入数组元素是否为空的判断,只要去掉它,就获取不到数组数据了,加上它就有,奇怪了 wx.php ``` include "dbMysqli.class.php"; $db=ConnectMysqli::getIntance(); $url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$_SESSION['token']['access_token']."&openid=".$_SESSION['token']['openid']."&lang=zh_CN"; $res = https_request($url); $resArr = json_decode($res, true); $data = array("openID"=>"{$resArr['openid']}","nickName"=>"{$resArr['nickname']}","city"=>"{$resArr['city']}","province"=>"{$resArr['province']}","country"=>"{$resArr['country']}","headImgUrl"=>"{$resArr['headimgurl']}"); $db->insert('tb_users',$data); } ``` dbMysqli.class.php ``` <?php header('content-type:text/html;charset=utf-8'); /* 掌握满足单例模式的必要条件 (1)私有的构造方法-为了防止在类外使用new关键字实例化对象 (2)私有的成员属性-为了防止在类外引入这个存放对象的属性 (3)私有的克隆方法-为了防止在类外通过clone成生另一个对象 (4)公有的静态方法-为了让用户进行实例化对象的操作 */ class ConnectMysqli{ //私有的属性 private static $dbcon=false; private $host; private $port; private $user; private $pass; private $db; private $charset; private $link; //私有的构造方法 private function __construct($config=array()){ $this->host = isset($config['host']) ? $config['host'] : 'localhost'; $this->port = isset($config['port']) ? $config['port'] : '3306'; $this->user = isset($config['user']) ? $config['user'] : 'root'; $this->pass = isset($config['pass']) ? $config['pass'] : ''; $this->db = isset($config['db']) ? $config['db'] : 'db_uplus'; $this->charset=isset($arr['charset']) ? $arr['charset'] : 'utf8'; //连接数据库 $this->db_connect(); //选择数据库 $this->db_usedb(); //设置字符集 $this->db_charset(); } //连接数据库 private function db_connect(){ $this->link=mysqli_connect($this->host.':'.$this->port,$this->user,$this->pass); if(!$this->link){ echo "数据库连接失败<br>"; echo "错误编码".mysqli_errno($this->link)."<br>"; echo "错误信息".mysqli_error($this->link)."<br>"; exit; } } //设置字符集 private function db_charset(){ mysqli_query($this->link,"set names {$this->charset}"); } //选择数据库 private function db_usedb(){ mysqli_query($this->link,"use {$this->db}"); } //私有的克隆 private function __clone(){ die('clone is not allowed'); } //公用的静态方法 public static function getIntance(){ if(self::$dbcon==false){ self::$dbcon=new self; } return self::$dbcon; } //执行sql语句的方法 public function query($sql){ $res=mysqli_query($this->link,$sql); if(!$res){ echo "sql语句执行失败<br>"; echo "错误编码是".mysqli_errno($this->link)."<br>"; echo "错误信息是".mysqli_error($this->link)."<br>"; } return $res; } //打印数据 public function p($arr){ echo "<pre>"; print_r($arr); echo "</pre>"; } public function v($arr){ echo "<pre>"; var_dump($arr); echo "</pre>"; } //获得最后一条记录id public function getInsertid(){ return mysqli_insert_id($this->link); } /** * 查询某个字段 * @param * @return string or int */ public function getOne($sql){ $query=$this->query($sql); return mysqli_free_result($query); } //获取一行记录,return array 一维数组 public function getRow($sql,$type="assoc"){ $query=$this->query($sql); if(!in_array($type,array("assoc",'array',"row"))){ die("mysqli_query error"); } $funcname="mysqli_fetch_".$type; return $funcname($query); } //获取一条记录,前置条件通过资源获取一条记录 public function getFormSource($query,$type="assoc"){ if(!in_array($type,array("assoc","array","row"))) { die("mysqli_query error"); } $funcname="mysqli_fetch_".$type; return $funcname($query); } //获取多条数据,二维数组 public function getAll($sql){ $query=$this->query($sql); $list=array(); while ($r=$this->getFormSource($query)) { $list[]=$r; } return $list; } /* * 定义添加数据的方法 * @param string $table 表名 * @param string orarray $data [数据] * @return int 最新添加的id */ public function insert($table,$data){ //遍历数组,得到每一个字段和字段的值 $key_str=''; $v_str=''; foreach($data as $key=>$v){ if(empty($v)){ die("insert data error"); } //$key的值是每一个字段s一个字段所对应的值 $key_str.=$key.','; $v_str.="'$v',"; } $key_str=trim($key_str,','); $v_str=trim($v_str,','); //判断数据是否为空 $sql="insert into $table ($key_str) values ($v_str)"; $this->query($sql); //返回上一次增加操做产生ID值 return $this->getInsertid(); } /* * 删除一条数据方法 * @param1 $table, $where=array('id'=>'1') 表名 条件 * @return 受影响的行数 */ public function deleteOne($table, $where){ if(is_array($where)){ foreach ($where as $key => $val) { $condition = $key.'='.$val; } } else { $condition = $where; } $sql = "delete from $table where $condition"; $this->query($sql); //返回受影响的行数 return mysqli_affected_rows($this->link); } /* * 删除多条数据方法 * @param1 $table, $where 表名 条件 * @return 受影响的行数 */ public function deleteAll($table, $where){ if(is_array($where)){ foreach ($where as $key => $val) { if(is_array($val)){ $condition = $key.' in ('.implode(',', $val) .')'; } else { $condition = $key. '=' .$val; } } } else { $condition = $where; } $sql = "delete from $table where $condition"; $this->query($sql); //返回受影响的行数 return mysqli_affected_rows($this->link); } /** * [修改操作description] * @param [type] $table [表名] * @param [type] $data [数据] * @param [type] $where [条件] * @return [type] */ public function update($table,$data,$where){ //遍历数组,得到每一个字段和字段的值 $str=''; foreach($data as $key=>$v){ $str.="$key='$v',"; } $str=rtrim($str,','); //修改SQL语句 $sql="update $table set $str where $where"; $this->query($sql); //返回受影响的行数 return mysqli_affected_rows($this->link); } } ?> ```
加急!加急!php大作业,最后一行,id参数没法传递,不知怎么修改,求大神
<?php // Page分页函数 $page = $_GET["page"]; function Page($rows,$page_size){ global $page,$select_from,$select_limit,$pagenav; $page_count = ceil($rows/$page_size); if($page <= 1 || $page == '') $page = 1; if($page >= $page_count) $page = $page_count; $select_limit = $page_size; $select_from = ($page - 1) * $page_size.','; $pre_page = ($page == 1)? 1 : $page - 1; $next_page= ($page == $page_count)? $page_count : $page + 1 ; $pagenav .= "第 $page/$page_count 页 共 $rows 条记录 "; $pagenav .= "<a href='?page=1'>首页</a> "; $pagenav .= "<a href='?page=$pre_page'>前一页</a> "; $pagenav .= "<a href='?page=$next_page'>后一页</a> "; $pagenav .= "<a href='?page=$page_count'>末页</a>"; $pagenav.=" 跳到<select name='topage' size='1' onchange='window.location=\"?page=\"+this.value'>\n"; for($i=1;$i<=$page_count;$i++){ if($i==$page) $pagenav.="<option value='$i' selected>$i</option>\n"; else $pagenav.="<option value='$i'>$i</option>\n"; } } // Page分页函数 // 使用示例 if (!$conn= mysql_connect("localhost", "root" ,"")) die('数据库选择失败!'); if (!mysql_select_db("dzsw", $conn)) die('数据库选择失败!'); mysql_query('set names GBK'); // 用Page函数计算出 $select_from 从哪条记录开始检索、$pagenav 输出分页导航 $rows = mysql_num_rows(mysql_query("select * from shop")); Page($rows,2); $sql = "select * from shop limit $select_from $select_limit"; $rst = mysql_query($sql); echo "-----------名称------------------- 价格 --------------- 数量-------订购数量--------加入购物车 <hr />"; while ($row = mysql_fetch_array($rst)){ echo "-----------$row[mingcheng]--------------------$row[jiage] --------------------$row[shuliang]------订购数量:<input name='num' value=1 style='width:30px;'>-----<div><input type='button' onclick=\"location='addgouwuche.php?id=<?php echo $row[id];?>'\" value='购买' class='submit'></div> <hr />"; } echo $pagenav; ?>
php mysql update 语句数字正常插入,字母汉字不行
php与mysql的结合使用,对于数字的话操作完全正确,数据库中表的属性是varchar,数据库中也是set utf8了,但问题应该不是这里,不只汉字不行,英文字母也不行,只要6个列中有一行非数字的话,更新不会失败,但是会全部列都变成空,update语句如下: $query = "update user set Firstname='".$_GET[Firstname]."',Lastname='".$_GET[Lastname]."',Age='".$_GET[Age]."',Hometown='".$_GET[Hometown]."',Job='".$_GET[Job]."' where id=$_GET[id] "; 求大大们指导!谢谢!!! 代码: ![图片说明](https://img-ask.csdn.net/upload/201502/04/1423020807_315690.png)
使用jquery+AJAX实现3个字段的查询,回传显示,写入数据库,刷新局部网页table
事情是这样的,我是在一个工厂里面上班,想做一个车间内用的小型网站,因为不想在车间的服务器上建立数据表,怕我这个外行调试的时候,会影响到其他很重要的数据表,所以就自己下载了一个USBWEB套件(apache+mysql+php),我把这个装到车间其中一台电脑上,当我自己的小服务器, 我想用PHP做个网页,功能是有一个textbox,当这个的输入值达到11位的时候,自动查询公司的主服务器(mssql 2014版本)上的一个数据表,这个数据表上有一个字段就是我输入的这个11位数,另外有3个字段就是我需要的数值,我想把这3个查询到字段值显示在同一个网页上,用textbox或者lable都行,然后,再将这4个数值一起存入我这台电脑的MYSQL服务器内的数据表中,然后网页中间有个显示该mysql数据表内容的table,可以自动刷新一下,谢谢 总体就是 当输入数值(只有英文和数字)达到11位时, 自动按顺序执行, 查询MSSQL, 回传显示, 写入MYSQL, 刷新table, 清空输入框, ---------------------------------- 这个网页不需要页面布局等,我已经布局了,目前已知的是,听说jquery+ajax可以实现这个功能但楼猪是学化学的,实在很难理解,所以来悬赏求教,谢谢,希望有人帮俺 目前某位热心大佬已经给了我一个demo,可以实现输入响应的回传显示,但是我还是如何把输入值带入查询语句,写到那个结果集里面,也不知道怎么才能同时显示3个字段值。。。。谢谢 我这个好多要求,知道部分功能的人,也告诉我下好吗,谢谢,我同样会C币感谢的额,~~~~~ 以下是热心大佬提供的DEMO ------------------------------------------ 主网页 ``` <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> <title> js test </title> </head> <body> <script type="text/javascript"> function check(c){ $(function() { var id = c.value; if(id.length==6){ $.post('server.php', {'id':id}, function(ret) { $('#result').html(ret); },'json'); } }); } </script> <p>id:<input type="text" id="id" value="" onPropertyChange="check(this)" oninput="check(this)"></p> <p id="result"></p> </body> </html> ``` ------------------------------------------ PHP网页 ``` <?php $id = isset($_POST['id'])? $_POST['id'] : ''; $data = array( 111111 => '内容1', 222222 => '内容2', 333333 => '内容3' ); $ret = isset($data[$id])? $data[$id] : ''; header('content-type:application/json'); echo json_encode($ret); ?> ``` -------------------------------------------------------------- 是不是那那些插入到这个里面呢? $data = array( 插到这里吗? ); ------------------------------------------ 查询的服务器是MSSQL(2014版本) $serverName = "192.168.12.3"; $connInfo = array("Database"=>"ERP2", "UID"=>"fiber", "PWD"=>"fiber"); $conn = sqlsrv_connect($serverName, $connInfo); 表结构 ------------------------------------------ ms1 ----------------ms2 ----ms3----ms4 ------------------------------------------ ABC12345CB0 ----aa ---- aaa ----aaaa ABC12345CB1 ----bb ----bbb----bbbb ABC12345CB2 ---- cc ---- ccc----cccc ------------------------------------------ -----------------分-割-线-------------------------- 需要写入的服务器是MYSQL(好像是5) 192.168.12.6 Database = ceshi 账号 root 密码 a ------------------------------------------ my1------------ my2----my3---- my4 ------------------------------------------ ABC12345CB0 ----aa ----aaa ----aaaa ABC12345CB1 ----bb----bbb----bbbb ABC12345CB2 ---- cc---- ccc ---- cccc ------------------------------------------ 假设我输入类似这样的 ABC12345CB0 11位数字,需要查询这这数值的另外三个字段ms2 ms3 ms4 各自对应的数值,并回传显示到输入的网页上,不知该如何填写那个SERVER.php语句,谢谢~~~
PHP导入excel后少了一条数据
PHP程序中导入excel表格少了一条数据,比如上传了8条,但是数据库里却只有7条,少了第一条数据,怎么解决呢 我把判断上传是否成功注释了,if ($_FILES ['file_stu'] != null) { /* $tmp_file = $_FILES ['file_stu'] ['tmp_name']; $file_Arrs = explode ( ".", $_FILES ['file_stu'] ['name'] ); $file_type = $file_Arrs [1]; // 判别是不是.xls文件,判别是不是excel文件 if (strtolower ( $file_type ) != "xls" && strtolower ( $file_type ) != "xlsx") { echo "<script>alert('不是Excel文件,请重新上传!');location.href='readExcel.php'</script>"; } // 设置上传路径 $savePath = __DIR__ . "/upload/"; // 以时间来命名上传的文件 $file_name = $file_Arrs [0] . date ( '_Y-m-d H:i:s' ) . "." . $file_type; // 是否上传成功 if (! move_uploaded_file ( $tmp_file, $savePath . $file_name )) { echo "<script>alert('上传失败!');location.href='readExcel.php'</script>"; }*/ // 设置以Excel5格式(Excel97-2003工作簿) $reader = PHPExcel_IOFactory::createReader ( 'Excel5' ); $reader->setReadDataOnly ( true ); $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp; $cacheSettings = array ( ' memoryCacheSize ' => '1024MB' ); PHPExcel_Settings::setCacheStorageMethod ( $cacheMethod, $cacheSettings ); $PHPExcel = new PHPExcel (); // 载入excel文件 // $PHPExcel = $reader->load ( $savePath . $file_name ); $PHPExcel = $reader->load ("D:/WWW/FX_ZKDZ_W/01_develop/yunmu7913/upload/111_2016-08-21 14:47:42.xlsx"); echo "<pre>";print_r($PHPExcel); // 读取第一個工作表 $sheet = $PHPExcel->getSheet ( 0 ); echo "<pre>";print_r($sheet);exit; // 取得总行数 $highestRow = $sheet->getHighestRow (); // 取得总列数 $highestColumm = $sheet->getHighestColumn (); $datetime = date ( "Y-m-d H:i:s", time () ); $mysql->query ( "truncate orderdata" ); $sqlHead = "insert into `orderdata` values"; $sqlOther = ""; // 循环读取每个单元格的数据, 行数是以第1行开始 for($row = 3; $row <= $highestRow; $row ++) { $flag=0; foreach ($PHPExcel as $k=>$v){ if($v['uid']==$flag){ $flag=1; } } // 用户ID $uid = $sheet->getCell ( "B" . $row )->getValue (); // 总订单数 $totalOrder = $sheet->getCell ( "C" . $row )->getValue (); // 未分配 $notAllocated = $sheet->getCell ( "D" . $row )->getValue (); // 已下单 $single = $sheet->getCell ( "E" . $row )->getValue (); // 取消 $concle = $sheet->getCell ( "F" . $row )->getValue (); // 无效 $invalid = $sheet->getCell ( "G" . $row )->getValue (); // 跟踪中 $tracking = $sheet->getCell ( "H" . $row )->getValue (); // 已确认 $confirmed = $sheet->getCell ( "I" . $row )->getValue (); // 待发货 $toBeShipped = $sheet->getCell ( "J" . $row )->getValue (); // 已发货 $delivered = $sheet->getCell ( "K" . $row )->getValue (); // 拒收 $rejection = $sheet->getCell ( "L" . $row )->getValue (); // 已签收 $hasBeenSigned = $sheet->getCell ( "M" . $row )->getValue (); // 已结算 $settled = $sheet->getCell ( "N" . $row )->getValue (); if (!empty($uid) || $uid > 0) { $sqlOther = $sqlOther . "(null, {$uid}, {$totalOrder}, {$notAllocated}, {$single}, {$concle}, {$invalid}, {$tracking}, {$confirmed}, {$toBeShipped}, {$delivered}, {$rejection}, {$hasBeenSigned}, {$settled}, '{$datetime}' )"; } if ($row % 10 == 0 || $row == $highestRow) { $mysql->query ( $sqlHead . $sqlOther ); $sqlOther = ""; } else if (!empty($uid)) { $sqlOther = $sqlOther . ", "; } } echo "<script>alert('订单数据导入成功!');location.href='readExcel.php'</script>"; }
Dreamweaver中应用mysql语句遇到的问题
我在Dreamweaver中新建一个php文件saveaddleibie.php。代码如下: <?php include("conn/conn.php"); mysql_query("insert into tb_type(`id`,`typename`) values ('3','机械')",$conn); ?> 当然conn文件夹下的conn.php文件也写好。用DW打开saveaddleibie.php,按F12运行后,应该向数据库的tb_type表中插入数据。但结果令人无解,只插入成功'id'列的3, 'typename'列的'机械'没插入成功。具体看命令行的查询。如下图: ![图片说明](https://img-ask.csdn.net/upload/201504/16/1429188178_389342.jpg) 但我在命令行中输入语句insert into tb_type(`id`,`typename`) values ('3','机械')后, 两列都能正常插入。请各位大神,我该怎么办才能在用DW的方式正常插入两列数据呢?
求问,如何做一个二级联动的下拉表单(select),每点击一下按钮,表单增加一行。
求问,如何做一个二级联动的下拉表单(select),每点击一下按钮,表单增加一行。我现在的问题是,表单增加后,二级联动就没有效果了。 这是html和表单元素代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/tab.js"></script> <script type="text/javascript" src="js/select2.js"></script> <link href="css/select2.css" rel="stylesheet"/> </style> </head> <body> <br> <table class="table" > <thead> <tr> <th>厚度</th> <th>光度</th> <th>外观</th> </tr> </thead> <tbody> <tr id="a"> <td> <div class="demo"> <div id="city_5"> <select class="prov"></select> <select class="city" disabled="disabled"></select> <select class="dist" disabled="disabled"></select> </div> </div> </td> <td><input type="" name=""></td> <td><input type="" name=""></td> </tr> </tbody> </table> <button onclick="fun()">增加一行</button> <button onclick="del()">删除一行</button> <script type="text/javascript" src="jquery.cityselect.js"></script> <script type="text/javascript"> $(function() { $("#city_5").citySelect({ url: {"citylist": [ {"p": "前端课程", "c": [{"n": "HTML5"}, {"n": "CSS3", "a": [{"s": "HTML"}, {"s": "AJAX"}]}, {"n": "JSON"}]}, {"p": "编程语言", "c": [{"n": "C"}, {"n": "C++"}, {"n": "Python"}, {"n": "PHP"}, {"n": "JAVA"}]}, {"p": "数据库", "c": [{"n": "Mysql"}, {"n": "SqlServer"}, {"n": "Oracle"}, {"n": "Mssql"}]}, ]}, prov: "", city: "", dist: "", nodata: "none" }); }); </script> </body> </html> 这是增加一行的代码 var i = 1; $(".td").each(function(){ $(this).html(i++); }) function fun(){ var $td = $("#a").clone(); //增加一行,克隆第一个对象 $(".table").append($td); var i = 1; $(".td").each(function(){ //增加一行后重新更新序号1,2,3...... $(this).html(i++); }) $("table tr:last").find(":input").val(''); //将尾行元素克隆来的保存的值清空 } function del(){ $("table tr:not(:first):not(:first):last").remove(); //移除最后一行,并且保留前两行 } 这是二级联动代码 /* Ajax 三级省市联动 http://code.ciaoca.cn/ 日期:2012-7-18 settings 参数说明 ----- url:省市数据josn文件路径 prov:默认省份 city:默认城市 dist:默认地区(县) nodata:无数据状态 required:必选项 ------------------------------ */ (function($) { $.fn.citySelect = function(settings) { if (this.length < 1) { return; } ; // 默认值 settings = $.extend({ url: "city.min.js", prov: null, city: null, dist: null, nodata: null, required: true }, settings); var box_obj = this; var prov_obj = box_obj.find(".prov"); var city_obj = box_obj.find(".city"); var dist_obj = box_obj.find(".dist"); var prov_val = settings.prov; var city_val = settings.city; var dist_val = settings.dist; var select_prehtml = (settings.required) ? "" : "<option value=''>请选择</option>"; var city_json; // 赋值市级函数 var cityStart = function() { var prov_id = prov_obj.get(0).selectedIndex; if (!settings.required) { prov_id--; } ; city_obj.empty().attr("disabled", true); dist_obj.empty().attr("disabled", true); if (prov_id < 0 || typeof (city_json.citylist[prov_id].c) == "undefined") { if (settings.nodata == "none") { city_obj.css("display", "none"); dist_obj.css("display", "none"); } else if (settings.nodata == "hidden") { city_obj.css("visibility", "hidden"); dist_obj.css("visibility", "hidden"); } ; return; } ; // 遍历赋值市级下拉列表 temp_html = select_prehtml; $.each(city_json.citylist[prov_id].c, function(i, city) { temp_html += "<option value='" + city.n + "'>" + city.n + "</option>"; }); city_obj.html(temp_html).attr("disabled", false).css({"display": "", "visibility": ""}); distStart(); }; // 赋值地区(县)函数 var distStart = function() { var prov_id = prov_obj.get(0).selectedIndex; var city_id = city_obj.get(0).selectedIndex; if (!settings.required) { prov_id--; city_id--; } ; dist_obj.empty().attr("disabled", true); if (prov_id < 0 || city_id < 0 || typeof (city_json.citylist[prov_id].c[city_id].a) == "undefined") { if (settings.nodata == "none") { dist_obj.css("display", "none"); } else if (settings.nodata == "hidden") { dist_obj.css("visibility", "hidden"); } ; return; } ; // 遍历赋值市级下拉列表 temp_html = select_prehtml; $.each(city_json.citylist[prov_id].c[city_id].a, function(i, dist) { temp_html += "<option value='" + dist.s + "'>" + dist.s + "</option>"; }); dist_obj.html(temp_html).attr("disabled", false).css({"display": "", "visibility": ""}); }; var init = function() { // 遍历赋值省份下拉列表 temp_html = select_prehtml; $.each(city_json.citylist, function(i, prov) { temp_html += "<option value='" + prov.p + "'>" + prov.p + "</option>"; }); prov_obj.html(temp_html); // 若有传入省份与市级的值,则选中。(setTimeout为兼容IE6而设置) setTimeout(function() { if (settings.prov != null) { prov_obj.val(settings.prov); cityStart(); setTimeout(function() { if (settings.city != null) { city_obj.val(settings.city); distStart(); setTimeout(function() { if (settings.dist != null) { dist_obj.val(settings.dist); } ; }, 1); } ; }, 1); } ; }, 1); // 选择省份时发生事件 prov_obj.bind("change", function() { cityStart(); }); // 选择市级时发生事件 city_obj.bind("change", function() { distStart(); }); }; // 设置省市json数据 if (typeof (settings.url) == "string") { $.getJSON(settings.url, function(json) { city_json = json; init(); }); } else { city_json = settings.url; init(); } ; }; })(jQuery);
PHP 请问 Notice: Undefined variable
Notice: Undefined variable: rs in /home/sujata/Public/guestbook4/edit.php on line 44 (48,52,56) 44行: ``` <td><input type="text" name="username" value="<?php echo $rs['username'];?>" /></td> ``` 请问问题出在哪里? edit.php: ``` <?php define('DEBUG', ture); if (DEBUG) { ini_set("display_errors", 1); error_reporting(E_ALL); } include "conn.php"; if (!empty($_GET['id'])) { $sql = 'SELECT * FROM user where id = ' . $_GET['id']; $query = mysql_query($sql); $rs = mysql_fetch_array($query); } if (!empty($_POST['sub'])) { $username = $_POST['username']; $email = $_POST['email']; $content = $_POST['content']; $refer_url = $_POST['refer_url']; $mysql = 'UPDATE user SET username = ' . $username . ', email = ' . $email . ', content = ' . $content . ', refer_url = ' . $refer_url; if (mysql_query($mysql)) { echo "修改成功!"; header("refresh:5;url = 'admin.php'"); } else { echo "修改失败"; } } ?> <html> <head> <meta http-equiv="content-type" content="text/html" charset="utf8" /> <title>编辑</title> </head> <body> <table> <form method="post" action="edit.php"> <tr> <td>用户名:</td> <td><input type="text" name="username" value="<?php echo $rs['username'];?>" /></td> </tr> <tr> <td>邮箱:</td> <td><input type="text" name="email" value="<?php echo $rs['email'];?>" />请输入你的邮箱,方便我们及时取得联系</td> </tr> <tr> <td>内容:</td> <td><textarea name="content" cols="50" rows="5"><?php echo $rs['content'];?></textarea></td> </tr> <tr> <td>反馈网址:</td> <td><input type="text" name="refer_url" value="<?php echo $rs['refer_url'];?>" /></td> </tr> <tr> <td><input type="submit" name="sub" value="提交" /></td> </tr> </form> </table> </body> </html> ``` admin.php: ``` <h1>管理员后台</h1> <?php include "conn.php"; $sql = "select * from user"; $query = mysql_query($sql); while ($rs = mysql_fetch_array($query)) { ?> <html> <head> <meta http-equiv="content-type" content="text/html" charset="utf8" /> <title>管理员后台</title> </head> <body> <hr /> <table> <form method="post" action="index.php"> <tr> <td>用户名:</td> <td><?php echo $rs['username'];?>&nbsp;&nbsp;<a href="edit.php?id=<?php echo $rs['id']?>">编辑</a> &nbsp;&nbsp;<a href="del.php?del=<?php echo $rs['id']?>">删除</a></td> </tr> <tr> <td>留言时间:</td> <td><?php echo $rs['dates'];?></td> </tr> <tr> <td>邮件:</td> <td><?php echo $rs['email'];?></td> </tr> <tr> <td>内容:</td> <td><?php echo $rs['content'];?></td> </tr> <tr> <td>反馈网址:</td> <td><?php echo $rs['refer_url'];?></td> </tr> </form> </table> </body> </html> <?php } ?> ``` index.php: ```<?php include "conn.php"; //连接数据库文件 if (!empty($_POST['sub'])) { $username = $_POST['username']; $email = $_POST['email']; $content = $_POST['content']; $refer_url = $_POST['refer_url']; $sql = "insert into `user` (`id`,`username`,`dates`,`email`,`content`,`refer_url`) VALUES (null,'$username',now(),'$email','$content','$refer_url')"; $query = mysql_query($sql); if ($query) { echo ("已经收到你的信息啦,我们会加快步伐改进的。谢谢你的建议!<br />"); echo ("<a href=#>5秒后将自动跳转到首页,如果没有跳转你可以直接点击此连接</a>"); header("refresh:5;url='index.php'"); } else { echo "对不起,忙碌....能重新再试一遍吗?>_< " . mysql_error(); header("refresh:5;url='index.php'"); } } ?> <html> <head> <meta http-equiv="content-type" content="text/html" charset="utf8" /> <title>意见反馈</title> </head> <body> <table> <form method="post" action="index.php"> <tr> <td>用户名:</td> <td><input type="text" name="username" value="" /></td> </tr> <tr> <td>邮箱:</td> <td><input type="text" name="email" value="" />请输入你的邮箱,方便我们及时取得联系</td> </tr> <tr> <td>内容:</td> <td><textarea name="content" cols="50" rows="5">说点什么?</textarea></td> </tr> <tr> <td>反馈网址:</td> <td><input type="text" name="refer_url" value="" /></td> </tr> <tr> <td><input type="submit" name="sub" value="提交" /></td> </tr> </form> </table> </body> </html> ```
各位大佬,关于PHP转换json之后,js接收报错,求解!
我的测试代码,在自己电脑上运行是运行的 ``` <?php // header("content-type:text/html;charset=utf-8"); // header("Access-Control-Allow-Origin:*"); // header('Access-Control-Allow-Methods:POST'); // header('Access-Control-Allow-Headers:x-requested-with, content-type'); // header("Content-Security-Policy: upgrade-insecure-requests"); require_once(dirname(__FILE__) . './db-test/config.php'); header("Content-type: text/html; charset=utf-8"); error_reporting(0); //创建数据库连接 $mysqli = new Mysqli($dbhost, $dbuser, $dbpass, $dbname); if ($mysqli->connect_error) { die('connect error:' . $mysqli->connect_errno); } $method = !empty($_REQUEST['method']) ? trim($_REQUEST['method']) : ''; //获取时间 if ($method == "query") { $begin_time = $_GET['begin_time']; $begin = $begin_time; $finish_time = $_GET['finish_time']; $finish = $finish_time; //转换为时间戳 $begin_time = strtotime($begin_time); $finish_time = strtotime($finish_time); $selected = $_GET['selected']; //选择的 if ($selected=="jiaye"){ $sql = "SELECT * FROM wx_user where source <>'yunfeng' AND (subscribe_time>('$begin_time')) and subscribe_time<'$finish_time' ;"; }else{ $sql = "SELECT * FROM wx_user where source='yunfeng' AND (subscribe_time>('$begin_time')) and subscribe_time<'$finish_time';"; } $result = $mysqli->query($sql); $results = array(); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $results[] = $row; } $arr = json_encode($results,JSON_UNESCAPED_UNICODE); //echo($arr); } else { //默认筛选 //上个月的时间戳 $last_month = strtotime(date('Y-m-01 00:00:00',strtotime('-1 month'))); //获取今日开始时间戳和结束时间戳 $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; $result = $mysqli->query("select * from wx_user where source='yunfeng' AND (subscribe_time>('$last_month')) and subscribe_time<'$endToday' "); $results = array(); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $results[] = $row; } $arr = json_encode($results,JSON_UNESCAPED_UNICODE); } ?> <html> <head> <!-- 设置HTML5编码--> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"> <!-- 设置HTML5编码--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"/> --> <title>用户关注数据</title> <!-- 最新版本的 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <link href="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" rel="stylesheet"> <link href="//cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.css" rel="stylesheet"> <script src="http://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script> <script src="https://unpkg.com/tableexport.jquery.plugin/tableExport.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.bootcss.com/moment.js/2.18.1/moment-with-locales.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script> <script src="//cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.js"></script> <script src="//cdn.bootcss.com/bootstrap-table/1.11.1/locale/bootstrap-table-zh-CN.js"></script> <style> .Connection { display: inline-block; position: relative; margin: 0 5px 0 0; } </style> </head> <body> <h2 class="text-center"> <?php $selected = $_GET['selected']; if ($selected=="jiaye"){ echo "嘉业关注用户"; }else{ echo "云蜂关注用户"; } ?> </h2> <div class="Connection"> <div class="cell-left"> </div> </div> <div class="Connection"> <div class="cell-left"> <div class="form-group"> <select class="form-control" id="selected"> <option value="yunfeng">云蜂</option> <option <?php $selected = $_GET['selected']; if($selected==='jiaye'){ echo 'selected';}?> value="jiaye" >嘉业</option> </select> </div> 请选择起始日期: <input type='text' class="form-control" id='datetime1' style="width:200px; placeholder=" value="<?php echo $begin; ?>"""/> </div>       </div> <div class="Connection"> <div class="cell-left"> 请选择结束日期: <input type='text' class="form-control" id='datetime2' style="width:200px; placeholder=" value="<?php echo $finish; ?>"""/> </div>    </div> <div class="Connection"> <div class="cell-left"> <button class="btn btn-default" onclick="GetTime()">提交</button>    </div>   </div> <div class="Connection"> <div class="cell-left">     <button class="addBtn btn btn-default" id="exportTable"> 导出当前表格数据 </button>     </div>     </div> <script> function trim(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); } $(function () { $("#datetime1").datetimepicker({ format: 'YYYY-MM-DD ', locale: moment.locale('zh-cn') }); $("#datetime2").datetimepicker({ format: 'YYYY-MM-DD ', locale: moment.locale('zh-cn') }); }); var new_data = ""; function GetTime() { var selected= $("#selected").val(); var a = $(" #datetime1").val(); var b = $(" #datetime2").val(); var a= trim(a); var b= trim(b); // alert("第一个输入框" + a) //alert("第二个输入框" + b) location.href = "admin_weixin_subscribe_yunfeng.php?method=query&selected="+selected+"&begin_time=" + a + "&finish_time=" + b; } </script> <div class="table-responsive"> <table id="mytab" class="table table-striped table-bordered"> </table> </div> <script type="text/javascript"> var arr =<?php echo $arr;?>; $(function () { $('#mytab').bootstrapTable({ data: arr, dataType: 'json', queryParams: "queryParams", showColumns: true, //测试 新加 //showRefresh: true, //是否显示刷新按钮 toolbar: "#toolbar", //工具按钮用哪个容器 // editable:true; editable: true, clickEdit: true, showExport: true, sidePagination: "true", //分页方式:client客户端分页,server服务端分页(*) //striped: true, // 是否显示行间隔色 search: true, method: 'GET', //请求方式(*) //search : "true", //是否显示表格搜索 uniqueId: "ID", //每一行的唯一标识,一般为主键列 pageSize: "20", pageList: [10, 25, 50, 100, 'All'], //可供选择的每页的行数(*) pagination: true, // 是否分页 sortable: true, // 是否启用排序 clickToSelect: true, //是否启用点击选中行 columns: [ [{ "title": "<?php $selected = $_GET['selected']; if ($selected=="jiaye"){ echo "嘉业关注用户"; }else{ echo "云蜂关注用户"; } ?>", "halign": "center", "align": "center", //合体了5个列 "colspan": 13 } ], [{ field: 'openid', title: 'openid', sortable: true }, { field: 'nickname', title: '用户昵称', sortable: true, }, { field: 'userid', title: '序号', sortable: true, }, { field: 'subscribe_time', title: '时间戳', sortable: true, }, { title: '最后关注时间',//标题 可不加 edit: false, sortable: true, formatter: function (value, row, index) { return new Date(parseInt(row.subscribe_time) * 1000).toLocaleString().replace(/:\d{1,2}$/, ' '); } }, { field: 'sex', title: '性别', sortable: true, }, { field: 'language', title: '国别', sortable: true, }, { field: 'city', title: '所在国家', sortable: true, }, { field: 'province', title: '所在省份', sortable: true, }, { field: 'country', title: '所在城市', sortable: true, }, { field: 'mark', title: '备注', sortable: true, }, { field: 'subscribe_scene', title: '添加渠道', sortable: true, }, ] ] }); $("#exportTable").click(function () { //导出 $("#mytab").tableExport({ type: "excel", escape: "false", fileName: 'XX-XX关注信息' }); }); }); </script> </body> </html> ``` 运行结果:![图片说明](https://img-ask.csdn.net/upload/201907/08/1562576383_105519.jpg) 然后把代码放到公司服务器上,就报错![图片说明](https://img-ask.csdn.net/upload/201907/08/1562576482_194553.jpg) 非常非常奇怪、,,我看了数据库格式都是UTF-8 就是 script 那里不能把php解析的json给js 变量。。 求大佬帮助!!!!!! 为什么啊,我测试的时候都能 print出 json对象啊 header也加了 我觉得逻辑完全没问题啊啊啊啊
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python学习方法总结(内附python全套学习资料)
不要再问我python好不好学了 我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包也没啥问题。。。。。所以python真的是想学就一定能学会的!!!! --------------------华丽的分割线-------------------------------- ...
兼职程序员一般可以从什么平台接私活?
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
JAVA 基础练习题
第一题 1.查看以下代码,并写出结果 public class Test01 { public static void main(String[] args) { int i1 = 5; boolean result = (i1++ &gt; 5) &amp;&amp; (++i1 &gt; 4); System.out.println(result); Sy...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
C++知识点 —— 整合(持续更新中)
本文记录自己在自学C++过程中不同于C的一些知识点,适合于有C语言基础的同学阅读。如果纰漏,欢迎回复指正 目录 第一部分 基础知识 一、HelloWorld与命名空间 二、引用和引用参数 2.1引用的定义 2.2 将引用用作函数参数 2.3 将引用用于类对象 2.4 引用和继承 2.5 何时使用引用参数 2.6 引用和指针的区别 三、内联函数 四、默认参数的...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
Python实例大全(基于Python3.7.4)
博客说明: 这是自己写的有关python语言的一篇综合博客。 只作为知识广度和编程技巧学习,不过于追究学习深度,点到即止、会用即可。 主要是基础语句,如三大控制语句(顺序、分支、循环),随机数的生成,数据类型的区分和使用; 也会涉及常用的算法和数据结构,以及面试题相关经验; 主体部分是针对python的数据挖掘和数据分析,主要先攻爬虫方向:正则表达式匹配,常用数据清洗办法,scrapy及其他爬虫框架,数据存储方式及其实现; 最后还会粗略涉及人工智能领域,玩转大数据与云计算、进行相关的预测和分析。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
机械转行java自学经历,零基础学java,血泪总结的干货
机械转行java自学经历,零基础学java,血泪总结的干货 据说,再恩爱的夫妻,一生中都有100次想离婚的念头和50次想掐死对方的冲动。 求职路上亦是如此,打开这篇文章,相信你也有转行的想法。和身边的朋友聊过,入职后的他们,或多或少对现在的职位都有些不满,都有过转行的冲动。 可他们只是想,而我真的这样做了。 下面就介绍下我转行的血泪史。 我为什么要转行 高中复读了一年,考了个双非院校的机械。当时...
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
【Linux系统编程】Linux信号列表
00. 目录 文章目录00. 目录01. Linux信号编号02. 信号简介03. 特殊信号04. 附录 01. Linux信号编号 在 Linux 下,每个信号的名字都以字符 SIG 开头,每个信号和一个数字编码相对应,在头文件 signum.h 中,这些信号都被定义为正整数。信号名定义路径:/usr/include/i386-linux-gnu/bits/signum.h 要想查看这些信号和...
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
借助AI力量,谷歌解开生命奥秘?
全文共4484字,预计学习时长8分钟 Paweł Czerwiński发布在 Unsplash上的原图 假如疾病不复存在会发生什么?如果我们能像大自然一样迅速获取能量又会发生什么?要是我们能够在极短时间内循环塑料、废油、或其它的一些物质呢?如果人类能够解开生命的奥秘,那么以上这些想象将在未来成为现实。人工智能企业DeepMind的数据科学分析师日前在此领域有了重大发现。以下为具体内容:...
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问