'否则'第21行的代码中的(T_ELSE)

时间:2017-10-17 23:10:29

标签: php easyphp

好的,所以我在php和sql中做了一些工作。这个PHP代码不起作用,我需要知道如何处理这个if if循环。

我收到此错误:解析错误:语法错误,意外'否则' (T_ELSE)in"我的文件路径"在第21行

    <?php
$debug = true;

# Shows the records in prints
function show_records($dbc) {
    # Create a query to get the name and price sorted by price
    $query = 'SELECT num, fname, lname FROM presidents ORDER BY num DESC' ;

    # Execute the query
    $results = mysqli_query( $dbc , $query ) ;
    check_results($results) ;
}

function valid_number($dbc, $num, $fname, $lname){

    if(!valid_number($num)) {
    echo "<p>Please give a valid number.</p>"; }
    else {
        if (!valid_name($fname))
    echo "<p>Please complete the first name.</p>"; }
    else{
        if (!valid_name($lname)){
    echo "<p>Please complete the last name.</p>"; }}
    else {
    insert_record($dbc,$num,$fname,$lname) ; }
    function valid_number($num){
    {   if(empty($num) || !is_numeric($num)) }
    return false ; }
    else {
        $num = intval($num) ;      
        if($num <= 0){
        return false ;}
    }
    return true; }


function valid_name($fname, $lname){
       if(!empty($fname) && !empty($lname)) {
        return false;
    }
    else
      return true;
}



    # Show results
if( $results )
    {
        # But...wait until we know the query succeeded before
        # starting the table.
        echo '<H1>Presidents</H1>' ;
        echo '<TABLE border="1\"">';
        echo '<TR>';
        echo '<TH>Number</TH>';
        echo '<TH>First Name</TH>';
        echo '<TH>Last Name</TH>';
        echo '</TR>';

    # For each row result, generate a table row
        while ( $row = mysqli_fetch_array( $results , MYSQLI_ASSOC ) )
    {
        echo '<TR>' ;
        echo '<TD>' . $row['num'] . '</TD>' ;
        echo '<TD>' . $row['fname'] . '</TD>' ;
        echo '<TD>' . $row['lname'] . '</TD>' ;
        echo '</TR>' ;
    }

  # End the table
  echo '</TABLE>';

  # Free up the results in memory
  mysqli_free_result( $results ) ;
}


# Inserts a record into the prints table
function insert_record($dbc, $num, $fname, $lname) {
  $query = 'INSERT INTO presidents(num, fname, lname) VALUES (' . $num . ' , "' . $fname . '", "' . $lname . '" )' ;
  show_query($query);

  $results = mysqli_query($dbc,$query) ;
  check_results($results) ;

  return $results ;
}

# Shows the query as a debugging aid
function show_query($query) {
  global $debug;

  if($debug)
    echo "<p>Query = $query</p>" ;
}

# Checks the query results as a debugging aid
function check_results($results) {
  global $dbc;

  if($results != true)
    echo '<p>SQL ERROR = ' . mysqli_error( $dbc ) . '</p>'  ;
}
?>
好吧,它说我的帖子主要是代码,所以这里有一些填充物。 lorem ipsum dolor sit amet请忽略这个我只需要一个答案这是填充呃嗯嗯嗯呀

1 个答案:

答案 0 :(得分:0)

在此,请注意这是未经测试但我可能已经解决了这个问题。您应该尝试使用elseif(){}并观察开始和结束括号的位置

<?php
$debug = true;

# Shows the records in prints
function show_records($dbc) {
    # Create a query to get the name and price sorted by price
    $query = 'SELECT num, fname, lname FROM presidents ORDER BY num DESC' ;

    # Execute the query
    $results = mysqli_query( $dbc , $query ) ;
    check_results($results) ;
}

function valid_number($dbc, $num, $fname, $lname){

    if(!valid_number($num)) {
        echo "<p>Please give a valid number.</p>"; }
    elseif(!valid_name($fname)) {

        echo "<p>Please complete the first name.</p>"; }
    elseif (!valid_name($lname)){
        {
            echo "<p>Please complete the last name.</p>"; }}
    else {
        insert_record($dbc,$num,$fname,$lname) ; }


    function valid_number($num){
        if(empty($num) || !is_numeric($num)){
        return false ; }
    else {
        $num = intval($num) ;
        if($num <= 0){
            return false ;}
    }
    return true; 
    }