好的,所以我在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请忽略这个我只需要一个答案这是填充呃嗯嗯嗯呀
答案 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;
}