2016-07-23 12 views
0

Also im Grunde habe ich eine andere Seite, die Informationen über GET an diese Seite sendet. Ich habe die URL überprüft, um sicherzustellen, dass das GET ordnungsgemäß funktioniert, was es ist. Was ich nicht verstehe ist, warum das Skript nicht:Warum kann diese Seite keine Nummern hinzufügen und umleiten?

1) In einer zum NumberOfResponse in der Admin-Tabelle ...

2) auf der Seite umleiten (die Unterseite des Codes sehen)

Jetzt wird der Status des Anrufs auf 2 aktualisiert, aber nichts anderes passiert, oder sind Echos vorhanden.

-Code

<?php 
session_start(); 

include '../includes/connection.php'; 
include 'functions.php'; 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 


$id = escape($_GET['id']); 
$banner = escape($_GET['bannerID']); 
$bannerName = escape($_GET['bannerN']); 

$query = $handler->prepare("UPDATE Calls SET Status = '2', TakenBy = :bannerName WHERE ID=:id"); 
$query->bindParam(':bannerName', $bannerName); 
$query->bindParam(':id', $id); 
$query->execute(); 

$update = $handler->prepare("UPDATE Admins SET NumOfResponse + 1 WHERE ID = :banner"); 
$update->bindParam(':banner', $banner); 
$update->execute(); 

header("Location: ../pages/incomingCalls.php"); 
+1

anstatt die num von respones aus der Datenbank erhalten und fügen Sie ein, um es möglich nur einfach das tun, mit mysql „UPDATE Admins SET' NumOfResponse' + 1 WHERE ID =: Banner "Es löst Ihr Problem nicht, aber ich würde es Ihnen helfen. –

+0

Sie greifen also auf eine andere * Seite * zu, die eine Anfrage an diese Seite stellt? Auch +1 @ Ahmadghoneims Kommentar. – Will

+0

Dies ist ein eigenes Skript. Ich verwende die GET-Methode, um Daten an sie zu senden. – Austin

Antwort

1

Ich glaube nicht, dass Sie die NumOfResponse auswählen müssen, um den Wert in einer zweiten Abfrage zu aktualisieren. Sie können dies erreichen, indem Sie eine einzelne Aktualisierungsabfrage durchführen.

auch tun Sie etwas seltsam hier:

$query = $query->fetchObject(); 

Sie brauchen nicht das Ergebnis Ihrer Update-Abfrage zu holen.

Ein weiterer Fehler ist, wenn Sie tun:

$number = $query->NumOfResponse; 

Sie Ihre bereits erhöhte Wert $ Zahl mit einem anderen Wert tatsächlich overiding.

Sie können den Code so vereinfachen:

<?php 
session_start(); 

include '../includes/connection.php'; 
include 'functions.php'; 

$id = escape($_GET['id']); 
$banner = escape($_GET['bannerID']); 
$bannerName = escape($_GET['bannerN']); 

$query = $handler->prepare("UPDATE Calls SET Status = '2', TakenBy = :bannerName WHERE ID=:id"); 
$query->bindParam(':bannerName', $bannerName); 
$query->bindParam(':id', $id); 
$query->execute(); 

$update = $handler->prepare("UPDATE Admins SET NumOfResponse = NumOfResponse + 1 WHERE ID = :banner"); 
$update->bindParam(':newNum', $newNum); 
$update->bindParam(':banner', $banner); 
$update->execute(); 

header("Location: ../pages/incomingCalls.php"); 
+0

Die Seite wird immer noch nicht zurück zu den Seiten/incomingCalls.php geleitet. – Austin

+0

Es fügt auch keinen zur Anzahl der Antworten hinzu. – Austin

+0

Fehler Schwerwiegender Fehler: Nicht abgefangene PDOException: SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1064 Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, damit die richtige Syntax in der Nähe von '+ 1 WHERE ID =?' in Zeile 1 in /home/wattlema/public_html/scripts/takeCall.php:18 Stapel-Trace: # 0 /home/wattlema/public_html/scripts/takeCall.php(18): PDO-> prepare ('UPDATE Admins S .. . ') # 1 {main} in /home/wattlema/public_html/scripts/takeCall.php in Zeile 18 geworfen – Austin

0

Weil Sie echo vor dem Header-Befehl tun. Sie müssen Header-Werte zuerst hinzufügen, bevor Sie Inhalte drucken. Entfernen Sie die Echos oder verwenden Sie ein Logging-Framework wie log4php.

+0

Ich aktualisiere den Code im Hauptpost ... immer noch nichts. – Austin

Verwandte Themen