2017-06-20 131 views
1

嗨,我一直负责使用被动红外传感器和Raspberry PI在线计数器。我需要能够在我自己创建的网页上发布计数。但是,我无法获得我用python编码到我的网页的计数器输出。Raspberry Pi输出到PHP网页

我已经尝试使用计数(输出),exec()和shell_exec(),它没有奏效。

是否有可能不尝试使用烧瓶?因为我对网页设计和python很陌生。

我不擅长编码python或php。

这是我写

import RPi.GPIO as GPIO #1 

import math 

import os 

import threading 

import subprocess 

import time 

import os.path 

import MySQLdb 

db = MySQLdb.connect(host="localhost", user="root", passwd="brandon", 
db="menagerie") 
cur =db.cursor() 
GPIO.setmode(GPIO.BOARD) 

GPIO.setup(12,GPIO.IN) 
GPIO.setup(11,GPIO.IN) #16 

peoplecount=0 #18 
while(1): 



if GPIO.input(12): 
time.sleep(2) 
peoplecount = peoplecount+1 
time.sleep(1.5) 
cur.execute("INSERT INTO people(vistor,Date) VALUES(1,now())") 
db.commit() 
print peoplecount 
print "hello" #30 

if(peoplecount < 1): 
peoplecount=0 

elif GPIO.input(11): 
time.sleep(2) 
peoplecount = peoplecount-1 
time.sleep(1.5) 
print peoplecount 
print "come back again" 


conn.commit()   
cur.close() 

这些都是我的网页代码蟒蛇代码:

<!DOCTYPE html> 
<html> 
<head> 
<style> 
table,th,td { 
border:1px solid black; 
} 
</style> 
</head> 
<body> 

<?php 

echo "welcome to PI LAB<br>"; 
echo date ('y-m-d H:i:s'); 

$conn = new mysqli("localhost","root","brandon","menagerie"); 

if($conn->connect_error) 
{ 
die("connection failed:" . $conn->connect_error); 
} 

$sql = "SELECT * FROM people"; 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 
echo "<table><tr><th>Vistor</th><th>Entry</th></tr>"; 
while($row = $result->fetch_assoc()) { 
    echo "<tr><td>" . $row["vistor"]. " </td><td> " . $row["Date"]. "</td> 
</tr>"; 
} 
echo"</table>"; 
} 
$conn->close(); 

?> 



</body> 
</html> 
+0

要清楚,如果您打开直接使用PHPMyAdmin或使用mysql shell直接启动数据库 - “人员”表中是否有数据? –

+0

人员表中有数据。我能够显示我从我创建的网页获取的数据。 – nurul98

+0

那究竟是什么问题呢?如果页面显示数据,你究竟想要达到什么目的? –

回答

0

enter image description here我不知道我很明白你想要什么,但如果你只是想总访问者数量,并且每位访问者在您的表格中有一行:

<!DOCTYPE html> 
<html> 
    <head> 
     <style> 
      table,th,td { 
       border:1px solid black; 
      } 
     </style> 
    </head> 
    <body> 

    <?php 
     $conn = new mysqli("localhost","root","brandon","menagerie"); 

     if($conn->connect_error) 
     { 
      die("connection failed:" . $conn->connect_error); 
     } 

     echo "welcome to PI LAB<br>"; 
     echo date('y-m-d H:i:s'); 

     $sql = "SELECT * FROM people"; 
     $result = $conn->query($sql); 

     echo "Total visitors: ", $result->num_rows; 

     if ($result->num_rows > 0) { 
      echo "<table><tr><th>Vistor</th><th>Entry</th></tr>"; 
      while($row = $result->fetch_assoc()) { 
       echo "<tr><td>" . $row["vistor"] . " </td><td> " . $row["Date"]. "</td></tr>"; 
      } 
      echo"</table>"; 
     } 
     $conn->close(); 
    ?> 
    </body> 
</html> 
+0

您好,先生,我很抱歉,我描述的很糟糕,但先生我不知道如何显示树莓派在这个网页中计数。如果有可能使计数生活。我非常感谢你试图提供一种灵魂。 – nurul98

+0

为了让柜台生活,你需要使用JS/AJAX。最简单的方法是让页面自动刷新几秒钟。 –

+0

但我无法在页面 – nurul98