2017-02-08 2 views
-5

Ich baue ein PHP-Programm für unsere Reinigungsfirma, wir haben zweimal täglich einen Reiniger geschickt, ich möchte den Eintrag begrenzen. Wenn der Reiniger zweimal den nächsten Eintrag eingefügt hat, sollte diese Meldung "Dieser Reiniger ist ausgebucht" sein. Ich verwende eine Kalenderart der Buchung. Mein Platzhalter-Code ist:Wie verhindert man die Duplizierung innerhalb einer bestimmten Zeit?

$query = "INSERT INTO bookings (uid, empname, date, custname, cleaner, address) VALUES ('$uid', '$empname', '00:00:00', '$_post[custname]', '$_post[cleaner]', '$_post[address]')"; 
$result = mysql_query($query); 
+0

Dafür gibt es eindeutige Indizes. – apokryfos

+3

a) Was hast du bisher versucht? b) ** verwende nicht mysql-Funktionen, sie sind veraltet und in PHP7 ** entfernt **. Verwenden Sie stattdessen "PDO" oder "mysqli". c) Ihr Code ist anfällig für ** SQL Injection **! - Stellen Sie sich vor, jemand posten einen Wert wie ''; DROP TABLE Buchungen; - Verwenden Sie parametrisierte Anweisungen, um sich selbst zu schützen. –

+0

Wenn ich Ihre Frage verstanden habe, können Sie einfach einen eindeutigen Wert Ihrer eingefügten Daten für jeden Eintrag verwenden, um num_rows aus der Datenbank zu bekommen, und wenn es größer oder gleich 2 ist, können Sie die Nachricht anzeigen! EX: "SELECT * FROM Buchungen WHERE uid = $ uid"; Dann, MySQL_num_rows (aber Sie sollten nie MySQL_ in Ihrem Code verwenden! Es ist nicht sicher und veraltet!) – Soheyl

Antwort

0

Sie müssen nur auf dem bestimmten Zeitpunkt die alten Aufzeichnungen für den Reiniger überprüfen. Verwenden Sie das folgende Skript, um die alten Datensätze mit dem Datum abzurufen:

$prevRecordsQuery= "SELECT COUNT(*) AS records FROM `bookings` WHERE `date` = $date AND `cleaner` = '$_post[cleaner]'"; 

$prevRecords = mysql_query($query); 

if($prevRecords) 
     echo "This cleaner is fully booked"; 
else{ 
    $query = "INSERT INTO bookings (uid, empname, date, custname, cleaner, address) VALUES ('$uid', '$empname', '00:00:00', '$_post[custname]', '$_post[cleaner]', '$_post[address]')"; 
    $result = mysql_query($query); 

} 
+0

Vielen Dank, Parantap Parashar. –

+0

Kein Problem. Immer glücklich zu helfen :) –

Verwandte Themen