phpincrement
⑴ php的疑問 請問已經設置auto_increment,ID為何不自加1
你不能這樣寫呀 ,你這樣寫意思是給id插入一個空值,當然報錯了。
INSERT INTO persons(iname,subject,message,contact,lasttime)VALUES ('$_POST[name]','$_POST[subject]','$_POST[message]','$_POST[contact]',now())
去掉id就可以了 ,它自己會自增的
⑵ php循環結構的怎麼使用的實例詳解
php的循環共有四種:while、do while、for、foreach。
while循環:
while(條件為真){
要執行的代碼;
}
do while循環:
do{
要執行的代碼;
}while(條件為真);
這兩種循環的區別在於,while循環先判斷條件後執行操作,而do while先執行一次操作後判斷條件。
for循環:
for(initcounter;testcounter;incrementcounter){
要執行的代碼;
}
/*
initcounter:初始化循環計數器的值
testcounter::評估每個循環迭代。如果值為TRUE,繼續循環。如果它的值為FALSE,循環結束。
incrementcounter:增加循環計數器的值
*/
例如
for($i=0;$i<=10;$i++){
echo"$i";
}
這個例子表示設定一個$i,其值為0,每次循環後$i加1,當$i<=10的條件為真是循環執行。這個循環結果就是顯示了0到10的所有整數。
foreach循環:
foreach循環只能用於遍歷數組array。
foreach($arrayas$value){
要執行的代碼,通常$value會在這里使用;
}
/*
$array為數組本身
$value為數組中的值,這里的$value不是數組,每次循環其值都會重寫
*/
例如
$colors=array("red","green","blue","yellow");
foreach($colorsas$value){
echo$value."/";
}
//結果為:red/green/blue/yellow/
每次循環都會將數組中的值依次寫入$value中,直到數組全部被遍歷完成後循環結束。
⑶ php如何實現訪問統計
兩種方式:
第一:使用一個文本文檔
每次讀取這個文本文檔的數,然後加1,再覆蓋寫入
關鍵代碼:
<?php
$txt_db='jsb.txt';
$nums=file_get_contents($txt_db);
$nums++;
file_put_contents($txt_db,$nums);
?>
第二:使用資料庫,設計數據表,每次更新資料庫。
個人建議:使用第一種方法。
原因:需求簡單,所以盡可能少佔資源,抗壓力強。
⑷ 重新研究這個問題:php無限分類的子分類如何再排序
SELECTid,DishCategory_Path,DishCategory_Name,DishCategory_Sort,concat(DishCategory_Path,'-',id)asfullpathFROMchi_categoryorderbyDishCategory_Sort,fullpath
先排序DishCategory_Sort是否可以?
⑸ php mysql 查詢表中AUTO_INCREMENT欄位名稱
desc 表名 ;
然後循環取欄位名和屬性,判斷哪個是主鍵 Key=='PRI'為主鍵
mysql> desc cdb_videos;
+--------------+-----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------------------+------+-----+---------+-------+
| vid | varchar(16) | NO | PRI | | |
| uid | mediumint(8) unsigned | NO | | 0 | |
| dateline | int(10) unsigned | NO | MUL | 0 | |
| displayorder | tinyint(3) | NO | MUL | 0 | |
| tid | mediumint(8) unsigned | NO | | 0 | |
| pid | int(10) unsigned | NO | | 0 | |
| vtype | tinyint(1) unsigned | NO | | 0 | |
| vview | mediumint(8) unsigned | NO | | 0 | |
| vtime | smallint(6) unsigned | NO | | 0 | |
| visup | tinyint(1) unsigned | NO | | 0 | |
| vthumb | varchar(128) | NO | | | |
| vtitle | varchar(64) | NO | | | |
| vclass | varchar(32) | NO | | | |
| vautoplay | tinyint(1) | NO | | 0 | |
+--------------+-----------------------+------+-----+---------+-------+
⑹ PHP的循環語句是什麼
在我們編寫代碼時,經常需要反復運行同一代碼塊。
我們可以使用循環來執行這樣的任務,而不是在腳本中添加若干幾乎相等的代碼行。
在 PHP 中,有以下循環語句:
while- 只要指定條件為真,則循環代碼塊
do...while- 先執行一次代碼塊,然後只要指定條件為真則重復循環
for- 循環代碼塊指定次數
foreach- 遍歷數組中的每個元素並循環代碼塊
PHP while 循環
只要指定的條件為真,while 循環就會執行代碼塊。
語法
while (條件為真) {
要執行的代碼;
}
下例首先把變數 $x 設置為 1($x=1)。然後執行 while 循環,只要 $x 小於或等於 5。循環每運行一次,$x 將遞增 1:
實例
<?php
$x=1;
while($x<=5) {
echo "這個數字是:$x <br>";
$x++;
}
?>
PHP do...while 循環
do...while 循環首先會執行一次代碼塊,然後檢查條件,如果指定條件為真,則重復循環。
語法
do {
要執行的代碼;
} while (條件為真);
下面的例子首先把變數 $x 設置為 1($x=1)。然後,do while 循環輸出一段字元串,然後對變數 $x 遞增 1。隨後對條件進行檢查($x 是否小於或等於 5)。只要 $x 小於或等於 5,循環將會繼續運行:
實例
<?php
$x=1;
do {
echo "這個數字是:$x <br>";
$x++;
} while ($x<=5);
?>
請注意,do while 循環只在執行循環內的語句之後才對條件進行測試。這意味著 do while 循環至少會執行一次語句,即使條件測試在第一次就失敗了。
下面的例子把 $x 設置為 6,然後運行循環,隨後對條件進行檢查:
<?php
$x=6;
do {
echo "這個數字是:$x <br>";
$x++;
} while ($x<=5);
?>
PHP for 循環
如果您已經提前確定腳本運行的次數,可以使用 for 循環。
語法
for (init counter; test counter; increment counter) {
code to be executed;
}
參數:
init counter:初始化循環計數器的值
test counter:: 評估每個循環迭代。如果值為 TRUE,繼續循環。如果它的值為 FALSE,循環結束。
increment counter:增加循環計數器的值
下面的例子顯示了從 0 到 10 的數字:
實例
<?php
for ($x=0; $x<=10; $x++) {
echo "數字是:$x <br>";
}
?>
PHP foreach 循環
foreach 循環只適用於數組,並用於遍歷數組中的每個鍵/值對。
語法
foreach ($array as $value) {
code to be executed;
}
每進行一次循環迭代,當前數組元素的值就會被賦值給 $value 變數,並且數組指針會逐一地移動,直到到達最後一個數組元素。
下面的例子演示的循環將輸出給定數組($colors)的值:
實例
<?php
$colors = array("red","green","blue","yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>
⑺ php 如何執行字元串中的函數
mixed call_user_func
( callable $callback
[, mixed $parameter
[, mixed $...
]] )
把第一個參數作為回調函數(callback),並且將其餘的參數作為回調函數的參數。
error_reporting(E_ALL);
functionincrement(&$var)
{
$var++;
}
$a=0;
call_user_func('increment',$a);
echo$a." ";
call_user_func_array('increment',array(&$a));//.3
echo$a." ";
後面可以跟多個參數!
⑻ php + mysql 如何在 批量INSERT 後得到 AUTO_INCREMENT 欄位的 ID呢
1、鎖表,插入5條,SELECT 倒序 LIMIT 5 ,解鎖
2、將插入5條,預留自增ID,插入5條,取ID范圍值
⑼ php插入mysql資料庫怎麼id自增,求前後台代碼
2種辦法
1.修改你的資料庫表,將ID設為自增長,註:只有主鍵才可以設置為自增長
id自增是由mysql負責的,設置id AUTO_INCREMENT 插入時不用插入id值就能實現自增CREATE TABLE `table ` (`id` INT(8) NOT NULL AUTO_INCREMENT, PRIMARY KEY(`id`));
2.代碼中進行處理
Statement ps;
ResultSet rs;
int id = 0;
..................
String sql="select max(id) as id from message";
rs = ps.executeQuery(sql);//查詢出最大ID
if(rs.next){//如果有ID,原有ID+1
id = rs.getInt("id")+1;
}else{//否則 ID 初始為0
id = 0;
}
//下面接你寫的代碼就OK了
PreparedStatement ps;
String sql="insert message (id,name,msg) value(?,?,?)"
ps.setString(1,id);
ps.setString(2,name);
ps.setString(3,msg);
⑽ PHP里如何獲取函數的調用者名稱
先放上來別人的例子吧:
call_user_func函數類似於一種特別的調用函數的方法,使用方法如下:
復制代碼 代碼如下:
function a($b,$c)
{
echo $b;
echo $c;
}
call_user_func('a', "111","222");
call_user_func('a', "333","444");
//顯示 111 222 333 444
?>
調用類內部的方法比較奇怪,居然用的是array,不知道開發者是如何考慮的,當然省去了new,也是滿有新意的:
復制代碼 代碼如下:
class a {
function b($c)
{
echo $c;
}
}
call_user_func(array("a", "b"),"111");
//顯示 111
?>
call_user_func_array函數和call_user_func很相似,只不過是換了一種方式傳遞了參數,讓參數的結構更清晰:
復制代碼 代碼如下:
function a($b, $c)
{
echo $b;
echo $c;
}
call_user_func_array('a', array("111", "222"));
//顯示 111 222
?>
call_user_func_array函數也可以調用類內部的方法的
復制代碼 代碼如下:
Class ClassA
{
function bc($b, $c) {
$bc = $b + $c;
echo $bc;
}
}
call_user_func_array(array('ClassA','bc'), array("111", "222"));
//顯示 333
?>
call_user_func函數和call_user_func_array函數都支持引用,這讓他們和普通的函數調用更趨於功能一致:
復制代碼 代碼如下:
function a($b)
{
$b++;
}
$c = 0;
call_user_func('a', $c);
echo $c;//顯示 1
call_user_func_array('a', array($c));
echo $c;//顯示 2
另:call_user_func函數和call_user_func_array函數都支持引用。
復制代碼 代碼如下:
<?php
function increment(&$var)
{
$var++;
}
$a = 0;
call_user_func('increment', $a);
echo $a; // 0
call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>