• 27-02-2014, 11:06:06
    #1
    Merhaba

    Yaptığım -yapmaya çalıştığım - sistem için duyurular.php'de switch ile duyuruları çekmeye çalıştım ama hata verdi.

    <?php
    		$sonucc = mysql_query("select id,baslik,yazi from duyurular");
    		$gidileceksayfa = @$_GET["git"];
    			switch($gidileceksayfa) {
    					while($oku = mysql_fetch_array($sonuc,MYSQL_BOTH))
    					{
    						case $okuu ["id"];  
    						echo $okuu ["baslik"]; 
    						echo $okuu ["yazi"]; 
    						break;
    					}
    		} ?>
    Kod bu "while($oku = mysql_fetch_array($sonuc,MYSQL_BOTH))" bu satır hata verdi.

    Alıntı
    Parse error: syntax error, unexpected 'while' (T_WHILE), expecting case (T_CASE) or default (T_DEFAULT) or '}' in C:\xampp\htdocs\duyuru.php on line 41
    Hatada bu. Anladığım kadarıyla switch içinde while kulanılmaz diyor.

    Alternatif yollar vs. varmıdır?
  • 27-02-2014, 11:10:07
    #2
    Üyeliği durduruldu
    switch'in icinde case'in olmasi gerek

    switch ($sayfa)
    case 'hakkimizda':
    dongu
    break;
  • 27-02-2014, 11:11:18
    #3
    PHPci adlı üyeden alıntı: mesajı görüntüle
    switch'in icinde case'in olmasi gerek

    switch ($sayfa)
    case 'hakkimizda':
    dongu
    break;
    orası öyle ama switch içinde veritabanından veri çekmek istiyorum.
  • 27-02-2014, 12:34:46
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Koah; birde şunu deneyin hocam

    <?php
    	
    	$page = isset($_GET["git"]) ? $_GET["git"] : "";
    	
    	switch($page)
    	{
    		case "duyurular":
    		{
    			$resource = mysql_query("SELECT `id`, `baslik`, `yazi` FROM `duyurular`");
    			
    			if(mysql_errno() === 0)
    			{
    				$rows = array();
    				
    				while($row = mysql_fetch_assoc($resource))
    				{
    					$rows[] = $row;
    				}
    				
    				/**
    				* Gelen tüm kayıtlar $rows
    				* değişkeninde
    				**/
    			}
    			else
    			{
    				echo mysql_errno() . ": ". mysql_error();
    			}
    		} break;
    		default:
    		{
    			# Tanımlanmayan sayfa
    		}
    	}
  • 27-02-2014, 13:08:30
    #5
    saintx adlı üyeden alıntı: mesajı görüntüle
    @Koah; birde şunu deneyin hocam

    <?php
    	
    	$page = isset($_GET["git"]) ? $_GET["git"] : "";
    	
    	switch($page)
    	{
    		case "duyurular":
    		{
    			$resource = mysql_query("SELECT `id`, `baslik`, `yazi` FROM `duyurular`");
    			
    			if(mysql_errno() === 0)
    			{
    				$rows = array();
    				
    				while($row = mysql_fetch_assoc($resource))
    				{
    					$rows[] = $row;
    				}
    				
    				/**
    				* Gelen tüm kayıtlar $rows
    				* değişkeninde
    				**/
    			}
    			else
    			{
    				echo mysql_errno() . ": ". mysql_error();
    			}
    		} break;
    		default:
    		{
    			# Tanımlanmayan sayfa
    		}
    	}
    Peki burda yazdırmak istediğim yazıyı nereye koycam ? Acemiyim biraz kusura bakmayın.

    Yardım için saolun.
  • 27-02-2014, 13:11:38
    #6
    @Koah;

    	/**
    	* Gelen tüm kayıtlar $rows
    	* değişkeninde
    	**/
    yazan kısımda işlemler yapabilirsin. Yazıyı yazdırmak için ise şu örneği inceleyebilirsin.

    <?php
    	
    	$page = isset($_GET["git"]) ? $_GET["git"] : "";
    	
    	switch($page)
    	{
    		case "duyurular":
    		{
    			$resource = mysql_query("SELECT `id`, `baslik`, `yazi` FROM `duyurular`");
    			
    			if(mysql_errno() === 0)
    			{
    				$rows = array();
    				
    				while($row = mysql_fetch_assoc($resource))
    				{
    					$rows[] = $row;
    				}
    				
    				/**
    				* Gelen tüm kayıtlar $rows
    				* değişkeninde
    				**/
    				
    				foreach($rows as $row)
    				{
    					echo "<h1>{$row["baslik"]}</h1>";
    					echo "<p>{$row["yazi"]}</p>";
    				}
    			}
    			else
    			{
    				echo mysql_errno() . ": ". mysql_error();
    			}
    		} break;
    		default:
    		{
    			# Tanımlanmayan sayfa
    		}
    	}
  • 27-02-2014, 13:15:03
    #7
    saintx adlı üyeden alıntı: mesajı görüntüle
    @Koah;

    	/**
    	* Gelen tüm kayıtlar $rows
    	* değişkeninde
    	**/
    yazan kısımda işlemler yapabilirsin. Yazıyı yazdırmak için ise şu örneği inceleyebilirsin.

    <?php
    	
    	$page = isset($_GET["git"]) ? $_GET["git"] : "";
    	
    	switch($page)
    	{
    		case "duyurular":
    		{
    			$resource = mysql_query("SELECT `id`, `baslik`, `yazi` FROM `duyurular`");
    			
    			if(mysql_errno() === 0)
    			{
    				$rows = array();
    				
    				while($row = mysql_fetch_assoc($resource))
    				{
    					$rows[] = $row;
    				}
    				
    				/**
    				* Gelen tüm kayıtlar $rows
    				* değişkeninde
    				**/
    				
    				foreach($rows as $row)
    				{
    					echo "<h1>{$row["baslik"]}</h1>";
    					echo "<p>{$row["yazi"]}</p>";
    				}
    			}
    			else
    			{
    				echo mysql_errno() . ": ". mysql_error();
    			}
    		} break;
    		default:
    		{
    			# Tanımlanmayan sayfa
    		}
    	}
    Tamamdır bunu hallettim peki her duyuru için ayrı sayfayı nasıl yaparım?


    Mesela id'si 1 olan duyuru için 'duyuru.php?git=1' adresine gitcek?
  • 27-02-2014, 13:20:40
    #8
    @Koah; bu verdiğim betiği duyuru.php'ye yazdığınızı varsayarak cevaplıyorum.

    <?php
    	# Filtreleme işlemleri yapmadım. Sen yaparsın artık :)
    	$ID = isset($_GET["git"]) ? $_GET["git"] : "";
    	
    	$resource = mysql_query("SELECT `id`, `baslik`, `yazi` FROM `duyurular` WHERE `id` = {$ID}");
    	
    	if(mysql_num_rows($resource) <= 0)
    	{
    		echo "Yazı bulunamadı.";
    	}
    	else
    	{
    		$post = mysql_fetch_assoc($resource);
    		
    		echo "<h1>{$post["baslik"]}</h1>";
    		echo "<p>{$post["yazi"]}</p>";
    	}
  • 27-02-2014, 13:36:04
    #9
    Üyeliği durduruldu
    Koah adlı üyeden alıntı: mesajı görüntüle
    orası öyle ama switch içinde veritabanından veri çekmek istiyorum.
    bence veri tabanından veri cekmeye calismadan once php'nin karar kontrol mekanizmaları söz dizimi gibi genel konulara bakmalısın.