|
|
|
สอบถามกรณีการตัด string โดยใช้ function งงมาก ช่วยดูทีครับ |
|
|
|
|
|
|
|
<? $mail =check_word($firstname,$lastname,1);?>
<?
function check_word($firstname,$lastname,$i){
$fname=$firstname;
$lname=$lastname;
$flname=$fname."_".substr($lname,0,$i);
$sql="select count(*) from db_registermail where email ='$flname' ";
$r = mysql_query($sql);
while(mysql_result($r,0) > 0 || strlen($lname)==$i){
$i++;
$flname=$fname."_".substr($lname,0,$i);
$sql="select count(*) from db_registermail where email ='$flname' ";
$r = mysql_query($sql);
}
if (strlen($lname)==$i){ //กรณียาวถึง thaicreate_dotcom แล้วยังเจอชื่อซ้ำอีก
return $flname.rand(999,9999);
}else{
return $flname;
}
}
?>
http://www.firstmeditech.com/jquery/job/freelance.php
|
|
|
|
|
Date :
2010-08-11 10:06:38 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เท่าที่ผม ดู code จากคุณนะครับ
มันน่าจะ ประมวลผลว่า
ถ้า flname = email ให้ $i+1 เเล้วตัด string ถึงตัดแปล $i รอบเดียว เเล้วก็จบ
ซึ่งผมคิดว่า มันควรจะใช้คำสั่งพวก วน loop มากกว่า (พวก while หรือ for) เพราะถ้ามันยังซ้ำอยู่จะได้กลับมาทำใหม่ได้
เเละชื่อ ผมคิดว่าเราก็กำหนดไมได้ด้วยว่า เค้าจะใส่มากี่ตัวอักษรกันแน่
function check_word($firstname,$lastname,$i){
$i=0;
$fname=$firstname;
$lname=$lastname;
$flname=$fname."_".substr($lname,0,$i);
while("$query>0"){
$i++;
$flname=$fname."_".substr($lname,0,$i);
$sql="select email from db_registermail where email =$flname";
$query = mysql_query($sql);
}
}
ผมคิดว่า มันน่าจะประมาณนี้นะ เพระ $i เราก็ไม่รู้ว่าเค้าจะใส่มากี่ตัวอัษร
แนวคิดของผมคือ ถ้า$flname มันยังเหมือนกับ email ให้ กลับไป ทำใหม่
ปล. มันต้อง query ด้วยนะครับ มันถึงจะประมวลผล คำสั่งใน $sql ไม่งั้นมันก็เป็นแค่ string ทำธรรมดา นะครับ
และโคดที่ผมเขียนมันคงดูมั่วๆอยู่นะครับ คุณต้องเอาไปปรับดูด้วยนะครับ
|
|
|
|
|
Date :
2010-08-11 10:14:17 |
By :
- - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|