Follow along with the video below to see how to install our site as a web app on your home screen.
Бележка: This feature may not be available in some browsers.
"<br />
<b>Notice</b>: Undefined index: vote_rank in <b>/var/www/html/add_vote.php</b> on line <b>13</b><br />
<br />
<b>Fatal error</b>: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'vote_rank' cannot be null' in /var/www/html/add_vote.php:14
Stack trace:
#0 /var/www/html/fun/add_vote.php(14): PDOStatement->execute(Array)
#1 {main}
thrown in <b>/var/www/html/add_vote.php</b> on line <b>14</b><br />
Ееее така е много по-добре! Какво е тва дебъгване без да знаеш грешките! vinsbg, съветвам те да го запомниш това, защото погледни колко мнения се изписаха за едното нищо - ако беше дал грешката в поста, щяха да са излишниvinsbg каза:Май има напредъкС лога сега това излезе в конзолата...
Код:"<br /> <b>Notice</b>: Undefined index: vote_rank in <b>/var/www/html/add_vote.php</b> on line <b>13</b><br /> <br /> <b>Fatal error</b>: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'vote_rank' cannot be null' in /var/www/html/add_vote.php:14 Stack trace: #0 /var/www/html/fun/add_vote.php(14): PDOStatement->execute(Array) #1 {main} thrown in <b>/var/www/html/add_vote.php</b> on line <b>14</b><br />
ini_set('html_errors', 0);
Ок явно не си съвсем разбрал - както ясно е написано Undefined index: vote_rank, което очевидно се отнася за $_SERVER['vote_rank'], което очевидно трябва да е $_POST['vote_rank']vinsbg каза:За съжаление понеже съм доста позаспал днес забравих да си кача файловете онлайн и сега ги нямам на РС-то на което съм в момента и останаха на друго. Сега предполагам, след като знам грешката ще ми е по-лесно да го оправя..
Утре ще пиша за резултата :?:
Да, но нали тук проблемът идва от там, че $_SERVER['vote_rank'] е null, а като се оправи на $_POST в конкретния случай вероятно ще тръгне.lamerko каза:
lamerko каза:Но няма да мине, ако някоя от променливите ти върне null, а в същото време съответното поле в базата е not null. Взимаш данните директно от глобалните масиви, но няма гаранция, че има такива елементи. Може да не е това проблема, но като цяло е лош стил. Добре да си инициализираш валидирани променливи преди заявката и да работиш с тях...
$query = "INSERT INTO ipaddress_vote_map (ip_address,image_id,vote_rank) VALUES ('" . $_SERVER['REMOTE_ADDR'] . "','" . $_POST["image_id"] . "','" . $_POST["vote_rank"] . "')";
$result = $db_handle->insertQuery($query);
if(!empty($result)) {
....
$result = $db_handle->updateQuery($update_query);
print $row[0]["vote_rank"];
$query = $pdo -> prepare("INSERT INTO ipaddress_vote_map (ip_address,image_id,vote_rank)
VALUES (:remote_address, :image_id, :vote_rank)");
$query -> execute(array(
":remote_address" => $_SERVER['REMOTE_ADDR'],
":image_id" => $_POST['image_id'],
":vote_rank" => $_POST['vote_rank']
));
if($query->rowCount() > 0) {
....
$query->rowCount();
print $row[0]["vote_rank"];
$ip_address = $_SERVER['REMOTE_ADDR'];
$vote_rank = 0;
$query = $pdo->prepare("SELECT SUM(vote_rank) as vote_rank FROM ipaddress_vote_map WHERE image_id = :image_id and ip_address = :ip_address");
$query -> bindParam(':image_id', $_GET['image_id'], PDO::PARAM_INT);
$query -> bindParam(':ip_address', $ip_address, PDO::PARAM_INT);
$row = $query->execute();
$up = "";
$down = "";
if(!empty($row[0]["vote_rank"])) {
$vote_rank = $row[0]["vote_rank"];
if($vote_rank == -1) {
$up = "enabled";
$down = "disabled";
}
if($vote_rank == 1) {
$up = "disabled";
$down = "enabled";
}
}
$pdo = new PDO('....');
$stmt = $pdo->prepare('select....');
$stmt->execute([':param1' => 'value1']);
$stmt->setFetchMode(PDO::FETCH_NUM);
$row = $stmt->fetch();
var_dump($row);
$row = $query->fetch();
$row = array("vote_rank" => $_POST['vote_rank']);
print $row["vote_rank"];
$row = $query->fetch();
$row = array("vote_rank" => $_POST['vote_rank']);
print $row["vote_rank"];
Прави следното:anonimen каза:Честно казано си нямам идея какво искаш да направиш, само ти давам напътствия къде може да си сбъркал. Но това определено е безсмислено:
PHP:$row = $query->fetch(); $row = array("vote_rank" => $_POST['vote_rank']); print $row["vote_rank"];
Само помисли малко и ще видиш какво прави![]()
Както и да е. Проблема за който беше цялата тази тема е оправен и благодаря за помощта. За съжаление обаче не мога да дам на всички +Ако го изтрия - продължава да си записва в базата, но може да се вотва неограничено ... колкото си пъти искаш.