2017-11-12 18 views
0

私はPHPmyadminでデータベースを作成し、そのデータベースからワードプレスサイトに情報を引き出しています。現在、データを持たない行はまだ表示されています。たとえば、start_dateを入力しなかった場合、「Start date」という見出しは値がなくても表示されます。データベースフィールドが空の場合はテキストを非表示にします

値がない場合、見出しを隠すようにコードを書き直す方法を知っていますか?私はこれをすべての見出しに適用したいと思います。開始日、説明など

ありがとうございます。

<?php 

$mysqli = NEW mysqli('localhost','surviboj_wp156','[email protected])','surviboj_wp156'); 

require('/home/surviboj/public_html/wp-load.php'); 
$id = get_the_ID(); 

$resultSet = $mysqli->query("SELECT * FROM sweepstake_data WHERE item_id = $id"); 

if($resultSet->num_rows !=0){ 

    while($rows = $resultSet->fetch_assoc()) 
    { 
     $description = $rows['description']; 
     $links = $rows['links']; 
     $category = $rows['category']; 
     $eligibility = $rows['eligibility']; 
     $start_date = $rows['start_date']; 
     $end_date = $rows['end_date']; 
     $entry_frequency = $rows['entry_frequency']; 
     $prizes = $rows['prizes']; 
     $victory_prizes = $rows['victory_prizes']; 
     $additional_comments = $rows['additional_comments']; 

     echo "<p>Name: $description<br /> Link: <a href=$links>Click here</a> <br /> Category: $category<br /> Eligibility: $eligibility<br /> Start date:$start_date<br /> End date: $end_date<br /> Entry frequency: $entry_frequency<br /> Prizes: $prizes<br /> Victory prizes: $victory_prizes<br /> Additional comments: $additional_comments<br />"; 
    } 
}else { 
    echo "No results."; 
} 

?> 

答えて

1

ただ、値が空であるかどうかをチェックしない場合は、それらをエコー。あなたのケースでは、必須ではなく空白のフィールドにのみ必要です。$start_date

echo "<p>Name: $description<br /> Link: <a href=$links>Click here</a> <br /> Category: $category<br /> Eligibility: $eligibility<br />"; 

echo !empty($start_date) ? "Start date:$start_date<br />" : "" ; 

echo "End date: $end_date<br /> Entry frequency: $entry_frequency<br /> Prizes: $prizes<br /> Victory prizes: $victory_prizes<br /> Additional comments: $additional_comments<br />"; 
1

ifステートメントが必要になり、進行中にechoステートメントが作成されます。だからこのような何かが動作します:

$out = ""; 
if(!empty($start_date)){ 
    $out .= "Start Date: $start_date <br />"; 
} 

echo $out; 

これを行うより良い方法がありますが、これは簡単で理解しやすいです。すべてのための

編集、:

$out = array(); 
(!empty($rows['description']) ? $out[] = "Name: ".$rows['description'] : ""; 
(!empty($rows['links']) ? $out[] = "Link: <a href='".$rows['links']."'>Click here</a> " : ""; 
(!empty($rows['category']) ? $out[] = "Category: ".$rows['category'] : ""; 
(!empty($rows['eligibility']) ? $out[] = "Eligibility: ".$rows['eligibility'] : ""; 
(!empty($rows['start_date']) ? $out[] = "Start date: ".$rows['start_date'] : ""; 
(!empty($rows['end_date']) ? $out[] = "End date: ".$rows['end_date'] : ""; 
(!empty($rows['entry_frequency']) ? $out[] = "Entry frequency: ".$rows['entry_frequency'] : ""; 
(!empty($rows['prizes']) ? $out[] = "Prizes: ".empty($rows['prizes'] : ""; 
(!empty($rows['victory_prizes']) ? $out[] = "Victory prizes: ".$rows['victory_prizes'] : ""; 
(!empty($rows['additional_comments']) ? $out[] = "Additional comments: ".$rows['additional_comments'] : ""; 

echo implode("<br />", $out); 
+0

こんにちはTomさん、返信ありがとうございます。私はあなたのコード[リンク](https://jsfiddle.net/t2q699gL/)を試しました。問題は、あるフィールドが空であれば、テーブル全体が表示されないということです。あなたは私に一見を助けてもらえますか? – firefirehelphelp

+0

@firefirehelphelpあなたは、その列が空であれば、「開始日」の見出しを非表示にしたかったと言いました。この答えは、あなたのコードでどのように_all_値を同じifにラップしたかを示しています。 ifで非表示にする列のみをラップします。そして、なぜあなたは同じものではなく、異なる '$ out'変数にすべてを追加していますか? –

+0

こんにちはマグヌス、私は十分に明確でない場合は謝罪します。しかし、「開始日」を隠すことは一例にすぎません。私は、もしアイテムに値がない場合は、その行を隠すようにコード化したかったのです。私はこれをよりよく反映させるために私の元の質問を修正しています。したがって、私はすべてのものを 'if'の中に入れなければならないと信じています。私はすべてを1つの '$ out'に変更しようとします – firefirehelphelp

関連する問題