mysqli_fetch_array() 反回的是一維陣列
1. 用print_r或var_dump檢查$row得到的是一維陣列(第一筆資料)
#!/usr/bin/php
<?php
$user='username';
$passwd='password';
$host='host';
$dbname='dbname';
$conn=mysqli_connect($host, $user, $passwd, $dbname);
$sql="select * from tablename";
$result=mysqli_query($conn,$sql);
$row=mysqli_fetch_array($result);
print_r($row);
?>
用print_r或var_dump檢查$row得到的是一維陣列(第一筆資料)
array
(
[0] => value of field0
[field0] => value of field0
[1] => value of field1
[field1] => value of field1
)
2.若要取出所有資料放入二維陣列
while($row = mysqli_fetch_array($result)) {
$data[] = $row;
}
3. 一般來說列印資料庫資料只需如下:
while($row = mysqli_fetch_array($result))
{
echo $row[0].",".$row[1]."\n";
}
4. 如果要取出所有資料庫資料放入二維陣列,再列印如下:
#!/usr/bin/php
<?php
$user='username';
$passwd='password';
$host='host';
$dbname='dbname';
$conn=mysqli_connect($host, $user, $passwd, $dbname);
$sql="select * from tablename";
$result=mysqli_query($conn,$sql);
$length = mysqli_num_rows($result);
while($row = mysqli_fetch_array($result))
{
$data[] = $row;
}
for ($i=0;$i<$length;$i++)
{
for ($j=0;$j<2;$j++) {
echo $data[$i][$j].",";
}
echo "\n";
}
?>
2016年10月27日 星期四
2016年10月22日 星期六
迴圈
1. For 迴圈
若於程式設計階段已知要執行的次數 則可使用for敘述
for 固定變量,限定數值範圍 (適用數值變量)
for start,end,step start,end,step都必須是數字
#!/bin/bash
for ((i=0; i<10; i++))
do
echo $i;
done
#!/bin/bash
Distro=('openSUSE' 'Red hat' 'Debian' 'Ubuntu' 'Fedora')
for ((i=0;i<${#Distro[@]};i++))
do
echo "Linux Distro[$i]=>"${Distro[$i]}
done
#!/usr/bin/perl
@array = ('openSUSE', 'Red hat', 'Debian', 'Ubuntu', 'Fedora');
$length = @array;
for ($i=0;$i<$length;$i++)
{
print "$array[$i]\n";
}
2. While迴圈
若未知執行次數的話 則應使用while或repeat
while迴圈 稱為前測試迴圈
while 限定條件
while(xx) xx可以是任何運算式
也就是說 先測試條件運算式為真時 繼續執行迴圈 也有可能不執行迴圈內容就直接離開
#!/bin/bash
i=0
while [ $i -lt 10 ];
do
echo $i;
((i
done
#!/bin/bash
Distro=('openSUSE' 'Red hat' 'Debian' 'Ubuntu' 'Fedora')
i=0
while [ $i -lt ${#Distro[@]} ]
do
echo "Linux Distro[$i]=>"${Distro[$i]}
((i++))
done
#!/usr/bin/perl
@array = ('openSUSE', 'Red hat', 'Debian', 'Ubuntu', 'Fedora');
$length = @array;
$i=0;
while ($i<$length)
{
print "$array[$i]\n";
$i++
}
3. do while迴圈
repeat 稱為後測試迴圈
也就是說 先執行迴圈 待條件運算式為真時再離開迴圈 也就是 迴圈內容至少執行一次
4. foreach迴圈
foreach提供陣列很便利的輸出方式,
foreach 語法結構說明:
結構一:
每跑一圈foreach會把陣列($array)的陣列值
(array value)存放到 $value 中。
foreach ( $array as $value )
... 執行程式碼 ...
結構二:
與結構一的意思一樣,但多增加了把陣列的所引
(array key)'會同時將array key 取出並存放於
$key 中。
foreach ( $array as $key => $value )
... 執行程式碼 ...
#!/usr/bin/php
<?php
$dataArray=array('openSUSE', 'Red hat', 'Debian', 'Ubuntu', 'Fedora');
foreach($dataArray as $daKey => $daValue)
{
echo "\$dataArray[$daKey]=>".$daValue."\n";
}
?>
#!/usr/bin/perl
@array = ('openSUSE', 'Red hat', 'Debian', 'Ubuntu', 'Fedora');
foreach my $i (@array)
{
print "$i\n";
}
2016年10月18日 星期二
判斷指令
1. cmd1 ; cmd2
無論對錯2個都執行
2. cmd1 && cmd2
第一的對,第二個執行
第一個錯,第二個跳掉不執行
第一個對,第二個錯。執行第一個
3. cmd1 || cmd2 || cmd3 || cmd4
從第一個開始有對的執行完畢
無論對錯2個都執行
2. cmd1 && cmd2
第一的對,第二個執行
第一個錯,第二個跳掉不執行
第一個對,第二個錯。執行第一個
3. cmd1 || cmd2 || cmd3 || cmd4
從第一個開始有對的執行完畢
單引號與雙引號,與跳脫符號
1. 電腦在讀字元時有時當字元看,有時不當字元看
e.g.: echo
echo abc -> abc
echo ~ -> /root
echo ' -> error
echo " -> error
echo ! -> !
echo @ -> @
echo * -> /......................
2. 產生2件事:不當字元的字有何意義。如何印出不當字元的字
如何印出不當字元的字: 用跳脫符號 \
e.g. : echo \~ -> ~
echo \' -> '
echo \" ->"
跳脫符號加特定字母有特意義。
e.g. : \n 換行
不當字元看的字有何意義
e.g.: 單引號與雙引號
echo '$PATH' -> $PATH (單引號內所有字元當字元)
echo ''$PATH" -> /usr/bin:/usr/local/bin(雙引號除了 一些特殊字元,例如$ 、 \,引號內所有字元當字元)
ex: echo '\' -> \
echo "\" -> error
php e.g.
#!/usr/bin/php
<?php
$color = 'red';
$item = 'hat';
$result = sprintf('I have a %s %s\n', $color,$item);
echo $result;
?>
ans:I have a red hat\n
#!/usr/bin/php
<?php
$color = 'red';
$item = 'hat';
$result = sprintf("I have a %s %s\n", $color,$item);
echo $result;
?>
ans:I have a red hat
最常見的一個例子是C程式語言中,用反斜線字元「\」作為跳脫字元,來表示那些不可打印的ASCII控制符。在URI協定中,跳脫字元是百分號「%」。
e.g.: echo
echo abc -> abc
echo ~ -> /root
echo ' -> error
echo " -> error
echo ! -> !
echo @ -> @
echo * -> /......................
2. 產生2件事:不當字元的字有何意義。如何印出不當字元的字
如何印出不當字元的字: 用跳脫符號 \
e.g. : echo \~ -> ~
echo \' -> '
echo \" ->"
跳脫符號加特定字母有特意義。
e.g. : \n 換行
不當字元看的字有何意義
e.g.: 單引號與雙引號
echo '$PATH' -> $PATH (單引號內所有字元當字元)
echo ''$PATH" -> /usr/bin:/usr/local/bin(雙引號除了 一些特殊字元,例如$ 、 \,引號內所有字元當字元)
ex: echo '\' -> \
echo "\" -> error
php e.g.
#!/usr/bin/php
<?php
$color = 'red';
$item = 'hat';
$result = sprintf('I have a %s %s\n', $color,$item);
echo $result;
?>
ans:I have a red hat\n
#!/usr/bin/php
<?php
$color = 'red';
$item = 'hat';
$result = sprintf("I have a %s %s\n", $color,$item);
echo $result;
?>
ans:I have a red hat
最常見的一個例子是C程式語言中,用反斜線字元「\」作為跳脫字元,來表示那些不可打印的ASCII控制符。在URI協定中,跳脫字元是百分號「%」。
2016年10月17日 星期一
家用常識
#延長線買: 防突波(anti-surge)
#水管彎的目的: trap
#套筒,板手
所謂二分、三分、四分,是指套筒和把手連接處的規格
2/8=1/4= 二分
3/8 = 三分
4/8 = 四分
力矩扳手:
長度X 力
牛頓米
1.和解
2.調解
勞資糾紛
房屋修繕
行車意外
消費爭議
醫療糾紛
合夥糾紛
財產爭議
3.傷害刑法
律師費
律師函
存證信函
訴狀
談話諮詢費
外出車馬費
訴訟委任
2016年10月13日 星期四
檔案系統的掛載與卸載(mount and umount)
檔案系統的掛載與卸載(mount and umount)
因為Linux的檔案系統的階層可以跨越獨立的分割區以及多重的磁碟機,所以有需要在開機的時候自動掛載這些檔案系統。此外,可抽換式磁碟(如抽取式硬碟,光碟等)以及遠端NFS伺服器上的檔案系統,會有經常性的掛載與卸載,因此不會採用開機時自動掛載的方式。開機時掛載有關的所有資訊會被紀錄載/etc/fstab檔案中。當系統開機時,定義於/etc/fstab檔案中的檔案系統將會受到檢查與掛載的處理。當使用者想要掛載可抽換式磁碟時,亦會參考到/etc/fstab中的資訊。
檔案/etc/fstab是一的文字檔,如以下的範例:
/dev/sda1 / btrfs defaults 1 1
/dev/sda2 /home xfs defaults 1 1
/dev/sda6 /root ext4 defaults 1 1
/dev/sda3 swap swap pri=42 0 0
usbdevfs /proc/bus/usb usbdevfs noauto 0 0
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0
/dev/sdb1 /home/user/usb vfat mode=0777,uid=500,gid=100 0 0
//ip/temp /home/user/temp cifs iocharset=utf8,user=user,password=,rw,uid=user,gid=users
/etc/fstab中每一列都有六個欄位,分別是:
1. Device(裝置)
這個欄位用來指定分割區的裝置檔,如/dev/sda1代表第一顆硬碟的第一個主要分割區。
2. Mount Point(掛載點)
這個欄位用來指定檔案系統所要掛載的目錄。如上例/dev/sda1包含root檔案系統,則會被掛載到 / 目錄。/dev/sda2 掛載到/home目錄,代表將第一顆硬碟的第二的主要分割區整個掛到/home底下,於是/home底下的使用者檔案便可共用一整個partition。
3. Filesystem Type(檔案系統類型)
不同的檔案系統具有不同的Filesystem Type。
4. Mount Options(掛載類型)
這個欄位包含一份以逗號隔開的選項清單。一般指定檔案系統是要以唯讀,可讀寫,或預設等等的方式掛上。
5. Dump Frequency(備份頻率)
dump程式(一個標準的unix備份工具)會參考到/etc/fstab中每個檔案系統在這裡的設定,以決定每個檔案系統多久備份一次。設為0則代表不備分。
6. fsck的檢查順序
fsck 是一個unix標準的磁碟檢查及除錯的工具(程式)。開機時亦會執行fsck這個指令來檢查磁碟。當fsck指令的-A參數被指定時,便會參考到/etc/fstab這個檔案,並依照檢查順序欄位的數字大小依序作檢查。這個欄位只能出現0,1,2三個值。
0 表示fsck不檢查
1 先檢查
2 檢查完設為1的檔案系統後在檢查設為2的檔案系統。
掛載與卸載指令 – mount 及 umount
mount [-option]
mount -o uid=user -o gid=users -o mode=755 -t vfat /dev/sdb1 /home/usb
說明:
[-option]
-a 掛載/etc/fstab檔中所列示的所有分割區。但有noauto選項的分割區除外。例如光碟,或其他抽取式磁碟。
-h 顯示輔助說明
-r 將檔案系統掛成read-only(唯讀)
-w 將檔案系統掛成read-write(可讀寫)
-o mount-option 在命令列上指定掛載選項。
-t fstype 指定檔案系統類型。
掛載選項:
以下的選項可以用在mount指令中(上頁褐色部分,使用-o 選項)或/etc/fstab檔案中(第四個選項)。
sync 建立同步I/O,當對資料讀寫時,會同步寫入檔案系統。但因為同步,效率較差。
async 建立非同步I/O,一般使用這個。
auto 使用-a選項時會自動掛載的檔案系統。系統開機時會執行mount –a,也就是說,設定這個選項時,檔案系統便會在開機時被掛載。
noauto 與auto相反。
exec 允許分割區上所包含的程式可以被執行。
noexec 與exec相反
user 允許一般使用者掛載此檔案系統,但不允許一般使用者卸載。
users 允許一般使用者mount及umount此檔案系統。
nouser 一般使用者不可mount及umount此檔案系統。
ro 唯讀,與-r命令列選項相等。
rw 可讀寫,與-w命令列選項相等。
defaults 包含rw,exec,auto,nouser,async等。(用defaults就不用指定一堆)。
檔案系統類型:
以下的檔案系統類型可以用在mount指令中(上頁紅色部分,使用-t 選項)或/etc/fstab檔案中(第三個選項)。Linux包含的檔案系統類型非常之多,以下只列出最常用者:
ext4 標準linux檔案系統
vfat 一般windows的FAT16,FAT32均可在linux系統中指定為vfat檔案系統。
iso9660 光碟
nfs network file system。遠端檔案系統。
swap swap(虛擬記憶體)分割區。
cifs
auto
因為Linux的檔案系統的階層可以跨越獨立的分割區以及多重的磁碟機,所以有需要在開機的時候自動掛載這些檔案系統。此外,可抽換式磁碟(如抽取式硬碟,光碟等)以及遠端NFS伺服器上的檔案系統,會有經常性的掛載與卸載,因此不會採用開機時自動掛載的方式。開機時掛載有關的所有資訊會被紀錄載/etc/fstab檔案中。當系統開機時,定義於/etc/fstab檔案中的檔案系統將會受到檢查與掛載的處理。當使用者想要掛載可抽換式磁碟時,亦會參考到/etc/fstab中的資訊。
檔案/etc/fstab是一的文字檔,如以下的範例:
/dev/sda1 / btrfs defaults 1 1
/dev/sda2 /home xfs defaults 1 1
/dev/sda6 /root ext4 defaults 1 1
/dev/sda3 swap swap pri=42 0 0
usbdevfs /proc/bus/usb usbdevfs noauto 0 0
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0
/dev/sdb1 /home/user/usb vfat mode=0777,uid=500,gid=100 0 0
//ip/temp /home/user/temp cifs iocharset=utf8,user=user,password=,rw,uid=user,gid=users
/etc/fstab中每一列都有六個欄位,分別是:
1. Device(裝置)
這個欄位用來指定分割區的裝置檔,如/dev/sda1代表第一顆硬碟的第一個主要分割區。
2. Mount Point(掛載點)
這個欄位用來指定檔案系統所要掛載的目錄。如上例/dev/sda1包含root檔案系統,則會被掛載到 / 目錄。/dev/sda2 掛載到/home目錄,代表將第一顆硬碟的第二的主要分割區整個掛到/home底下,於是/home底下的使用者檔案便可共用一整個partition。
3. Filesystem Type(檔案系統類型)
不同的檔案系統具有不同的Filesystem Type。
4. Mount Options(掛載類型)
這個欄位包含一份以逗號隔開的選項清單。一般指定檔案系統是要以唯讀,可讀寫,或預設等等的方式掛上。
5. Dump Frequency(備份頻率)
dump程式(一個標準的unix備份工具)會參考到/etc/fstab中每個檔案系統在這裡的設定,以決定每個檔案系統多久備份一次。設為0則代表不備分。
6. fsck的檢查順序
fsck 是一個unix標準的磁碟檢查及除錯的工具(程式)。開機時亦會執行fsck這個指令來檢查磁碟。當fsck指令的-A參數被指定時,便會參考到/etc/fstab這個檔案,並依照檢查順序欄位的數字大小依序作檢查。這個欄位只能出現0,1,2三個值。
0 表示fsck不檢查
1 先檢查
2 檢查完設為1的檔案系統後在檢查設為2的檔案系統。
掛載與卸載指令 – mount 及 umount
mount [-option]
mount -o uid=user -o gid=users -o mode=755 -t vfat /dev/sdb1 /home/usb
說明:
[-option]
-a 掛載/etc/fstab檔中所列示的所有分割區。但有noauto選項的分割區除外。例如光碟,或其他抽取式磁碟。
-h 顯示輔助說明
-r 將檔案系統掛成read-only(唯讀)
-w 將檔案系統掛成read-write(可讀寫)
-o mount-option 在命令列上指定掛載選項。
-t fstype 指定檔案系統類型。
掛載選項:
以下的選項可以用在mount指令中(上頁褐色部分,使用-o 選項)或/etc/fstab檔案中(第四個選項)。
sync 建立同步I/O,當對資料讀寫時,會同步寫入檔案系統。但因為同步,效率較差。
async 建立非同步I/O,一般使用這個。
auto 使用-a選項時會自動掛載的檔案系統。系統開機時會執行mount –a,也就是說,設定這個選項時,檔案系統便會在開機時被掛載。
noauto 與auto相反。
exec 允許分割區上所包含的程式可以被執行。
noexec 與exec相反
user 允許一般使用者掛載此檔案系統,但不允許一般使用者卸載。
users 允許一般使用者mount及umount此檔案系統。
nouser 一般使用者不可mount及umount此檔案系統。
ro 唯讀,與-r命令列選項相等。
rw 可讀寫,與-w命令列選項相等。
defaults 包含rw,exec,auto,nouser,async等。(用defaults就不用指定一堆)。
檔案系統類型:
以下的檔案系統類型可以用在mount指令中(上頁紅色部分,使用-t 選項)或/etc/fstab檔案中(第三個選項)。Linux包含的檔案系統類型非常之多,以下只列出最常用者:
ext4 標準linux檔案系統
vfat 一般windows的FAT16,FAT32均可在linux系統中指定為vfat檔案系統。
iso9660 光碟
nfs network file system。遠端檔案系統。
swap swap(虛擬記憶體)分割區。
cifs
auto
訂閱:
文章 (Atom)