พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
PHP development / การแสดงผล
Anan
Anan
Sat 21 Oct 2006 19:59:32

สวัสดีครับ

มีเรื่องรบกวนขอคำแนะนำดังนี้ครับ

ผมมีโปรแกรมดังนี้ครับ

mysql_select_db("company",$link);
$sql="SELECT COUNT(company) AS num FROM company WHERE country like '".$country."' and ".$product."=1 order by company asc";
$res=mysql_query($sql, $link);
$row = mysql_fetch_array($res, MYSQL_ASSOC);
echo"<font color='#0000CD' face='verdana' size='1'>";
echo"<b>";
echo $row["num"];
echo" Companies of '".$country."' and ".$product." group";
echo"</b>";

$sql = "SELECT company, country, email1 from company WHERE country like '".$country."' and ".$product."=1 order by company asc";

$res=mysql_query($sql,$link);
$num_rows=mysql_num_rows($res);

$totalpage = ceil($num_rows / $pagelen);

$goto = ($_GET["page"] -1) * $pagelen;
$sql = "SELECT company, country, email1 from company WHERE country like '".$country."' and ".$product."=1 order by company asc LIMIT $goto, $pagelen";
$res = mysql_query( $sql,$link );
  echo"<table border=0 cellpadding=3 cellspacing=0>";
  echo"<tr><td><font color='#8B0000' face='verdana' size='1'><center><b>Company</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Country</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Email</b></center></font></td></tr>";

ซึ่งผลที่แสดงเป็นดังนี้ครับ

2 Companies of 'Australia' and agri group
Company
Country
Email
888 Natural Pty Ltd Australia mamalicos@aol.com
A & A Hashim Australia ahashim@bigpond.net.au
[1]

คำถามดังนี้ครับ

ตรงส่วนที่แสดงผล "2 Companies of 'Australia' and agri group"

เป็นไปได้ไหมครับที่ตรงส่วน agri group จะแสดงผลเป็น Agricultural Product group ครับ

ค่าของ agri นั้นเป็นตัวย่อของ Agricultural Product ที่ผมเก็บค่าใน mysql เพื่อช่องที่เก็บข้อมูลจะได้ไม่ยาวครับ ซึ่งตอนที่เก็บค่าผมเขียนดังนี้ครับ

<td><input type="checkbox" name="agri" value="1"><font color="#8B0000" face="verdana" size="1">Agricultural Products</font></td>

ดังนั้นการแสดงผลจึงออกมาเป็น 2 Companies of 'Australia' and agri group

ซึ่งเป็นไปได้ไหมครับที่จะแสดงผลออกมาเป็น 2 Companies of 'Australia' and Agricultural Products group

ขอคำแนะนำด้วยครับ

อนันต์

Administrator
Sat 21 Oct 2006 20:55:06
คุณก็อาจจะใส่การตรวจสอบลงไปก็ได้ครับ

switch($product){
    case "agri":
       $product = "Agricultural Products";
       break;
    ....
}
ประมาณนี้ครับ

หรือไม่เช่นนั้นก็เพิ่ม field เป็นชื่อที่ต้องการ เมื่อ query ก็ให้นำข้อมูลนี้ออกมาด้วยครับ
Anan
Anan
Sat 21 Oct 2006 21:49:59

สวัสดีและขอขอบคุณครับ คงต้องขอคำแนะนำด้วยครับ

ผมใส่การตรวจสอบลงในโปรแกรมดังนี้ครับ

<?session_start()?>
<meta http-equiv="Content-Type"  content="text/html; charset=tis-620"> 
<center>
<?
switch($product){
    case "agri":
       $product = "Agricultural Products";
       break;
 
    case"alkohol":
       $product = "Alkoholic Beverages";
       break;

    case"nonal":
       $product = "Non Alkoholic Beverages";
       break;
}
$pagelen = 10 ;
$_GET["page"] = $_REQUEST['page'];
if (empty($_GET["page"] )) { $_GET["page"] =1; }

$link=mysql_connect("localhost","root","");
if(!$link)
{
print("Error");
}
else
{
mysql_select_db("company",$link);
$sql="SELECT COUNT(company) AS num FROM company WHERE country like '".$country."' and ".$product."=1 order by company asc";
$res=mysql_query($sql, $link);
$row = mysql_fetch_array($res, MYSQL_ASSOC);
echo"<font color='#0000CD' face='verdana' size='1'>";
echo"<b>";
echo $row["num"];
echo" Companies of '".$country."' and ".$product." group";
echo"</b>";

$sql = "SELECT company, country, email1 from company WHERE country like '".$country."' and ".$product."=1 order by company asc";

$res=mysql_query($sql,$link);
$num_rows=mysql_num_rows($res);

$totalpage = ceil($num_rows / $pagelen);

$goto = ($_GET["page"] -1) * $pagelen;
$sql = "SELECT company, country, email1 from company WHERE country like '".$country."' and ".$product."=1 order by company asc LIMIT $goto, $pagelen";
$res = mysql_query( $sql,$link );
  echo"<table border=0 cellpadding=3 cellspacing=0>";
  echo"<tr><td><font color='#8B0000' face='verdana' size='1'><center><b>Company</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Country</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Email</b></center></font></td></tr>";
while($row=mysql_fetch_array($res,MYSQL_ASSOC))
 {
echo"<tr><td><font color='#8B0000' face='verdana' size='1'>
<a href=\"javascript:;\" onclick=\"window.open('popup_company.php', 'pw', 'width=250,height=150,toolbars=no,status=no');\">
".$row["company"]."</a></font></td>";


echo"<td><font color='#8B0000' face='verdana' size='1'>".$row["country"]."</font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'>".((isset($_SESSION["active"])&&$_SESSION["active"]="ok")?$row["email1"]:"Member only")."</font></td></tr>";
}
echo "</table>";

if ($_GET["page"] > 1) {
 $back = $_GET["page"]  - 1;
 echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."\"><img src=\"main_first.gif\" border=\"0\" align=\"absmiddle\" alt=\"First\"></a>\n";
 echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."=".$back."\"><img src=\"main_previous.gif\" border=\"0\" align=\"absmiddle\" alt=\"Previous\"></a>";
}

for($i=1 ; $i<=$totalpage ; $i++) {
 if ($i == $_GET["page"] ) {
  echo " [<b><font size =+1 color=#990000>$i</font></b>] \n";
 } else  {
  echo " <a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."\">".$i."</a>";
 }
}

if ($_GET["page"] < $totalpage) {
 $next = $_GET["page"]  +1;
 echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."=".$next."\"><img src=\"main_next.gif\" border=\"0\" align=\"absmiddle\" alt=\"Next\"></a>";
 echo " <a href=\"$PHP_SELF?page=".$totalpage."\"><img src=\"main_last.gif\" border=\"0\" align=\"absmiddle\" alt=\"Last\"></a> \n";
   }
}
 
?>

ปรากฎว่าเกิด error ดังนี้ครับ

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\appserv\www\web\main\main_search2.txt on line 32
Companies of 'Australia' and Agricultural Products group
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\appserv\www\web\main\main_search2.txt on line 42

Company
Country
Email

ขอคำแนะนำด้วยครับ

และขอช่วยอธิบายเพิ่มเติมด้วยครับว่าการเพิ่ม field เป็นชื่อที่ต้องการนั้น จะไปเพิ่มที่ไหนครับ?

อนันต์

Administrator
Sat 21 Oct 2006 22:26:11

<?session_start()?>
<meta http-equiv="Content-Type"  content="text/html; charset=tis-620"> 
<center>
<?
$pagelen = 10 ;
$_GET["page"] = $_REQUEST['page'];
if (empty($_GET["page"] )) { $_GET["page"] =1; }

$link=mysql_connect("localhost","root","");
if(!$link)
{
print("Error");
}
else
{
mysql_select_db("company",$link);
$sql="SELECT COUNT(company) AS num FROM company WHERE country like '".$country."' and ".$product."=1 order by company asc";
$res=mysql_query($sql, $link);
$row = mysql_fetch_array($res, MYSQL_ASSOC);
echo"<font color='#0000CD' face='verdana' size='1'>";
echo"<b>";
echo $row["num"];

switch($product){
    case "agri":
       $product = "Agricultural Products";
       break;
 
    case"alkohol":
       $product = "Alkoholic Beverages";
       break;

    case"nonal":
       $product = "Non Alkoholic Beverages";
       break;
}

echo" Companies of '".$country."' and ".$product." group";
echo"</b>";

ต้องอยู่หลังส่วนที่นำไปใช้ในการ query ครับ หรืออาจจะใช้ชื่อตัวแปรอื่นๆก็ได้ครับ

Anan
Anan
Sat 21 Oct 2006 23:16:20

ขอบคุณครับ ผมได้ใส่ code switch ลงในโปรแกรม ปรากฎว่ามี error ดังนี้ครับ

<?session_start()?>
<meta http-equiv="Content-Type"  content="text/html; charset=tis-620"> 
<center>
<?

$pagelen = 10 ;
$_GET["page"] = $_REQUEST['page'];
if (empty($_GET["page"] )) { $_GET["page"] =1; }

$link=mysql_connect("localhost","root","");
if(!$link)
{
print("Error");
}
else
{
mysql_select_db("company",$link);
$sql="SELECT COUNT(company) AS num FROM company WHERE country like '".$country."' and ".$product."=1 order by company asc";
$res=mysql_query($sql, $link);
$row = mysql_fetch_array($res, MYSQL_ASSOC);
echo"<font color='#0000CD' face='verdana' size='1'>";
echo"<b>";
echo $row["num"];

switch($product){
    case "agri":
       $product = "Agricultural Product";
       break;
 
    case"alkohol":
       $product = "Alkoholic Beverages";
       break;

    case"nonal":
       $product = "Non Alkoholic Beverages";
       break;

    case"bakery":
       $product = "Bakery Products";
       break;

    case"cannedfood":
       $product = "Canned Food";
       break;

    case"cereals":
       $product = "Cereals, Grains, Flours";
       break;

    case"candies":
       $product = "Candies, Snacks, Desserts";
       break;

    case"sugar":
       $product = "Sugar, Honey, Sweeteners";
       break;

   case"coffee":
       $product = "Coffee, Tea, Cacao";
       break;

   case"condiments":
       $product = "Condiments, Spices, Herbs";
       break;

   case"foodin":
       $product = "Food Ingredients";
       break;

   case"fruits":
       $product = "Fruits and Vegetables";
       break;

   case"dressings":
       $product = "Dressings and Seasonings";
       break;

   case"meat":
       $product = "Meat, Meat Products";
       break;

   case"milk":
       $product = "Milk, Cheese,Cream";
       break;

   case"oil":
       $product = "Oil, Fats Products";
       break;

   case"organic":
       $product = "Organic Products";
       break;

   case"pasta":
       $product = "Pasta, Sauces, Soups";
       break;

   case"ready":
       $product = "Ready and Convenience Food";
       break;

  case"seafood":
       $product = "Seafood, Fish Products";
       break;
}

echo" Companies of '".$country."' and ".$product." group";
echo"</b>";

$sql = "SELECT company, country, email1 from company WHERE country like '".$country."' and ".$product."=1 order by company asc";

$res=mysql_query($sql,$link);
$num_rows=mysql_num_rows($res);

$totalpage = ceil($num_rows / $pagelen);

$goto = ($_GET["page"] -1) * $pagelen;
$sql = "SELECT company, country, email1 from company WHERE country like '".$country."' and ".$product."=1 order by company asc LIMIT $goto, $pagelen";
$res = mysql_query( $sql,$link );
  echo"<table border=0 cellpadding=3 cellspacing=0>";
  echo"<tr><td><font color='#8B0000' face='verdana' size='1'><center><b>Company</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Country</b></center></font></td>";
  echo"<td><font color='#8B0000' face='verdana' size='1'><center><b>Email</b></center></font></td></tr>";
while($row=mysql_fetch_array($res,MYSQL_ASSOC))
 {
echo"<tr><td><font color='#8B0000' face='verdana' size='1'>
<a href=\"javascript:;\" onclick=\"window.open('popup_company.php', 'pw', 'width=250,height=150,toolbars=no,status=no');\">
".$row["company"]."</a></font></td>";


echo"<td><font color='#8B0000' face='verdana' size='1'>".$row["country"]."</font></td>";
echo"<td><font color='#8B0000' face='verdana' size='1'>".((isset($_SESSION["active"])&&$_SESSION["active"]="ok")?$row["email1"]:"Member only")."</font></td></tr>";
}
echo "</table>";

if ($_GET["page"] > 1) {
 $back = $_GET["page"]  - 1;
 echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."\"><img src=\"main_first.gif\" border=\"0\" align=\"absmiddle\" alt=\"First\"></a>\n";
 echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."=".$back."\"><img src=\"main_previous.gif\" border=\"0\" align=\"absmiddle\" alt=\"Previous\"></a>";
}

for($i=1 ; $i<=$totalpage ; $i++) {
 if ($i == $_GET["page"] ) {
  echo " [<b><font size =+1 color=#990000>$i</font></b>] \n";
 } else  {
  echo " <a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."\">".$i."</a>";
 }
}

if ($_GET["page"] < $totalpage) {
 $next = $_GET["page"]  +1;
 echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".$i."&alphabet=".$_GET["alphabet"]."=".$next."\"><img src=\"main_next.gif\" border=\"0\" align=\"absmiddle\" alt=\"Next\"></a>";
 echo " <a href=\"$PHP_SELF?page=".$totalpage."\"><img src=\"main_last.gif\" border=\"0\" align=\"absmiddle\" alt=\"Last\"></a> \n";
   }
}
 
?>

error ดังนี้ครับ

2 Companies of 'Australia' and Agricultural Product group
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\appserv\www\web\main\main_search2.txt on line 113
Company
Country
Email

แต่ถ้าเอาตรงส่วนที่เป็น switch ออก error ก็จะไม่มี ขอคำแนะนำด้วยครับ

อนันต์

Administrator
Sun 22 Oct 2006 00:17:03
$name = "";
switch($product){
    case "agri":
       $name = "Agricultural Product";
       break;
 
    case"alkohol":
       $name = "Alkoholic Beverages";
       break;

    case"nonal":
       $name = "Non Alkoholic Beverages";
       break;

    case"bakery":
       $name = "Bakery Products";
       break;

    case"cannedfood":
       $name = "Canned Food";
       break;

    case"cereals":
       $name = "Cereals, Grains, Flours";
       break;

    case"candies":
       $name = "Candies, Snacks, Desserts";
       break;

    case"sugar":
       $name = "Sugar, Honey, Sweeteners";
       break;

   case"coffee":
       $name = "Coffee, Tea, Cacao";
       break;

   case"condiments":
       $name = "Condiments, Spices, Herbs";
       break;

   case"foodin":
       $name = "Food Ingredients";
       break;

   case"fruits":
       $name = "Fruits and Vegetables";
       break;

   case"dressings":
       $name = "Dressings and Seasonings";
       break;

   case"meat":
       $name = "Meat, Meat Products";
       break;

   case"milk":
       $name = "Milk, Cheese,Cream";
       break;

   case"oil":
       $name = "Oil, Fats Products";
       break;

   case"organic":
       $name = "Organic Products";
       break;

   case"pasta":
       $name = "Pasta, Sauces, Soups";
       break;

   case"ready":
       $name = "Ready and Convenience Food";
       break;

  case"seafood":
       $name = "Seafood, Fish Products";
       break;
}

echo" Companies of '".$country."' and ".$name." group";
echo"</b>";

ประมาณนี้ครับ จริงๆถ้ามีมากแบบนี้ลองหาวิธี apply ลงใน db ก็ได้ครับจะยืดหยุ่นกว่ามากครับ
Anan
Anan
Sun 22 Oct 2006 17:16:25

ขอบคุณครับและใช้ได้แล้วครับ

มีอีกวิธีหนึ่งที่ผมเคยทำโดยการบันทึกลงใน database ใน mysql ดังนี้ครับ

<td><input type="checkbox" name="agri" value="Agricultural Products"><font color="#8B0000" face="verdana" size="1">Agricultural Products</font></td>

ซึ่งค่าที่แสดงผลออกมามันจะทำให้ตารางเก็บค่าใน mysql นั้นยาวมาก ซึ่งก็ได้เปลี่ยนมาเป็นแบบปัจจุบัน ซึ่งได้จากที่คุณแนะนำและผมคิดว่าดีกว่าเป็นอย่างนี้ครับ

<td><input type="checkbox" name="agri" value="1"><font color="#8B0000" face="verdana" size="1">Agricultural Products</font></td>

แต่ก็จะมาติดปัญหาว่าตอนที่จะแสดงผลออกมาเป็น Agricultural Products นั้นจะทำอย่างไร

ต้องขอขอบคุณมากครับที่ได้แนะนำ

อนันต์

Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login