Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > ผมทำระบบ search แล้วเวลาค้นหา แล้วจะกดเพิ่มสินค้าชิ้นนั้น ค่าแรกจะมีปัญหาที่


[PHP] ผมทำระบบ search แล้วเวลาค้นหา แล้วจะกดเพิ่มสินค้าชิ้นนั้น ค่าแรกจะมีปัญหาที่

 
Topic : 134453



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์



ผมทำระบบ search แล้วเวลาค้นหา แล้วจะกดเพิ่มสินค้าชิ้นนั้น ค่าแรกจะมีปัญหาที่ form ซึ่ง form ในค่าแรกจะไม่ขึ้นค่าid แต่สามารถกดเพิ่มแล้วเก็บข้อมูลได้

gf ประมาณนี้ครับคือค่าแรกจะไม่มี form


Code (PHP)
01.<?php
02.        if(isset($_POST["add_cart"])){                             
03.            if(isset($_SESSION["shopping_cart"]))               // เช็คว่ามีการสร้าง $_SESSION ขึ้นหรือยัง    เป็นการเช็คว่า สินค้าที่เพิ่มเข้ามามีอยู่หรือยัง ถ้ายังจะนำไอดีมา
04.            {
05.                $item_array_id = array_column($_SESSION["shopping_cart"], "item_id");                       // item_arra_id เก็บค่า array column  เก็บ item_id
06.                if(!in_array($_GET["item_id"], $item_array_id))                 // in_array เช็คว่ามีค่าอยู่ข้างในหรือยัง จะมีการนำไอดีมาเปรียบเทียบ
07.                {
08.                    $count = count($_SESSION["shopping_cart"]);
09.                    $_SESSION['numitem'] = $_SESSION['numitem'] + 1;
10.                    $item_array = array(
11.                        'item_id'               =>     $_GET["item_id"],
12.                        'item_name'               =>     $_POST["hidden_name"],
13.                        'item_price'          =>     $_POST["hidden_price"],
14.                        'item_quantity'          =>     $_POST["quantity"],
15.                        'item_nameshop'          =>     $_POST["hidden_nameshop"],
16.                    );
17.                    $_SESSION["shopping_cart"][$count] = $item_array;
18.                }
19.                else
20.                {
21.                    echo '<script>alert("สินค้าถูกเพิ่มแล้ว")</script>';   
22.                    echo '<script>window.location="Homepage.php"</script>';
23.                }
24.            }
25.            else                                                // จะเป็นการสร้าง array  ขึ้นมาแล้วเก็บไว้ใน $item_array ไปใส่ไว้ใน $_SESSION['shopping_cart']
26.            {   
27.                $_SESSION['numitem'] = $_SESSION['numitem'] + 1;
28.                $item_array = array(
29.                     
30.                    'item_id'               =>     $_GET["item_id"],
31.                    'item_name'               =>     $_POST["hidden_name"],
32.                    'item_price'          =>     $_POST["hidden_price"],
33.                    'item_quantity'          =>     $_POST["quantity"],
34.                    'item_nameshop'          =>     $_POST["hidden_nameshop"],
35.                );
36.                $_SESSION["shopping_cart"][0] = $item_array;
37.            }
38.        }
39.         
40.    ?>
41.     
42.    </div>
43.    <?php } ?>
44. 
45. 
46.<div class="row">
47.        <?php
48.            $num = 0;
49.            while($result = mysqli_fetch_assoc($query)){
50.            $num++; 
51.        ?>
52. 
53.            <div class="col-3 mt-5">
54.                <form method="post" action="Search.php?action=add&item_id=<?php echo $result['item_id'];?>">
55.                    <div class="card" style="width: 18rem; height: 43rem;">                <!-- rem คือขนาดความกว้าง-->
56.                     
57.                    <img src="Picture/<?php echo $result['photoname']; ?>" width="400" height="350" class="card-img-top" >
58. 
59.                        <div class="card-body">
60.                             
61.                            <h5 class="card-title"> <?php echo $result['nameitem'] ?> </h5>
62.                            <p class="card-text"> ราคา : <?php echo number_format($result['price'],2); ?></p>          <!-- number format เป็นการแปลงตัวเลขให้มี คอมม่า ,2 คือ การมีทศนิยมสองตัว-->
63.                             
64.                            <p class="card-text"> รายละเอียดสินค้า : <?php echo iconv_substr($result['descriptionitem'], 0, 83, "UTF-8");?></p>         <!-- เป็นการกำหนด ว่าเริมต้นที่ 0 และ จบตัวที่ 83 เป็นการกำหนดคำให้แสดงแค่ไหน และแสดงเป็นภาษาไทย -->
65.                            <input type="text" name="quantity" class="form-control" value="1" >
66.                            <input type="hidden" name="hidden_name"  value="<?php echo $result['nameitem'] ?>" >            <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
67.                            <input type="hidden" name="hidden_price" value="<?php echo $result['price'] ?>" >               <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
68.                            <input type="hidden" name="hidden_nameshop" value="<?php echo $result['nameshop'] ?>" >               <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
69. 
70.                            <a href="itemdetail.php?item_id=<?php echo $result['item_id'] ?>" class="btn btn-primary mt-4">ดูเพิ่มเติม</a>
71. 
72.                            <?php if (isset($_SESSION['member_id'])) { ?>
73.                            <input type="submit" name="add_cart" class="btn btn-success mt-4" value="เพิ่มลงตะกร้าสินค้า"/>
74.                            <?php } ?>
75. 
76.                        </div>
77.                         
78.                    </div>
79.                </form>
80.            </div>
81.            <div class="col-1">
82. 
83.            </div>
84. 
85.            <?php } ?>




Tag : PHP



ประวัติการแก้ไข
2019-11-05 04:24:19
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-11-05 04:21:41 By : byte00789 View : 796 Reply : 17
 

 

No. 1



โพสกระทู้ ( 4,170 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


มองไม่เห็นภาพน่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 08:47:48 By : Genesis™
 

 

No. 2



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ใช้ session ประกาศ session_start() หรือยัง

ต้องการให้แสดงค่าแรก ก็ต้องรู้ให้ได้ว่าค่าแรก เก็บไว้ในตัวแปรอะไร เพื่อที่จะได้นำไปแสดงได้ถูก

if else จัดลำดับการเรียกใช้ให้ถูกต้อง

เมื่อไม่พบตัวแปร post จะเอาค่าอะไรมาเป็นค่าเริ่มต้น
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 09:42:06 By : NewbiePHP
 

 

No. 3



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : Genesis™ เมื่อวันที่ 2019-11-05 08:47:48
รายละเอียดของการตอบ ::
คือวนลูปรอบแรก ค่า form มันไม่มี ลูปครั้งที่ 2 ค่า form มันมีอยู่ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 12:56:56 By : byte00789
 

 

No. 4



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : NewbiePHP เมื่อวันที่ 2019-11-05 09:42:06
รายละเอียดของการตอบ ::
ประกาศแล้วครับ คือค่าแรกมันไม่มีค่า จาก form แต่ค่าอื่นๆปกติเลยครับมีปัญหาแค่ค่าแรก

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 12:57:35 By : byte00789
 

 

No. 5



โพสกระทู้ ( 171 )
บทความ ( 0 )



สถานะออฟไลน์


บันทัดที่ 81 เกินมาหรือเปล่าครับ
น่าจะเอาอันนี้ออก

<div class="col-1">

</div>
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 13:52:43 By : birdbird27
 

 

No. 6



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : birdbird27 เมื่อวันที่ 2019-11-05 13:52:43
รายละเอียดของการตอบ ::
ไม่เกินครับผมจัดรูปแบบ ให้มันมีเว้นช่องไว้นะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 14:43:37 By : byte00789
 

 

No. 7



โพสกระทู้ ( 4,170 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : byte00789 เมื่อวันที่ 2019-11-05 14:43:37
รายละเอียดของการตอบ ::
ถ้าใน Concept : Search Product (thumbnail) แนะนำให้วน Loop เป็นค่า LIKE Name% ไว้ครับมันจะได้ไม่เจาะจงชื่อ Product
เดี๋ยวค่อยมา Like Variable อีกที



ประวัติการแก้ไข
2019-11-05 15:03:14
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 14:57:17 By : Genesis™
 

 

No. 8



โพสกระทู้ ( 117 )
บทความ ( 0 )



สถานะออฟไลน์


ขอดูโค๊ดตั้งแต่ container หน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 15:09:50 By : sleeplesscat
 

 

No. 9



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : Genesis™ เมื่อวันที่ 2019-11-05 14:57:17
รายละเอียดของการตอบ ::
เดียวลองดูแปปนะครับ ผมใช้เป็นแบบ LIKE %name% ซึ่ง ถ้าไม่มา search มันก็ปกติดี ผมเลย งง ว่าเกิดจากอะไรพึ่งเคยเจอปัญหาแบบนี้ครั้งแรกนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 15:40:56 By : byte00789
 

 

No. 10



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : sleeplesscat เมื่อวันที่ 2019-11-05 15:09:50
รายละเอียดของการตอบ ::

นี้ครับ
Code (PHP)
01.<div class="container">                                                         <!-- ส่วนแสดงสินค้าทั้งหมด -->
02.        <div class="row">
03.        <?php
04.            $num = 0;
05.            while($result = mysqli_fetch_assoc($query)){
06.            $num++; 
07.        ?>
08. 
09.            <div class="col-3 mt-5">
10.                <form method="post" action="Search.php?action=add&item_id=<?php echo $result['item_id'];?>">
11.                    <div class="card" style="width: 18rem; height: 43rem;">                <!-- rem คือขนาดความกว้าง-->
12.                     
13.                    <img src="Picture/<?php echo $result['photoname']; ?>" width="400" height="350" class="card-img-top" >
14. 
15.                        <div class="card-body">
16.                             
17.                            <h5 class="card-title"> <?php echo $result['nameitem'] ?> </h5>
18.                            <p class="card-text"> ราคา : <?php echo number_format($result['price'],2); ?></p>          <!-- number format เป็นการแปลงตัวเลขให้มี คอมม่า ,2 คือ การมีทศนิยมสองตัว-->
19.                             
20.                            <p class="card-text"> รายละเอียดสินค้า : <?php echo iconv_substr($result['descriptionitem'], 0, 83, "UTF-8");?></p>         <!-- เป็นการกำหนด ว่าเริมต้นที่ 0 และ จบตัวที่ 83 เป็นการกำหนดคำให้แสดงแค่ไหน และแสดงเป็นภาษาไทย -->
21.                            <input type="text" name="quantity" class="form-control" value="1" >
22.                            <input type="hidden" name="hidden_name"  value="<?php echo $result['nameitem'] ?>" >            <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
23.                            <input type="hidden" name="hidden_price" value="<?php echo $result['price'] ?>" >               <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
24.                            <input type="hidden" name="hidden_nameshop" value="<?php echo $result['nameshop'] ?>" >               <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
25. 
26.                            <a href="itemdetail.php?item_id=<?php echo $result['item_id'] ?>" class="btn btn-primary mt-4">ดูเพิ่มเติม</a>
27. 
28.                            <?php if (isset($_SESSION['member_id'])) { ?>
29.                            <input type="submit" name="add_cart" class="btn btn-success mt-4" value="เพิ่มลงตะกร้าสินค้า"/>
30.                            <?php } ?>
31. 
32.                        </div>
33.                         
34.                    </div>
35.                </form>
36.            </div>
37.            <div class="col-1">
38. 
39.            </div>
40. 
41.            <?php } ?>
42.             
43.            <?php
44.                $sql2 = "select * from item WHERE nameitem LIKE '%{$_SESSION['Search1']}%' ";                 
45.                $query2 = mysqli_query($conn, $sql2);
46.                $total_record = mysqli_num_rows($query2);           //เป็นการนับข้อมูลที่มีทั้งหมดในตาราง sql
47. 
48.                $total_page = ceil($total_record / $perpage);       //เป็นการ SELECT ข้อมูลทั้งหมดแล้วมาหาค่าจำนวนหน้าทั้งหมด
49.            ?>
50.             
51.        </div>
52.        <nav>
53.            <h3 class="text-center">
54.                 
55.                        <a href="Search.php?page=1" aria-label="Previous">     
56.                        <span aria-hidden="true">&laquo;</span>     <!-- เป็นปุ่มย้อนกลับไปหน้าแรก -->
57.                        </a>&nbsp;
58.                         
59.                        <?php for($i=1;$i<=$total_page;$i++){ ?>
60.                        <a href="Search.php?page=<?php echo $i; ?>"><?php echo $i; ?></a> &nbsp;        <!-- เป็นการแสดงตัวเลขข้องหน้าที่เรามีทั้งหมด -->
61.                        <?php } ?>
62.                        <a href="Search.php?page=<?php echo $total_page;?>" aria-label="Next">          <!-- เป็นปุ่มที่จะพาเราไปหน้าสุดท้ายด้วยใช้ค่าของ total_page -->
63.                        <span aria-hidden="true">&raquo;</span>    
64.                        </a>&nbsp;
65.            </h3>
66.        </nav>
67.    </div>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 15:41:27 By : byte00789
 

 

No. 11



โพสกระทู้ ( 4,170 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : byte00789 เมื่อวันที่ 2019-11-05 15:41:27
รายละเอียดของการตอบ ::
เดี๋วๆ อันนี้ ค้นหา SESSION Order หรือยังไง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 15:43:23 By : Genesis™
 

 

No. 12



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : Genesis™ เมื่อวันที่ 2019-11-05 15:43:23
รายละเอียดของการตอบ ::
ป่าวครับ ค้นหาว่ามีสินค้าอะไรบ้าง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 16:21:23 By : byte00789
 

 

No. 13



โพสกระทู้ ( 117 )
บทความ ( 0 )



สถานะออฟไลน์


Code (PHP)
1.while($result = mysqli_fetch_assoc($query)){
2.echo '<pre>';
3.print_r $result;


ดูว่า id มีค่ารึป่าว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 17:02:13 By : sleeplesscat
 

 

No. 14



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 13 เขียนโดย : sleeplesscat เมื่อวันที่ 2019-11-05 17:02:13
รายละเอียดของการตอบ ::
ค่ามีครับ แต่ค่าแรกมันไม่มีฟอร์มให้นะครับ แต่สามารถทำงานได้อยู่ครับแต่ถ้ากดข้อมูลซ้ำกันมันจะไม่เช็คให้นะครับ



ประวัติการแก้ไข
2019-11-05 17:58:24
2019-11-05 18:04:54
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 17:46:22 By : byte00789
 

 

No. 15



โพสกระทู้ ( 4,170 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


แนะนำนะ : ถ้าเป็นการ Search ควรใช้ form method="GET" ป้อนค่า ไปที่ URI โดยตรงเลย
ส่วนตรง SELECT ดึงค่า GET ได้เลย เช่น
Code (PHP)
1.$sql = "SELECT * FROM products WHERE name LIKE '%".$_GET['txt']."%' ";
2.$query = mysqli_query($conn,$sql);
3. 
4.while($result=mysqli_fetch_array($query,MYSQLI_ASSOC))
5.{
6.    echo $result["name"].' '.$request['quantity'];
7.}

หลักการมันมีแค่นี้


ประวัติการแก้ไข
2019-11-05 18:02:29
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 18:00:22 By : Genesis™
 

 

No. 16



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : Genesis™ เมื่อวันที่ 2019-11-05 18:00:22
รายละเอียดของการตอบ ::
ขอบคุณครับขอลองก่อนนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 18:06:30 By : byte00789
 

 

No. 17



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

เลิกใช้คำสั่งคิวรี่ กับตัวแปรชนิด global ครับ
ให้ใช้คำสั่ง prepare bind_param excute แทนครับ
เป็นชุดคำสั่งป้องกัน sql injection
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-11-05 21:08:46 By : NewbiePHP
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ผมทำระบบ search แล้วเวลาค้นหา แล้วจะกดเพิ่มสินค้าชิ้นนั้น ค่าแรกจะมีปัญหาที่
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่