PHP - MySQL satır boyunca ileriye ve geriye hareket

2 Cevap php

Ben tarayıcı çubuğunda (page.php? Id = 1) verilen id bağlı olarak bir satır görüntüleyen bir sayfa var. Ben sayfada ilgili bir sonraki veya bir önceki satırı görüntülemek için ileri ve geri düğmelerini kullanmaya çalışıyorum. Yani aslında önceki ve sonraki düğmeleri sadece id listesindeki bir sonraki olmak page.php dosyasında bağlantılar olacak. Bu sıralı bir liste değildir, bu yüzden ben sadece vs id +1 yapamaz

Her neyse, ben gayet iyi çalışma var, ama gitmek için bir sayfa yoksa temelde metin olarak sadece ekran için ileri ve geri bağlantıları istiyorum. Ben $ backformat boşsa sadece metin görüntülemek için kod çalıştırmak için çalışıyorum, ama "Resource id # (ve bir rastgele sayı)" tutacak gibi görünüyor. Yani dizede "Kaynak" eşleştirmek için başka yollar denedim ama işe yaramadı

Herhangi bir fikir?

  <?php

		$backresult = mysql_query("SELECT id FROM studies WHERE niche = '$niche' AND date < '$currentdate' ORDER BY date DESC LIMIT 1", $connection);
			if (!$backresult) {
				die("Database query failed: " . mysql_error());
			}

			$forwardresult = mysql_query("SELECT id FROM studies WHERE niche = '$niche' AND date > '$currentdate' ORDER BY date ASC LIMIT 1", $connection);
			if (!$forwardresult) {
				die("Database query failed: " . mysql_error());
			}

	?>

while ($row = mysql_fetch_array($forwardresult)) {
			 	$forward = $row["id"];
				$forwardformat = preg_replace('/\s+/','',$forward);

					echo $forwardformat;

					$pos = strpos($forwardformat,'source');

					if($pos == false) {
					 // string needle NOT found in haystack
					 echo 'Exploring moves us <a href="casestudy.php?id=';
					echo $forwardformat;
					echo '">forward</a>';
					}
					else {
					 // string needle found in haystack
					 echo "forward";
					}
                                //other code I've tried before
				/* if (!empty($forwardformat)) {
					echo 'Exploring moves us <a href="casestudy.php?id=';
					echo $forwardformat;
					echo '">forward</a>';
				}
				else {
					echo "forward";
				}*/
}
echo $backresult;
while ($row = mysql_fetch_array($backresult)) {
			 	$back = $row["id"];
				$backformat = preg_replace('/\s+/','',$back);

					echo $backformat;

					//$pos = strpos($backformat,'source');

					//$match = preg_match("R",$backformat);

					if (substr($backformat,0,1) == 'R') {
					 // string needle NOT found in haystack
					echo ', studying we look <a href="casestudy.php?id=';
					echo $backformat;
					echo '">back</a>';
					}
					else {
					 // string needle found in haystack
					 echo "back";
					}
                                //other code I've tried before			
				/*if (!empty($backformat)) {
					echo ', studying we look <a href="casestudy.php?id=';
					echo $backformat;
					echo '">back</a>';
				}
				if ($backformat==false) {
					echo "back";
				} */
}

2 Cevap

$ Backresult sorgunuzun sonucu PHP'nin bağlantısıdır. Eğer $ backresult hiçbir satır içerdiğini kontrol etmek istiyorsanız, gibi bir şey gerekir

if(mysql_num_rows($backresult)==0) {
 //inactive link
} else {
 //active link
}

Yalnızca tek bir satır ile çalışıyorsanız eğer while() ifadeleri gerekmez. Bireysel alanlar empty($result['fieldname']) ile boş ise bir sorgu mysql_num_rows($result), test edebilirsiniz ile herhangi bir satır döndü ve evet, senin yukarıda yayınlanmıştır olarak test edin.