php ส่ง query ทีละหลายๆ ชุด???

เริ่มโพสต์โดย i-poon, 27 มิ.ย. 2007, 22:49 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

i-poon

มีปัญหาเรื่อง 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:
50 levels avaliable, 22 secrets levels avaliable :P

ยุนเอ



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

แล้วเรียกใช้เลยครับ
เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

icez

$query = "SELECT อะไรก็ว่าไป";

$queries = explode(";", $query);
foreach ($queries as $query)
mysql_query($query);

i-poon

ขอบคุณครับ แต่ผมไม่เข้าใจทั้งคู่เลยครับ  :05:

เดี๋ยวขอเอา keyword ไป search ใน google ก่อนนะ
50 levels avaliable, 22 secrets levels avaliable :P

ลุงซัน

จริงๆก็คือการส่ง query ไปที่ละชุดละครับ
เหมือนที่ icez ว่าละครับ
ของ icez ใจตวามสำคัญอยู่ที่ foreach ($queries as $query) ซึ่งเรียกว่า collection คือจัดคำสั่งออกมาเป็นชุด(collection) แล้วใช้ foreach (ในแต่ละ query ใน collection นั้นให้ส่ง query ออกไป - จริงๆก็คือการส่งทีละ query แต่ส่งเป็นชุดเลย) ถ้าใช้ collection ไม่คล่องก็ใช้ส่งทีละบรรทัดก็ได้ครับใกล้เคียงกันมาก
--------
ของ เอ : ปิยะ คือ store procedure คือการบรรจุชุดคำสั่งไว้ที่ตัวบริหารจัดการฐานข้อมูล ซึ่งการทำงานเราก็เลือกชุดของคำสั่งที่ฝั่งอยู่บนฐานข้อมูลออกมาใช้งาน(เป็นเทคนิคในการทำงานฐานข้อมูลระดับที่สูงขึ้นและนิยมใช้ในระบบขนาดใหญ่)
http://www.thaibuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

i-poon

 :32:


พอจับทางได้แล้ว ขอบคุณครับ  :22:
50 levels avaliable, 22 secrets levels avaliable :P

X11

อ้างคำพูดจาก: 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%"

ได้ไหมหนอ

i-poon

อ้างคำพูดจาก: X11 เมื่อ 27 มิ.ย. 2007, 23:47 น.

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


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

ขอบคุณครับ เดี๋ยวจะเอาไปลองดูนะ
50 levels avaliable, 22 secrets levels avaliable :P

i-poon

ขอเบิ้ล+ถามเพิ่มครับ

สมมุติมี 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:
50 levels avaliable, 22 secrets levels avaliable :P

ยุนเอ

เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

i-poon

50 levels avaliable, 22 secrets levels avaliable :P

ยุนเอ



เขียนแทรกเข้าไปนิดเดียวเอง  :25:
เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

i-poon

คือมันต้องเผื่อเปลี่ยนจากแมวเป็นหมาด้วยอ่ะครับ

แบบว่าจำนวนรูปของแมวกับหมาก็ไม่เท่ากันไง  :42:
50 levels avaliable, 22 secrets levels avaliable :P

ยุนเอ



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

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

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

เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

X11

พวก 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]] )
ก็น่าลองเหมือนกัน

SMF 2.1.7 © 2026, Simple Machines