2

リストされた2つの日付が等しい場合は最初の日付がエコーされ、そうでない場合(elseステートメント)は「date1-date2」がエコーされるというifステートメントを書いています。それをすることは許されています.Hereは私が得ているエラーです

解析エラー: 構文エラー、予期しない T_IF

これが私の機能です:

function getfevent ($conn) { 
$sql = "SELECT `name` FROM `event` WHERE `featured` = 0 LIMIT 0, 30 ";
$statement=$conn->prepare($sql); 
$statement->execute(); 
while($row=$statement->fetch()) {
$eventname = $row['name'];
$row_id=geteventid ($conn,$eventname);
$row_end=geteventend ($conn,$eventname);
$date=if ($row_id == $row_end){
    echo $row_id;
}
    else {
    echo $row_id " - " $row_end; 
}
?>
<?php echo "<td>$eventname</td><td>$date</td></tr>"; ?>
<?php
} 
} 
getfevent($conn);
4

5 に答える 5

1

はい、もちろん If ステートメントは関数内で使用できます。あなたの問題は、変数$dateの値を a の値に設定していることですT_IF。これは違法です。

むしろ、次のようなことができます。

$date=($row_id == $row_end);
if($date)
{
    echo $row_id;
}
else {
    echo $row_id." - ".$row_end; 
}
于 2012-12-12T03:00:35.617 に答える
1

おそらくあなたはこれを望んでいます。

$date = $row_id == $row_end ? $row_id : $row_id . " - " . $row_end;
echo $date;

忘れないで。.連結するために使用します。

と同じです

if ($row_id == $row_end) {
    $date = $row_id;
} else {
    $date = $row_id . " - " . $row_end;
}
于 2012-12-12T02:57:59.943 に答える
0

試す

$date=$row_id;
if ($row_id != $row_end)
{
    $date.=" - ".$row_end;
}

これはもっと短いはずです

于 2012-12-12T03:01:12.347 に答える
0

echo ステートメントは、何かを出力バッファーに出力するために使用されます。

代わりにこれを行う必要があります:

if ($row_id == $row_end) {
    $date = something
} else {
    $date = somethingElse
}
//do whatever you want with $date
于 2012-12-12T02:59:37.463 に答える
0

それ以外の:

$date=if ($row_id == $row_end){
    echo $row_id;
}
    else {
    echo $row_id " - " $row_end; 
}

試す:

$date;
if ($row_id == $row_end)
    $date=$row_id;
else
    $date=$row_id." - ".$row_end;

元のコードで行っていることは、基本的に、変数の値を$dateif ステートメントに設定するよう PHP に指示することですが、これは不可能です。

別のコードでは、新しい variable を作成し、if ステートメントの評価方法に応じて$date、その値を$row_idorに設定します。$row_id." - ".$row_end;

于 2012-12-12T02:56:55.370 に答える