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

Registered : 107,913

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



 

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

 



Topic : 134453



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



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




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

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


Code (PHP)
<?php
        if(isset($_POST["add_cart"])){                              
            if(isset($_SESSION["shopping_cart"]))               // เช็คว่ามีการสร้าง $_SESSION ขึ้นหรือยัง    เป็นการเช็คว่า สินค้าที่เพิ่มเข้ามามีอยู่หรือยัง ถ้ายังจะนำไอดีมา
            {
                $item_array_id = array_column($_SESSION["shopping_cart"], "item_id");                       // item_arra_id เก็บค่า array column  เก็บ item_id
                if(!in_array($_GET["item_id"], $item_array_id))                 // in_array เช็คว่ามีค่าอยู่ข้างในหรือยัง จะมีการนำไอดีมาเปรียบเทียบ
                {
                    $count = count($_SESSION["shopping_cart"]);
                    $_SESSION['numitem'] = $_SESSION['numitem'] + 1;
                    $item_array = array(
                        'item_id'               =>     $_GET["item_id"],
                        'item_name'               =>     $_POST["hidden_name"],
                        'item_price'          =>     $_POST["hidden_price"],
                        'item_quantity'          =>     $_POST["quantity"],
                        'item_nameshop'          =>     $_POST["hidden_nameshop"],
                    );
                    $_SESSION["shopping_cart"][$count] = $item_array;
                }
                else
                {
                    echo '<script>alert("สินค้าถูกเพิ่มแล้ว")</script>';    
                    echo '<script>window.location="Homepage.php"</script>';
                }
            }
            else                                                // จะเป็นการสร้าง array  ขึ้นมาแล้วเก็บไว้ใน $item_array ไปใส่ไว้ใน $_SESSION['shopping_cart']
            {    
                $_SESSION['numitem'] = $_SESSION['numitem'] + 1;
                $item_array = array(
                    
                    'item_id'               =>     $_GET["item_id"],
                    'item_name'               =>     $_POST["hidden_name"],
                    'item_price'          =>     $_POST["hidden_price"],
                    'item_quantity'          =>     $_POST["quantity"],
                    'item_nameshop'          =>     $_POST["hidden_nameshop"],
                );
                $_SESSION["shopping_cart"][0] = $item_array;
            }
        }
        
    ?>
    
    </div>
    <?php } ?>


<div class="row">
        <?php 
            $num = 0;
            while($result = mysqli_fetch_assoc($query)){
            $num++;  
        ?>

            <div class="col-3 mt-5">
                <form method="post" action="Search.php?action=add&item_id=<?php echo $result['item_id'];?>">
                    <div class="card" style="width: 18rem; height: 43rem;">                <!-- rem คือขนาดความกว้าง-->
                    
                    <img src="Picture/<?php echo $result['photoname']; ?>" width="400" height="350" class="card-img-top" >

                        <div class="card-body">
                            
                            <h5 class="card-title"> <?php echo $result['nameitem'] ?> </h5>
                            <p class="card-text"> ราคา : <?php echo number_format($result['price'],2); ?></p>          <!-- number format เป็นการแปลงตัวเลขให้มี คอมม่า ,2 คือ การมีทศนิยมสองตัว-->
                            
                            <p class="card-text"> รายละเอียดสินค้า : <?php echo iconv_substr($result['descriptionitem'], 0, 83, "UTF-8");?></p>         <!-- เป็นการกำหนด ว่าเริมต้นที่ 0 และ จบตัวที่ 83 เป็นการกำหนดคำให้แสดงแค่ไหน และแสดงเป็นภาษาไทย -->
                            <input type="text" name="quantity" class="form-control" value="1" >
                            <input type="hidden" name="hidden_name"  value="<?php echo $result['nameitem'] ?>" >            <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
                            <input type="hidden" name="hidden_price" value="<?php echo $result['price'] ?>" >               <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
                            <input type="hidden" name="hidden_nameshop" value="<?php echo $result['nameshop'] ?>" >               <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->

                            <a href="itemdetail.php?item_id=<?php echo $result['item_id'] ?>" class="btn btn-primary mt-4">ดูเพิ่มเติม</a>

                            <?php if (isset($_SESSION['member_id'])) { ?>
                            <input type="submit" name="add_cart" class="btn btn-success mt-4" value="เพิ่มลงตะกร้าสินค้า"/>
                            <?php } ?>

                        </div>
                        
                    </div>
                </form>
            </div>
            <div class="col-1">

            </div>

            <?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 : 102 Reply : 17
 

 

No. 1



โพสกระทู้ ( 3,519 )
บทความ ( 6 )

Hall of Fame 2012

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


มองไม่เห็นภาพน่ะ






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


 

No. 2



โพสกระทู้ ( 1,634 )
บทความ ( 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



โพสกระทู้ ( 164 )
บทความ ( 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



โพสกระทู้ ( 3,519 )
บทความ ( 6 )

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



โพสกระทู้ ( 95 )
บทความ ( 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)
<div class="container">                                                         <!-- ส่วนแสดงสินค้าทั้งหมด -->
        <div class="row">
        <?php 
            $num = 0;
            while($result = mysqli_fetch_assoc($query)){
            $num++;  
        ?>

            <div class="col-3 mt-5">
                <form method="post" action="Search.php?action=add&item_id=<?php echo $result['item_id'];?>">
                    <div class="card" style="width: 18rem; height: 43rem;">                <!-- rem คือขนาดความกว้าง-->
                    
                    <img src="Picture/<?php echo $result['photoname']; ?>" width="400" height="350" class="card-img-top" >

                        <div class="card-body">
                            
                            <h5 class="card-title"> <?php echo $result['nameitem'] ?> </h5>
                            <p class="card-text"> ราคา : <?php echo number_format($result['price'],2); ?></p>          <!-- number format เป็นการแปลงตัวเลขให้มี คอมม่า ,2 คือ การมีทศนิยมสองตัว-->
                            
                            <p class="card-text"> รายละเอียดสินค้า : <?php echo iconv_substr($result['descriptionitem'], 0, 83, "UTF-8");?></p>         <!-- เป็นการกำหนด ว่าเริมต้นที่ 0 และ จบตัวที่ 83 เป็นการกำหนดคำให้แสดงแค่ไหน และแสดงเป็นภาษาไทย -->
                            <input type="text" name="quantity" class="form-control" value="1" >
                            <input type="hidden" name="hidden_name"  value="<?php echo $result['nameitem'] ?>" >            <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
                            <input type="hidden" name="hidden_price" value="<?php echo $result['price'] ?>" >               <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->
                            <input type="hidden" name="hidden_nameshop" value="<?php echo $result['nameshop'] ?>" >               <!-- ซ่อนข้อมูลและเอาไปแสดงผลไปเช็คเงื่อนไข -->

                            <a href="itemdetail.php?item_id=<?php echo $result['item_id'] ?>" class="btn btn-primary mt-4">ดูเพิ่มเติม</a>

                            <?php if (isset($_SESSION['member_id'])) { ?>
                            <input type="submit" name="add_cart" class="btn btn-success mt-4" value="เพิ่มลงตะกร้าสินค้า"/>
                            <?php } ?>

                        </div>
                        
                    </div>
                </form>
            </div>
            <div class="col-1">

            </div>

            <?php } ?>
            
            <?php
                $sql2 = "select * from item WHERE nameitem LIKE '%{$_SESSION['Search1']}%' ";                  
                $query2 = mysqli_query($conn, $sql2);
                $total_record = mysqli_num_rows($query2);           //เป็นการนับข้อมูลที่มีทั้งหมดในตาราง sql

                $total_page = ceil($total_record / $perpage);       //เป็นการ SELECT ข้อมูลทั้งหมดแล้วมาหาค่าจำนวนหน้าทั้งหมด
            ?>
            
        </div>
        <nav>
            <h3 class="text-center">
                
                        <a href="Search.php?page=1" aria-label="Previous">      
                        <span aria-hidden="true">&laquo;</span>     <!-- เป็นปุ่มย้อนกลับไปหน้าแรก -->
                        </a>&nbsp;
                        
                        <?php for($i=1;$i<=$total_page;$i++){ ?>
                        <a href="Search.php?page=<?php echo $i; ?>"><?php echo $i; ?></a> &nbsp;        <!-- เป็นการแสดงตัวเลขข้องหน้าที่เรามีทั้งหมด -->
                        <?php } ?>
                        <a href="Search.php?page=<?php echo $total_page;?>" aria-label="Next">          <!-- เป็นปุ่มที่จะพาเราไปหน้าสุดท้ายด้วยใช้ค่าของ total_page -->
                        <span aria-hidden="true">&raquo;</span>     
                        </a>&nbsp;
            </h3>
        </nav>
    </div>


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


 

No. 11



โพสกระทู้ ( 3,519 )
บทความ ( 6 )

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



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



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


Code (PHP)
while($result = mysqli_fetch_assoc($query)){
echo '<pre>';
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



โพสกระทู้ ( 3,519 )
บทความ ( 6 )

Hall of Fame 2012

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


แนะนำนะ : ถ้าเป็นการ Search ควรใช้ form method="GET" ป้อนค่า ไปที่ URI โดยตรงเลย
ส่วนตรง SELECT ดึงค่า GET ได้เลย เช่น
Code (PHP)
$sql = "SELECT * FROM products WHERE name LIKE '%".$_GET['txt']."%' ";
$query = mysqli_query($conn,$sql);

while($result=mysqli_fetch_array($query,MYSQLI_ASSOC))
{
	echo $result["name"].' '.$request['quantity'];
}

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


ประวัติการแก้ไข
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,634 )
บทความ ( 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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

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