कृपया नीचे दिए गए PHP कोड को देखें।

<?php
$con = mysqli_connect('localhost', 'root', '', 'unityaccess');
if (mysqli_connect_errno()) {
  echo "connection failed";
  exit();
}

$query = "SELECT * FROM  players ORDER BY id DESC";

$row_result = mysqli_query($con, $query);
while($record = mysqli_fetch_assoc($row_result)){
  $card = '<div class="card">';
   $card .= '<div class="card-body">';
   $card .= '<div class="comment-header">';
   $card .= '<h6 class="card-subtitle mb-2 comment-name">'.$record['name'].'&nbsp;</h6>';
   $card .= '</div>';
   $card .= '</div>';
   $card .= '</div>';

}
?>

मैं एचटीएमएल कार्ड के अंदर सभी नाम मानों को लूप करना चाहता हूं। लूप के अनुसार 7 सभी नाम मान हैं। जब मैं उन्हें प्रतिध्वनित करता हूं तो यह सही ढंग से लूप होगा। लेकिन जब मैं संयोजित और गूंज $card को पसंद करता हूं।

    <div class="row">
      <div class="col-md-12 comment-section">
        <h4>Comments</h4>
        <?php
          echo $card;
        ?>
      </div>
    </div>

तब मैं केवल name विशेषता का पहला मान दिखा सकता हूं। मैं कार्ड के साथ सभी नाम मान प्राप्त क्यों नहीं कर सकता। मुझे लगता है कि कोड वैसे भी खराब नहीं दिखता है।

-2
Binoj123 24 मार्च 2020, 18:22
"जब मैं संयोजित होता हूं" कृपया वह कोड दिखाएं जहां आप ऐसा कर रहे हैं
 – 
Patrick Q
24 मार्च 2020, 18:23
आप $card के साथ .= marks . देख सकते हैं
 – 
Binoj123
24 मार्च 2020, 18:24
2
ठीक है, लेकिन आप परिणाम को संयोजित नहीं कर रहे हैं। आप हर बार एक नया $card बना रहे हैं
 – 
Patrick Q
24 मार्च 2020, 18:25

2 जवाब

परिवर्तन

  $card = '<div class="card">';

साथ

   $card .= '<div class="card">';

*अपने वेरिएबल्स को इनिशियलाइज़ करना एक अच्छा अभ्यास है, यदि आप नहीं करते हैं तो PHP इंजन वेरिएबल उपयोग के आधार पर टाइप कास्ट करेगा।

1
Tom 24 मार्च 2020, 18:32
आपका मतलब पहले वाला है
 – 
Binoj123
24 मार्च 2020, 18:26
हां, आप इसके बिना स्ट्रिंग को ओवरराइट कर रहे हैं।
 – 
Tom
24 मार्च 2020, 18:26
धन्यवाद। जब मैं इसे सीखता हूं, तो यह बिना किसी संयोजन के पहला दिखाता है।
 – 
Binoj123
24 मार्च 2020, 18:28
1
टॉम, आपको ओपी को यह भी याद दिलाना होगा कि $card वैरिएबल को लूप के बाहर इनिशियलाइज़ करना होगा, इससे पहले कि आप लूप के अंदर $card में जुड़ सकें
 – 
RiggsFolly
24 मार्च 2020, 18:30

आप लूप के चारों ओर हर बार $card वेरिएबल को ओवरराइट कर रहे हैं, इसलिए लूप के बाद आपके पास जो कुछ बचा है वह आखिरी कार्ड है।

$row_result = mysqli_query($con, $query);

$card = ''; // init the card variable, so you can use `.=` from here on

while($record = mysqli_fetch_assoc($row_result)){
    //$card = '<div class="card">';    this was the offending line
    $card .= '<div class="card">';
    $card .= '  <div class="card-body">';
    $card .= '      <div class="comment-header">';
    $card .= '          <h6 class="card-subtitle mb-2 comment-name">'.$record['name'].'&nbsp;</h6>';
    $card .= '      </div>';
    $card .= '  </div>';
    $card .= '</div>';
}
0
RiggsFolly 24 मार्च 2020, 18:25