目次
ディスカッション (解決策) への返信
ホームページ バックエンド開発 PHPチュートリアル チェックデータの概要の質問

チェックデータの概要の質問

Jun 23, 2016 pm 02:05 PM

チェックボックス、選択したデータに対して group_concat() 操作を実行したい場合、どのように実行しますか?


ディスカッション (解決策) への返信

$in=implode(',',$_POST['id']); //假设复选框name为id[]$sql="select id, group_concat(name) from tt where id in($in) group by id";...
ログイン後にコピー

jordan102 さん、素晴らしい回答をありがとうございます

私も質問したいのですが、通常、ページには一度に約 10 ~ 20 個のデータが表示されます。時間はかかりますが、一度に 1000 個の項目を選択したり、表示されているデータをすべて選択してから、不要なチェック ボックスをオフにする必要がある場合があります。このような状況では、通常どのように行動しますか? ? ?

コードを投稿して見てください

気絶して 10 回以上返信しました

フロントエンドのソース コード

<link rel="stylesheet" type="text/css" href="css/css.css" /><!--<link rel="stylesheet" type="text/css" href="css/style.css" />--><style type="text/css"> * {  padding:0;  margin:0; } body {	font-family:verdana;	font-size:12px;	margin-left: 0px;	margin-top: 0px; } .content {  width:700px;  margin:20px 10px; } .content h1 {  font-family:'??';  font-size:18px;  padding-bottom:5px; } table {  width:100%; } th, td {  padding:6px 0;  text-align:center; } th {  background-color:#accdf4;  color:#ffffff; }  tr {  background-color:#FFFFFE; }  .odd {  background-color:#FFFAFF; }  .highlight {  background-color:#E0E0E0;}.STYLE3 {font-size: 14px}</style><script type="text/javascript"> //?jsclass function addClass(element, value) {  if(!element.className) {   element.className = value; //element?class,?class?value?  } else {   element.className += " "+value; //element???class??м???,??value?  } }  //л? function stripeTable() {  var tables = document.getElementsByTagName("table"); //?еtable  for(var i=0; i<tables.length; i++) {   var rows = document.getElementsByTagName("tr");   for(var j=0; j<rows.length; j++) {    if(j%2 == 0) {     addClass(rows[j], "odd"); //?Уclass?odd     //rows[j].setAttribute("class", "odd");    }   }  } }  //??? function highlightRows() {  var rows = document.getElementsByTagName("tr");  for(var i=0; i<rows.length; i++) {   rows[i].oldClassName = rows[i].className; //???class?   rows[i].onmouseover = function() {    addClass(this, "highlight"); //??class?highlight?   }   rows[i].onmouseout = function() {    this.className = this.oldClassName; //?????class?   }  } }  window.onload = function() {  stripeTable();  highlightRows(); } </script><script language="javascript">  // --列头全选框被单击---  function ChkAllClick(sonName, cbAllId){      var arrSon = document.getElementsByName(sonName);   var cbAll = document.getElementById(cbAllId);   var tempState=cbAll.checked;   for(i=0;i<arrSon.length;i++) {    if(arrSon[i].checked!=tempState)             arrSon[i].click();   }  }    // --子项复选框被单击---  function ChkSonClick(sonName, cbAllId) {   var arrSon = document.getElementsByName(sonName);   var cbAll = document.getElementById(cbAllId);   for(var i=0; i<arrSon.length; i++) {       if(!arrSon[i].checked) {       cbAll.checked = false;       return;       }   }   cbAll.checked = true;  }  </script><h2 class="top_title">SKU对照表</h2><div class="content"><?PHPinclude_once ("page.class.php");include_once ("conn.php");$pageSize=10; if(empty($_GET['page'])) { $spage=1; } else { $spage=$_GET['page']; }$start=$spage*$pageSize-$pageSize;$result = mysql_query("SELECT COUNT(*) AS count FROM `sku_rule`");$row = mysql_fetch_array($result);		$total= $row['count'];$SQL = "SELECT * FROM `sku_rule` LIMIT $start , $pageSize";		$result = mysql_query($SQL);pageft($total,$pageSize,1,1,1,5);?><div id="opt">        <div id="query">                           <label></label>  			<select name="skuziduan[]">		   <option value="sku" selected="selected" >SKU</option>		   <option value="sale_sku" >订单SKU</option>                      </select>            <input type="text" class="input" id="product_name" />            <input type="submit" class="btn" id="find_btn" value="查 询" />        </div>        <input type="button" class="btn" id="add_btn" value="新 增" />        <input name="button" type="button" class="btn" id="del_btn" value="删 除" /></div>  <table width="49%" cellspacing="1" bgcolor="#0093C4" summary="user infomation table">   <thead>     <tr>       <th width="4%"><INPUT name="chkAll" id="chkAll" title="全选" onClick="ChkAllClick('skuziduan[]','chkAll')" type="checkbox" /></th>       <th width="17%" class="STYLE3">SKU</th>       <th width="27%" class="STYLE3">订单SKU</th>       <th width="32%" class="STYLE3">FNSKU</th>       <th width="20%" class="STYLE3">发货地区</th>      </tr>   </thead>   <tbody>     <?PHP  while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {  ?>     <tr>       <td><input type="checkbox" name="delivery[]" value="<?PHP echo $row['id']; ?>" /></td>       <td><?PHP echo $row['sku'] ?></td>       <td><?PHP echo $row['sale_sku'] ?></td>       <td><?PHP echo $row['fnsku'] ?></td>       <td><?PHP echo $row['delivery_areas'] ?></td>      </tr>     <?PHP  }  ?>   </tbody> </table></div><div class="digg"><?php echo $pagenav;?></div>
ログイン後にコピー

csdn が安定していないのはなぜですか? ?

ページング ソース コード、これはインターネットからダウンロードしたページング クラスです

<?php//为了避免重复包含文件而造成错误,加了判断函数是否存在的条件:@$page = $_GET['page'];if(!function_exists('pageft')){//定义函数pageft(),三个参数的含义为://$totle:信息总数;//$displaypg:每页显示信息数,这里设置为默认是20;//$url:分页导航中的链接,除了加入不同的查询信息“page”外的部分都与这个URL相同。//   默认值本该设为本页URL(即$_SERVER["REQUEST_URI"]),但设置默认值的右边只能为常量,所以该默认值设为空字符串,在函数内部再设置为本页URL。function pageft($totle,$displaypg=20,$shownum=0,$showtext=0,$showselect=0,$showlvtao=7,$url=''){//定义几个全局变量://$page:当前页码;//$firstcount:(数据库)查询的起始项;//$pagenav:页面导航条代码,函数内部并没有将它输出;//$_SERVER:读取本页URL“$_SERVER["REQUEST_URI"]”所必须。global $page,$firstcount,$pagenav,$_SERVER;//为使函数外部可以访问这里的“$displaypg”,将它也设为全局变量。注意一个变量重新定义为全局变量后,原值被覆盖,所以这里给它重新赋值。$GLOBALS["displaypg"]=$displaypg;if(!$page) $page=1;//如果$url使用默认,即空值,则赋值为本页URL:if(!$url){ $url=$_SERVER["REQUEST_URI"];}//URL分析:$parse_url=parse_url($url);$url_query=$parse_url["query"]; //单独取出URL的查询字串if($url_query){//因为URL中可能包含了页码信息,我们要把它去掉,以便加入新的页码信息。//这里用到了正则表达式,请参考“PHP中的正规表达式”$url_query=ereg_replace("(^|&)page=$page","",$url_query);//将处理后的URL的查询字串替换原来的URL的查询字串:$url=str_replace($parse_url["query"],$url_query,$url);//在URL后加page查询信息,但待赋值:if($url_query) $url.="&page"; else $url.="page";}else {$url.="?page";}//页码计算:$lastpg=ceil($totle/$displaypg); //最后页,也是总页数$page=min($lastpg,$page);$prepg=$page-1; //上一页$nextpg=($page==$lastpg ? 0 : $page+1); //下一页$firstcount=($page-1)*$displaypg;//开始分页导航条代码:if ($showtext==1){$pagenav="<span class='disabled'>".($totle?($firstcount+1):0)."-".min($firstcount+$displaypg,$totle)."/$totle 记录</span><span class='disabled'>$page/$lastpg 页</span>";}else{$pagenav="";	}//如果只有一页则跳出函数:if($lastpg<=1) return false;if($prepg) $pagenav.="<a href='$url=1'>首页</a>"; else $pagenav.='<span class="disabled">首页</span>';if($prepg) $pagenav.="<a href='$url=$prepg'>上一页</a>"; else $pagenav.='<span class="disabled">上一页</span>';if ($shownum==1){	$o=$showlvtao;//中间页码表总长度,为奇数	$u=ceil($o/2);//根据$o计算单侧页码宽度$u	$f=$page-$u;//根据当前页$currentPage和单侧宽度$u计算出第一页的起始数字	//str_replace('{p}',,$fn)//替换格式	if($f<0){$f=0;}//当第一页小于0时,赋值为0	$n=$lastpg;//总页数,20页	if($n<1){$n=1;}//当总数小于1时,赋值为1	if($page==1){		$pagenav.='<span class="current">1</span>';	}else{		$pagenav.="<a href='$url=1'>1</a>";	}	///////////////////////////////////////	for($i=1;$i<=$o;$i++){		if($n<=1){break;}//当总页数为1时		$c=$f+$i;//从第$c开始累加计算		if($i==1 && $c>2){			$pagenav.='...';		}		if($c==1){continue;}		if($c==$n){break;}		if($c==$page){			$pagenav.='<span class="current">'.$page.'</span>';		}else{			$pagenav.="<a href='$url=$c'>$c</a>";		}		if($i==$o && $c<$n-1){			$pagenav.='...';		}		if($i>$n){break;}//当总页数小于页码表长度时		}	if($page==$n && $n!=1){		$pagenav.='<span class="current">'.$n.'</span>';	}else{		$pagenav.="<a href='$url=$n'>$n</a>";		}}if($nextpg) $pagenav.="<a href='$url=$nextpg'>下一页</a>"; else $pagenav.='<span class="disabled">下一页</span>';if($nextpg) $pagenav.="<a href='$url=$lastpg'>尾页</a>"; else $pagenav.='<span class="disabled">尾页</span>';if ($showselect==1){//下拉跳转列表,循环列出所有页码:$pagenav.="跳至<select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n";for($i=1;$i<=$lastpg;$i++){if($i==$page) $pagenav.="<option value='$i' selected>$i</option>\n";else $pagenav.="<option value='$i'>$i</option>\n";}$pagenav.="</select>页";}}}?>
ログイン後にコピー

jordan102、ソース コードを投稿しました

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles