2017-01-08 2 views
1

У меня есть простой оператор if/else, повторяющийся во втором блоке кода, который должен запускать и включать дополнительный блок кода html, но по какой-то причине я не мог видеть, что это не так. Я заводил себе немного орехов, пытаясь найти проблему, но для моей жизни я не могу. Отрывок ниже, спасибо заранее :)Простой PHP If/Else block not triggering

<?php 
require_once("includes/conn.php"); 

    $validateSQL="SELECT `email`,`token` FROM `users` WHERE `token`='".$_GET['token']."' AND `state`='1'"; 
    $userData =$link->query($validateSQL) or trigger_error($link->error." [$validateSQL]"); 
    $user=$userData->fetch_assoc(); 

    $row_cnt = $userData->num_rows; 
    if ($row_cnt < 0){ 
    $user=$userData->fetch_assoc(); 
    }; 
?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8" /> 
     <meta name="format-detection" content="telephone=no" /> 
     <meta name="msapplication-tap-highlight" content="no" /> 
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> 
     <script src="js/jquery.js"></script> 
     <script src="js/bootstrap.min.js"></script> 
     <link rel="stylesheet" type="text/css" href="css/bootstrap.css" /> 
     <link rel="stylesheet" type="text/css" href="css/login.css" /> 
     <link href="css/Raku.css" rel="stylesheet"> 
    <link href="css/font-awesome.min.css" rel="stylesheet"> 
    <title>Raku Māturanga : The Knowledge Tree</title> 

    </head> 
    <body style=""> 
     <div class="background-plate"> 
      <div id="heading-main"> 
       <h1 class="">Raku Māturanga : The Knowledge Tree<br> 
       <small style="color:#ddddbb">Nau mai, welcome to where knowledge grows.</small></h1> 
       <p style="color: white; text-align: center">Making colobrative planning and evaluation eaiser than ever before.</p> 
      </div> 

<?php 
if ($row_cnt < 0){ 
    include("includes/snippets/validate_setPassword.php"); 
    }else{ 

    } 
    ?> 

     </div> 
     <div class="container-low"> 

ответ

2

Прежде всего у вас есть синтаксические ошибки в коде, вы должны удалить ; после brakcets в вашей, если заявление.

$row_cnt = $userData->num_rows; 
    if ($row_cnt < 0){ 
    $user=$userData->fetch_assoc(); 
    }; 

Должно быть:

$row_cnt = $userData->num_rows; 
    if ($row_cnt < 0){ 
    $user=$userData->fetch_assoc(); 
    } 

Тогда вторая причина вашего заявления, если не работают ваши условия. вы проверяете значение под нулем, которое никогда не будет истинным, чтобы выполнить ваш оператор if.

вы должны поставить:

первая часть:

$row_cnt = $userData->num_rows; 
    if ($row_cnt <= 0 || $row_cnt == null){ 
    $user=$userData->fetch_assoc(); 
    } 

Вторая часть:

if ($row_cnt <= 0 || $row_cnt == null){ 
    include("includes/snippets/validate_setPassword.php"); 
    }else{ 

    } 

Позвольте мне знать, если он работает

+0

Цените это - Это было не совсем то, что мне было нужно, но это привело меня в правильном направлении - кажется, у меня есть хорошая возможность перепутать < and >. Я не мог видеть заголовок if, потому что я пытался установить $ user = $ userData-> fetch_assoc(); снова внутри цикла. Сделал условие $ row_cnt === 1, так как я действительно просто хочу знать, есть ли одна строка, и все хорошо сейчас. –

+0

@MichaelClark Рад помочь вам. –

0

Я думаю, что вы $ пользователь Данных-> num_rows возвращает ноль или нуль Thats, почему ваш, если условие не выполняется изменение вашего, если условие

if ($row_cnt <= 0 || $row_cnt != null){ 
    include("includes/snippets/validate_setPassword.php"); 
    }else{ 

    } 

Я надеюсь, что это поможет вам

0

вы $ userData-> num_rows возвращает ноль или нуль или номер строк из базы данных, так что просто измените условие if else с

($row_cnt < 0) to ($row_cnt >= 0) 

Думаю, все будет хорошо.