สอบถาม การ query ข้อมูลครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถาม การ query ข้อมูลครับ

สอบถาม การ query ข้อมูลครับ
SELECT * FROM `wp_cf7_data`, `wp_cf7_data_entry` WHERE wp_cf7_data.id=wp_cf7_data_entry.data_id and cf7_id = 1470 AND name = "your-name" and  BETWEEN '27/11/2017' and'03/12/2017'


ผมต้องการให้มันแสดงข้อมูล วันที่เราเลือก แต่พอแสดง กลับไม่แสดงข้อมูลอะไรเลยครับ ว่างเปล่า

ต้องแก้ตรงส่วนไหนครับ 





Sun Yuttakarn 07-12-2017 11:00:13

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ดูเนื้อหานี้เป็นแนวทาง

ตัวอย่าง การใช้งาน วันที่ ใน mysql และคำสั่ง เทคนิค การ query http://niik.in/543 


ninenik 07-12-2017
 ความคิดเห็นที่ 2
สอบถามครับ 

$query = "SELECT COUNT(*) AS numberOfRows FROM wp_cf7_data, wp_cf7_data_entry WHERE wp_cf7_data.id=wp_cf7_data_entry.data_id and cf7_id = 1470 AND name = "your-name" and wp_cf7_data.created BETWEEN '2017-11-27 08:54:39' and '2017-12-03 08:54:39' ";
 
 
 
$result = mysqli_query($conn, $query); // Result resource
 
$row = mysqli_fetch_array($result); // Use something like this to get the result
echo $row['numberOfRows'];


ถ้าผมจะ ให้ตรง เวลา ตรงส่วนของ between  รับค่ามาจาก form input   1 และ  input 2 

แล้วแสดงผล  ต้องเขียน รูปแบบยังไงครับ

 


Sun Yuttakarn 07-12-2017 17:01
 ความคิดเห็นที่ 3
<?php

   include "connect_db.php";
   $query = "SELECT COUNT(*) AS numberOfRows FROM wp_cf7_data, wp_cf7_data_entry WHERE wp_cf7_data.id=wp_cf7_data_entry.data_id and cf7_id = 1470 AND name = "your-name" and wp_cf7_data.created BETWEEN '2017-11-27 08:54:39' and '2017-12-03 08:54:39'
   UNION
   SELECT * FROM wp_cf7_data, wp_cf7_data_entry WHERE wp_cf7_data.id=wp_cf7_data_entry.data_id and cf7_id = 1470 AND name = "your-name" and wp_cf7_data.created BETWEEN '2017-11-27 08:54:39' and '2017-12-03 08:54:39'
   ";





   $result = mysqli_query($conn, $query);

   if (mysqli_num_rows($result) > 0) {
       // output data of each row
       while($row = mysqli_fetch_assoc($result)) {
         echo $row['numberOfRows'];
           echo "id: " . $row["id"]. " - Name: " . $row["cf7_id"]. " " . $row["name"]. "<br>";

       }
   } else {
       echo "0 results";
   }

   mysqli_close($conn);
   ?>


ผมจะเขียน ให้มัน แสดงจำจวน count และแสดงข้อมูลในตาราง ผมเขียนแบนี้แล้วรันออกมา มีนไม่แสดงค่าอะไรเลครับ


Sun Yuttakarn 08-12-2017 00:29
 ความคิดเห็นที่ 4
ลองดูแนวทางนี้ดู
http://www.ninenik.com/forum_view_2398_1.html#comment_5574

สร้างฟอร์ม ส่งค่าวันที่เพื่อแสดงข้อมูลรายเดือนอย่างง่าย http://niik.in/758 


ninenik 08-12-2017
 ความคิดเห็นที่ 5
<html>
<title> </title>
<head>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>
  <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
</head>

<body>
    <form method="get" action="index.php">

<input type="datetime-local" name="bdaytime">

<input type="datetime-local" name="bdaytime2">

 <input type="submit">
</form>



<?php


$bdaytime = $_GET['bdaytime'];
$bdaytime2 = $_GET['bdaytime2'];

include "connect_db.php";
$sql = "SELECT
COUNT(*) AS numberOfRows,value,cf7_id,data_id,name,created

FROM
wp_cf7_data, wp_cf7_data_entry

WHERE
wp_cf7_data.id=wp_cf7_data_entry.data_id and cf7_id = 1470 AND name = "your-name" and wp_cf7_data.created BETWEEN '2017-11-27 08:54:39' and '2017-12-03 08:54:39'";





$query = mysqli_query($conn, $sql);
?>
<table width="600" border="1">
  <tr>
    <th width="91"> <div align="center">id </div></th>
    <th width="98"> <div align="center">สร้างวันที่ </div></th>
    <th width="198"> <div align="center">cf7_id </div></th>
    <th width="97"> <div align="center">name </div></th>
    <th width="59"> <div align="center">value </div></th>

  </tr>
<?php
while($result=mysqli_fetch_array($query,MYSQLI_ASSOC))
{
?>
  <tr>
    <td><div align="center"><?php echo $result["data_id"];?></div></td>
    <td><?php echo $result["created"];?></td>
    <td><?php echo $result["cf7_id"];?></td>
    <td><div align="center"><?php echo $result["name"];?></div></td>
    <td align="right"><?php echo $result["value"];?></td>

  </tr>
<?php
}
?>
</table>




 </body>
</html>
ผมลองวิธีนี้แล้วมันแสดงแค่้อมูลเดียว แต่จริงๆแล้วมันควรได้ออกมาหลายข้อมูล เพราะวันที่ผมเลือกระหว่าง วันเริ่มถึงวันจบ มีคนนนมาลงทะเบียนมากกว่า 1 ครับ


Sun Yuttakarn 08-12-2017 09:37
 ความคิดเห็นที่ 6
คำสั่ง count() ทำให้ข้อมูลมารายการเดียว คงต้องหาความรู้เพิ่มเติม หรือทำความเข้าใจเกี่ยวกับคำสั่ง sql เพิ่มเติม


ninenik 08-12-2017
 ความคิดเห็นที่ 7
มันสามารถทำได้ใช่ไหมครับ นับจำนวน  count() พร้อมแสดงข้อมูลในแต่ละตางางด้วยพร้อมกัน


Sun Yuttakarn 08-12-2017 10:16
 ความคิดเห็นที่ 8
ข้าางบนผมทำได้แล้วครับ 


แต่ปัญหาที่อยากจะสอบถามเพิ่ม





ผมต้องการให้มันแสดง เรียงกัน ทำยังไงครับ


เช่น

email    name 



ขอบคุณ


Sun Yuttakarn 08-12-2017 14:49
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ