ฟอนต์ฟอรั่ม

F0NT Community (เก่า) => ห้องคอม => โพสต์ถูกเริ่มโดย: i-poon เมื่อ 27 มิ.ย. 2007, 22:49 น.

ชื่อเรื่อง: php ส่ง query ทีละหลายๆ ชุด???
โพสต์โดย: 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:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: ยุนเอ เมื่อ 27 มิ.ย. 2007, 23:05 น.


สร้าง storeproceur (พิมพ์ไม่ถูก  :08:)

แล้วเรียกใช้เลยครับ
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด???
โพสต์โดย: icez เมื่อ 27 มิ.ย. 2007, 23:07 น.
$query = "SELECT อะไรก็ว่าไป";

$queries = explode(";", $query);
foreach ($queries as $query)
mysql_query($query);
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 27 มิ.ย. 2007, 23:27 น.
ขอบคุณครับ แต่ผมไม่เข้าใจทั้งคู่เลยครับ  :05:

เดี๋ยวขอเอา keyword ไป search ใน google ก่อนนะ
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: ลุงซัน เมื่อ 27 มิ.ย. 2007, 23:33 น.
จริงๆก็คือการส่ง query ไปที่ละชุดละครับ
เหมือนที่ icez ว่าละครับ
ของ icez ใจตวามสำคัญอยู่ที่ foreach ($queries as $query) ซึ่งเรียกว่า collection คือจัดคำสั่งออกมาเป็นชุด(collection) แล้วใช้ foreach (ในแต่ละ query ใน collection นั้นให้ส่ง query ออกไป - จริงๆก็คือการส่งทีละ query แต่ส่งเป็นชุดเลย) ถ้าใช้ collection ไม่คล่องก็ใช้ส่งทีละบรรทัดก็ได้ครับใกล้เคียงกันมาก
--------
ของ เอ : ปิยะ คือ store procedure คือการบรรจุชุดคำสั่งไว้ที่ตัวบริหารจัดการฐานข้อมูล ซึ่งการทำงานเราก็เลือกชุดของคำสั่งที่ฝั่งอยู่บนฐานข้อมูลออกมาใช้งาน(เป็นเทคนิคในการทำงานฐานข้อมูลระดับที่สูงขึ้นและนิยมใช้ในระบบขนาดใหญ่)
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 27 มิ.ย. 2007, 23:39 น.
 :32:


พอจับทางได้แล้ว ขอบคุณครับ  :22:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: X11 เมื่อ 27 มิ.ย. 2007, 23:47 น.
อ้างคำพูดจาก: 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%"

ได้ไหมหนอ
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 28 มิ.ย. 2007, 13:01 น.
อ้างคำพูดจาก: X11 เมื่อ 27 มิ.ย. 2007, 23:47 น.

delete from table1, table2, table3, table5
where target like "%foo%" or target like "%bar%"


มีวิธีแบบนี้ด้วยเหรอเนี่ย  :14:!!

ขอบคุณครับ เดี๋ยวจะเอาไปลองดูนะ
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 28 มิ.ย. 2007, 15:43 น.
ขอเบิ้ล+ถามเพิ่มครับ

สมมุติมี 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:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: ยุนเอ เมื่อ 28 มิ.ย. 2007, 15:46 น.


javascript เลยครับ  :27:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 28 มิ.ย. 2007, 15:53 น.
php เถอะนะๆๆ  :05:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: ยุนเอ เมื่อ 28 มิ.ย. 2007, 15:54 น.


เขียนแทรกเข้าไปนิดเดียวเอง  :25:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 28 มิ.ย. 2007, 16:15 น.
คือมันต้องเผื่อเปลี่ยนจากแมวเป็นหมาด้วยอ่ะครับ

แบบว่าจำนวนรูปของแมวกับหมาก็ไม่เท่ากันไง  :42:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: ยุนเอ เมื่อ 28 มิ.ย. 2007, 17:06 น.


ก็เซตได้นะ  :09:

เขียนให้เป็นฟังก์ชั่นวนลูปพิมพ์  echo "<img src=animal_cat_1.jpg>\n";

โดยที่รับ param สองตัวคือชื่อไฟล(สีแดง)์ ที่น่าจะเป็น format เดียวกันอยู่แล้ว
และจำนวน Maximum(สีน้ำเงิน) ของรูปในเซตนั้นๆ (น่าจะรู้นะ หรืออาจจะเขียนโปรแกรมให้ไปหาเองก็ได้นะ)

ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: X11 เมื่อ 28 มิ.ย. 2007, 17:07 น.
พวก 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]] )
ก็น่าลองเหมือนกัน
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: ยุนเอ เมื่อ 28 มิ.ย. 2007, 17:11 น.


:25: ป้าหน่อย

ปล. ที่บอกจาวาสคริปต์เพราะไม่รู้ php เลย  :31:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 28 มิ.ย. 2007, 17:14 น.
ของเอมันจะแสดงกากบาทสีแดงออกมาเวลาเจอชื่อ file โดดไงครับ โจทย์นี้ดูดีๆ ไม่มี cat_3 กัับ cat_4 แต่มี cat_5 เลยนะ

ของพี่ x11 นี่เอาชื่อ file มาแสดงแต่ไม่ได้กรองแมวเลยนี่นา  {หมีโหด}
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: X11 เมื่อ 28 มิ.ย. 2007, 17:17 น.
ตัวอย่างแสดงชื่อไฟล์สั้นๆ
ไปเขียน string function check อีกทีสิ
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: ยุนเอ เมื่อ 28 มิ.ย. 2007, 17:18 น.
 :08: ไฟล์ไม่เรียงดีๆ อีก

ถ้ายังงั้น ปัญหามาตั้งแต่ การจัดเก็บข้อมูลแล้วครับ  {หมีโหด}

ใช้ acdsee batch file rename เลย  :30: :30:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: X11 เมื่อ 28 มิ.ย. 2007, 17:37 น.
ต้องลอง scandir() มันบอกว่า sort ได้
ถ้าไม่เยอะมาก็เก็บใน array แล้ว sort

ส่วนหาคำก็
int strpos ( string $haystack, mixed $needle [, int $offset] )

if ($getpos=strpos($file, "cat"))

ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 28 มิ.ย. 2007, 18:56 น.
คือจะเน้นกรองน่ะครับ ไม่ได้เน้น sort แหละ แหะๆ

ตอบเอ การจัดเก็บ file ไม่มีปัญหาหรอกครับ แต่ที่ทำแบบนี้เพราะเผื่ออยากลบ file ที่มีหมายเลขกลางๆ ออก การแสดงผลจะได้ไม่เจ๊งตาม file ที่ลบไปด้วยไง

ผมเรื่องมากไปหรือเปล่าเนี่ย  :42:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: ยุนเอ เมื่อ 28 มิ.ย. 2007, 19:54 น.


พอได้ชื่อไฟล์ใน folder image แล้วจากโค๊ดของป้าหน่อย

สร้างอีกฟังก์ชั่นในการกรอง list นั้นด้วย regular expression \^.mail\ จำที่ชัวร์ๆ ไม่ได้  :08:

ทีนี้ก็จะได้ list รูปล้วนๆ เหลือแต่ เลือกเอาไปแสดงผลแล้วละ
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 28 มิ.ย. 2007, 23:05 น.
\^.mail\ คืออะไรเหรอครับ  :18: ?
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: ยุนเอ เมื่อ 28 มิ.ย. 2007, 23:32 น.


regular expression ครับ
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: today เมื่อ 29 มิ.ย. 2007, 00:13 น.
regular expression อ๊าก
ทำข้อสอบหัวข้อนี้ ทำไม่ได้เลย ลืมอ่านมา
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 29 มิ.ย. 2007, 00:49 น.
โอเคๆ

แล้ว Regular Expression มันใช้ยังไงเหรอครับ  :05:
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: ยุนเอ เมื่อ 29 มิ.ย. 2007, 01:09 น.
http://en.wikipedia.org/wiki/Regular_expression
อธิบาย

http://www.regular-expressions.info/tutorial.html
tutorial

http://www.phpconcept.com/node/11
php regex
ชื่อเรื่อง: Re: php ส่ง query ทีละหลายๆ ชุด??
โพสต์โดย: i-poon เมื่อ 29 มิ.ย. 2007, 01:23 น.
ขอบคุณครับ  :46:


//เพิ่มเติม

เฮ้ย ไอ้ Regular อะไรนี่เจ๋งมากเลยนะเนี่ย เพิ่งรู้ว่ามีของแบบนี้ซ่อนอยู่ใน php ด้วย  :18: :18: :18:!!!