มีปัญหาเรื่อง php มาถามอีกแล้วครับ อยากรู้ว่าถ้าจะให้ php สั่ง query ไปที่ mysql ทีละหลายๆ query ต้องเขียนยังไงเหรอครับ?
เช่น สั่ง mysql_db_query ครั้งเดียว แต่ส่ง query ข้างล่างยกชุดเลย
DELETE FROM `table1` WHERE `target` = 'foo' LIMIT 1;
DELETE FROM `table1` WHERE `target` = 'bar' LIMIT 1;
DELETE FROM `table2` WHERE `target` = 'foobar' LIMIT 1;
DELETE FROM `table3` WHERE `target` = 'foofoobarbar' LIMIT 1;
DELETE FROM `table5` WHERE `target` = 'barfoobar' LIMIT 1;
ไปหาในเว็บ php.net ก็ไม่มีวี่แววว่าจะเจอวิธีครับ ช่วยหน่อยนะ :05:
สร้าง storeproceur (พิมพ์ไม่ถูก :08:)
แล้วเรียกใช้เลยครับ
$query = "SELECT อะไรก็ว่าไป";
$queries = explode(";", $query);
foreach ($queries as $query)
mysql_query($query);
ขอบคุณครับ แต่ผมไม่เข้าใจทั้งคู่เลยครับ :05:
เดี๋ยวขอเอา keyword ไป search ใน google ก่อนนะ
จริงๆก็คือการส่ง query ไปที่ละชุดละครับ
เหมือนที่ icez ว่าละครับ
ของ icez ใจตวามสำคัญอยู่ที่ foreach ($queries as $query) ซึ่งเรียกว่า collection คือจัดคำสั่งออกมาเป็นชุด(collection) แล้วใช้ foreach (ในแต่ละ query ใน collection นั้นให้ส่ง query ออกไป - จริงๆก็คือการส่งทีละ query แต่ส่งเป็นชุดเลย) ถ้าใช้ collection ไม่คล่องก็ใช้ส่งทีละบรรทัดก็ได้ครับใกล้เคียงกันมาก
--------
ของ เอ : ปิยะ คือ store procedure คือการบรรจุชุดคำสั่งไว้ที่ตัวบริหารจัดการฐานข้อมูล ซึ่งการทำงานเราก็เลือกชุดของคำสั่งที่ฝั่งอยู่บนฐานข้อมูลออกมาใช้งาน(เป็นเทคนิคในการทำงานฐานข้อมูลระดับที่สูงขึ้นและนิยมใช้ในระบบขนาดใหญ่)
:32:
พอจับทางได้แล้ว ขอบคุณครับ :22:
อ้างคำพูดจาก: i-poon เมื่อ 27 มิ.ย. 2007, 22:49 น.
มีปัญหาเรื่อง php มาถามอีกแล้วครับ อยากรู้ว่าถ้าจะให้ php สั่ง query ไปที่ mysql ทีละหลายๆ query ต้องเขียนยังไงเหรอครับ?
เช่น สั่ง mysql_db_query ครั้งเดียว แต่ส่ง query ข้างล่างยกชุดเลย
DELETE FROM `table1` WHERE `target` = 'foo' LIMIT 1;
DELETE FROM `table1` WHERE `target` = 'bar' LIMIT 1;
DELETE FROM `table2` WHERE `target` = 'foobar' LIMIT 1;
DELETE FROM `table3` WHERE `target` = 'foofoobarbar' LIMIT 1;
DELETE FROM `table5` WHERE `target` = 'barfoobar' LIMIT 1;
ไปหาในเว็บ php.net ก็ไม่มีวี่แววว่าจะเจอวิธีครับ ช่วยหน่อยนะ :05:
มันใช้
delete from table1, table2, table3, table5
where target like "%foo%" or target like "%bar%"
ได้ไหมหนอ
อ้างคำพูดจาก: X11 เมื่อ 27 มิ.ย. 2007, 23:47 น.
delete from table1, table2, table3, table5
where target like "%foo%" or target like "%bar%"
มีวิธีแบบนี้ด้วยเหรอเนี่ย :14:!!
ขอบคุณครับ เดี๋ยวจะเอาไปลองดูนะ
ขอเบิ้ล+ถามเพิ่มครับ
สมมุติมี file ใน folder image/ ดังนี้
animal_cat_1.jpg
animal_cat_2.jpg
animal_cat_5.jpg
animal_dog_1.jpg
animal_dog_2.jpg
human_poon_1.jpg
อยากให้ php เอารูปที่เป็นแมว (animal_cat_xx.jpg) ทั้งหมดมาแสดงแบบนี้
echo "<img src=animal_cat_1.jpg>\n";
echo "<img src=animal_cat_2.jpg>\n";
echo "<img src=animal_cat_5.jpg>\n";
ควรเขียนยังไงดีครับ :46:
javascript เลยครับ :27:
php เถอะนะๆๆ :05:
เขียนแทรกเข้าไปนิดเดียวเอง :25:
คือมันต้องเผื่อเปลี่ยนจากแมวเป็นหมาด้วยอ่ะครับ
แบบว่าจำนวนรูปของแมวกับหมาก็ไม่เท่ากันไง :42:
ก็เซตได้นะ :09:
เขียนให้เป็นฟังก์ชั่นวนลูปพิมพ์ echo "<img src=animal_cat_1.jpg>\n";
โดยที่รับ param สองตัวคือชื่อไฟล(สีแดง)์ ที่น่าจะเป็น format เดียวกันอยู่แล้ว
และจำนวน Maximum(สีน้ำเงิน) ของรูปในเซตนั้นๆ (น่าจะรู้นะ หรืออาจจะเขียนโปรแกรมให้ไปหาเองก็ได้นะ)
พวก directory function ปกติได้มั้ง
opendir() : http://www.php.net/manual/en/function.opendir.php
readdir() : http://www.php.net/manual/en/function.readdir.php
closedir() : http://www.php.net/manual/en/function.closedir.php
ทั่วไปมันก็ราวๆ
<?php
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != ".." && $file != "index.htm"
&& $file != "listfile.php")
echo "<a href=\"$file\">$file</a><br>";
}
closedir($handle);
}
readdir มันคืนค่าเป็น string
จะเขียน string function ดักเอาก็ได้
แต่เมื่อกี้ผ่านตา scandir()
array scandir ( string $directory [, int $sorting_order [, resource $context]] )
ก็น่าลองเหมือนกัน
:25: ป้าหน่อย
ปล. ที่บอกจาวาสคริปต์เพราะไม่รู้ php เลย :31:
ของเอมันจะแสดงกากบาทสีแดงออกมาเวลาเจอชื่อ file โดดไงครับ โจทย์นี้ดูดีๆ ไม่มี cat_3 กัับ cat_4 แต่มี cat_5 เลยนะ
ของพี่ x11 นี่เอาชื่อ file มาแสดงแต่ไม่ได้กรองแมวเลยนี่นา {หมีโหด}
ตัวอย่างแสดงชื่อไฟล์สั้นๆ
ไปเขียน string function check อีกทีสิ
:08: ไฟล์ไม่เรียงดีๆ อีก
ถ้ายังงั้น ปัญหามาตั้งแต่ การจัดเก็บข้อมูลแล้วครับ {หมีโหด}
ใช้ acdsee batch file rename เลย :30: :30:
ต้องลอง scandir() มันบอกว่า sort ได้
ถ้าไม่เยอะมาก็เก็บใน array แล้ว sort
ส่วนหาคำก็
int strpos ( string $haystack, mixed $needle [, int $offset] )
if ($getpos=strpos($file, "cat"))
คือจะเน้นกรองน่ะครับ ไม่ได้เน้น sort แหละ แหะๆ
ตอบเอ การจัดเก็บ file ไม่มีปัญหาหรอกครับ แต่ที่ทำแบบนี้เพราะเผื่ออยากลบ file ที่มีหมายเลขกลางๆ ออก การแสดงผลจะได้ไม่เจ๊งตาม file ที่ลบไปด้วยไง
ผมเรื่องมากไปหรือเปล่าเนี่ย :42:
พอได้ชื่อไฟล์ใน folder image แล้วจากโค๊ดของป้าหน่อย
สร้างอีกฟังก์ชั่นในการกรอง list นั้นด้วย regular expression \^.mail\ จำที่ชัวร์ๆ ไม่ได้ :08:
ทีนี้ก็จะได้ list รูปล้วนๆ เหลือแต่ เลือกเอาไปแสดงผลแล้วละ
\^.mail\ คืออะไรเหรอครับ :18: ?
regular expression ครับ
regular expression อ๊าก
ทำข้อสอบหัวข้อนี้ ทำไม่ได้เลย ลืมอ่านมา
โอเคๆ
แล้ว Regular Expression มันใช้ยังไงเหรอครับ :05:
http://en.wikipedia.org/wiki/Regular_expression
อธิบาย
http://www.regular-expressions.info/tutorial.html
tutorial
http://www.phpconcept.com/node/11
php regex
ขอบคุณครับ :46:
//เพิ่มเติม
เฮ้ย ไอ้ Regular อะไรนี่เจ๋งมากเลยนะเนี่ย เพิ่งรู้ว่ามีของแบบนี้ซ่อนอยู่ใน php ด้วย :18: :18: :18:!!!