Nasıl kalan PHP ve MySQL kullanarak döngüye zaman sadece bir kez bir parça kodu görüntülemek için?

2 Cevap php

Ben kod döngüler kalanı attı ise sadece bir kez aşağıdaki kodu görüntülemek çalışıyorum. Nasıl benim kod gibi görünmelidir ve nereye koymak gerekir. Şu an itibariyle alt kod görüntüler olmayacak ama ben döngü koydum eğer (ben ne istediğinizi değil) birden çok kez gösterecektir.

	//Display only once.
	if (!empty($row['category']) && !empty($row['url'])){
			echo '<h2>List of Links</h2>';
	}

İşte tam kodudur.

// Query member data from the database and ready it for display
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT users.*, categories.*, users_categories.* FROM users_categories INNER JOIN users ON users_categories.user_id = users.user_id INNER JOIN categories ON users_categories.category_id = categories.id WHERE users_categories.user_id=3");

if (!$dbc) {
	// There was an error...do something about it here...
	print mysqli_error($mysqli);
}	
	//Display only once.
	if (!empty($row['category']) && !empty($row['url'])){
			echo '<h2>List of Links</h2>';
	}

$ctr = 0;
while ($row = mysqli_fetch_assoc($dbc)) {
	if (!empty($row['category']) && !empty($row['url'])) {
		if ($ctr%3 == 0) {
			echo '<div>';
		}
		$ctr ++;
		echo '<p"><a href="' . $row['url'] . '" title="' . $row['category'] . ' Category Link">' . $row['category'] . '</a></p>';
		if ($ctr%3 == 0) { 
			echo '</div>';
		}
	}

}
if ($ctr%3 != 0) { 
  echo '</div>';
}

2 Cevap

Belki aradığınız:

if (mysql_num_rows($dbc) > 0){
    echo '<h2>List of Links</h2>';
}

Sorgu hiçbir şey döndüğünde satırlar sorguda döndürülen ve değilken ilkesi eğer geçerli yukarıda kodunu değiştirerek, başlık görüntülenir.

Bu nedenle, tam kod olacaktır:

// Query member data from the database and ready it for display
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT users.*, categories.*, users_categories.* FROM users_categories INNER JOIN users ON users_categories.user_id = users.user_id INNER JOIN categories ON users_categories.category_id = categories.id WHERE users_categories.user_id=3");

if (!$dbc) {
        // There was an error...do something about it here...
        print mysqli_error($mysqli);
}       
        //Display only once.
        if (mysql_num_rows($dbc) > 0){
            echo '<h2>List of Links</h2>';
        }

$ctr = 0;
while ($row = mysqli_fetch_assoc($dbc)) {
        if (!empty($row['category']) && !empty($row['url'])) {
                if ($ctr%3 == 0) {
                        echo '<div>';
                }
                $ctr ++;
                echo '<p"><a href="' . $row['url'] . '" title="' . $row['category'] . ' Category Link">' . $row['category'] . '</a></p>';
                if ($ctr%3 == 0) { 
                        echo '</div>';
                }
        }

}
if ($ctr%3 != 0) { 
  echo '</div>';
}

Bunu yapmanın standart yol, bir boolean değişkeni eklemek bir değerine atayan, bu kodu çalıştırmadan önce kontrol edin ve çalıştığında onu çevirmek için. Çok süslü, ama çalışıyor değil.

// Query member data from the database and ready it for display
$displayHeading = true;
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT users.*, categories.*, users_categories.* FROM users_categories INNER JOIN users ON users_categories.user_id = users.user_id INNER JOIN categories ON users_categories.category_id = categories.id WHERE users_categories.user_id=3");

if (!$dbc) {
        // There was an error...do something about it here...
        print mysqli_error($mysqli);
}       
        //Display only once.
        if (!empty($row['category']) && !empty($row['url']) && $displayHeading){
                 $displayHeading = false;
                 echo '<h2>List of Links</h2>';
        }

$ctr = 0;
while ($row = mysqli_fetch_assoc($dbc)) {
        if (!empty($row['category']) && !empty($row['url'])) {
                if ($ctr%3 == 0) {
                        echo '<div>';
                }
                $ctr ++;
                echo '<p"><a href="' . $row['url'] . '" title="' . $row['category'] . ' Category Link">' . $row['category'] . '</a></p>';
                if ($ctr%3 == 0) { 
                        echo '</div>';
                }
        }

}
if ($ctr%3 != 0) { 
  echo '</div>';
}

Ben PHP yazdım beri, bu yüzden ben doğru ve yanlışın doğru değişmezleri var sayıyorum, ama belki onlar gibi tüm kapaklar ya da bir şey olmak zorunda, bir süre oldu unutmayın.