2016-06-22 33 views
0

我做了一個帶有投票系統的小型php網站。 我使用PDO撥打了我的sql調用,但無法檢查一個人是否每天不能爲相同類別投票兩次。我如何檢查選擇查詢是否提供任何數據?

下面你會發現我的php代碼和sql表。

<?php 
    header("Expires: Tue, 01 Jan 2000 00:00:00 GMT"); 
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
    header("Cache-Control: no-store, no-cache, must-revalidate,max-age=0"); 
    header("Cache-Control: post-check=0, pre-check=0", false); 
    header("Pragma: no-cache"); 


    session_start(); 
    $user = $_SESSION['username']; 

    try { 
     $db = new PDO('mysql:host=localhost;dbname=xxxxxxxx',"xxxxxxxxx", "xxxxxxxxxx"); 
    }catch (PDOException $e){ 
     echo $e->getMessage(); 
    } 

    $aantalRijen = $db->query("SELECT gebruiker FROM stem WHERE UPPER(gebruiker) = '$user' AND UPPER(categorie)='dick' AND datum = CURDATE()"); 


    $sql = "INSERT INTO stem (categorie, naam, commentaar, datum, gebruiker) 
    VALUES('dick','$_POST[naam]','$_POST[commentaar]',CURDATE(), '$user')"; 




    if($aantalRijen > 0) { 
    echo nl2br("U heeft al een stem uitgebracht \n"); 
    echo "<script>setTimeout(\"location.href = 'index.php';\",1500); </script>"; 

    } 
    else { 
     $results = $db->exec($sql); 
     echo "Stem succesvol uitgebracht!"; 
     echo "<script>setTimeout(\"location.href = 'index.php';\",1500); </script>"; 

     } 

     $results = NULL; 
     $aantalRijen = NULL; 
     $db = NULL; 
?> 

截圖數據庫:http://prntscr.com/bjgx6w

+0

使用'if(count($ aantalRijen)> 0){' – Saty

回答

-1

檢查的行數返回:

$aantalRijen->rowCount() > 0 
+1

這實際上是一個有效的答案。它糾正了未能完成OP要求的代碼。 –

0

您可以通過WHERE

INSERT INTO stem (categorie, naam, commentaar, datum, gebruiker) 
    VALUES('dick','$_POST[naam]','$_POST[commentaar]',CURDATE(), '$user') 
WHERE NOT EXISTS 
    (SELECT * FROM stem WHERE categorie = dick' AND naam = $_POST[naam] AND commentaar = $_POST[commentaar] AND datum = CURDATE() AND gebruiker = $user) 

在這裏,我已經取得了一個查詢做適用於所有情況。

相關問題