• 28-07-2013, 16:45:37
    #10
    Reveloper
    saintx adlı üyeden alıntı: mesajı görüntüle
    birde böyle deneyin?

    <?php
    	
    	while($row=mysql_fetch_array($query_resource)) {
    		$rows[] = $row;
    	}
    
    	foreach($rows as $row) {
    		switch($row->deger) {
    			// bla bla bla
    		}
    	}
    <?
    include('../configuration.php');
    if(!isset($_POST['productId']))exit;	/* No product id sent as input to this file */
    
    
    
    
    $urun = mysql_query("SELECT * FROM products ORDER BY id ASC");
    
        while($row=mysql_fetch_array($urun)) { 
            $rows[] = $row; 
        }
    
    	        switch($_POST['productId']) {
    
    			
        foreach($rows as $row) {
    $pricedb=$row["product_price"];
    $price = preg_replace('/[^.%0-9]/', '', $pricedb); 
    	
    		
    	case $row['id'];
    		echo "".$row["id"]."|||".$row["product_name"]."|||".$price."";
    		break;
            } 
        }
    
    ?>
    böyle yaptım şimdi bunun basım şekli
    switch($_POST['productId']){
    	
    	case "1";
    		echo "1|||Calendar|||50";
    		break;
    	case "2";
    		echo "2|||Shopping module|||250";
    		break;
    	case "3";
    		echo "3|||Menu package|||35";
    		break;	
    	case "4";
    		echo "4|||Ajax component|||50";
    		break;
    	case "5";
    		echo "5|||Week planner|||60";
    		break;
    	case "6";
    		echo "6|||Forum package|||150";
    		break;
    	case "7";
    		echo "7|||HTML editor|||150";
    		break;
    	case "8";
    		echo "8|||CSS creator|||125";
    		break;
    	
    	
    	
    }
    böylemi olacak acaba? ajax yemiyo çünkü denediğimde atmıyor sepete bakın:

    http://goo.gl/F2LouH

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:45:37 -->-> Daha önceki mesaj 16:35:00 --

    Hatamızıda verdi:
    Parse error: syntax error, unexpected T_FOREACH, expecting T_CASE or T_DEFAULT or '}' in /home/burtinet/public_html/cialishap.com/basket/addProduct.php on line 14

    <?
    include('../configuration.php');
    if(!isset($_POST['productId']))exit;	/* No product id sent as input to this file */
    
    
    $urun = mysql_query("SELECT * FROM products ORDER BY id ASC");
        while($row=mysql_fetch_array($urun)) { 
            $rows[] = $row; 
        }
    
    	switch($_POST['productId']) {
    
    			
    		foreach($rows as $row) {
    			$pricedb=$row["product_price"];
    			$price = preg_replace('/[^.%0-9]/', '', $pricedb); 
    		
    	case $row['id'];
    		echo "".$row["id"]."|||".$row["product_name"]."|||".$price."";
    		break;
            } 
        }
    
    ?>
    14: foreach($rows as $row) {
  • 28-07-2013, 17:04:22
    #11
    Kimlik doğrulama veya yönetimden onay bekliyor.
    sintaksı yanlış kullandığınızdan dolayı bu hatalar oluşuyor. aşağıdakı sayfalara göz atarsanız sizi yardımcı olacak bilgiler bulabilirsiniz.

    http://php.net/manual/tr/control-structures.while.php
    http://php.net/manual/tr/control-structures.switch.php
    http://php.net/manual/tr/control-structures.foreach.php
  • 28-07-2013, 17:58:34
    #12
    Reveloper
    saintx adlı üyeden alıntı: mesajı görüntüle
    sintaksı yanlış kullandığınızdan dolayı bu hatalar oluşuyor. aşağıdakı sayfalara göz atarsanız sizi yardımcı olacak bilgiler bulabilirsiniz.

    http://php.net/manual/tr/control-structures.while.php
    http://php.net/manual/tr/control-structures.switch.php
    http://php.net/manual/tr/control-structures.foreach.php
    Sorun:
    switch($_GET['productId']){
    }

    içerisinde foreach, while yaptığımızdan kaynaklanıyormuş switch içerisinde nası yapıcaz :/
  • 28-07-2013, 23:53:39
    #13
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Burti adlı üyeden alıntı: mesajı görüntüle
    Parse error: syntax error, unexpected T_VARIABLE, expecting T_CASE or T_DEFAULT or '}' in /public_html/basket/addProduct.php on line 7

    <?
    include('../configuration.php');
    if(!isset($_POST['productId']))exit;	/* No product id sent as input to this file */
    
    switch($_POST['productId']){
    
    $get_product = mysql_query("SELECT * FROM products ORDER BY id ASC ");
    while ( $list_product = mysql_fetch_array($get_product) ){ // while
    echo '	case "'.$list_product['id'].'";
    		echo "'.$list_product['id'].'|||Calendar|||50";
    		break;';
    }
    
    	
    	
    	
    }
    
    
    ?>
    bu kodu nasıl çalıştırabilirim?
    Arkadaşım posttan gelen ürün bilgisi var mı diye kontrol ediyorsun ama bütün ürünleri çekiyorsun veritabanından. Eğer posttan gelen ürünü göstereceksen hepsini çekmene ve switch kullanmana gerek yok ki zaten. Eğer yanlış anlamadıysam:

    include('../configuration.php');
    if(!isset($_POST['productId']))exit;	/* No product id sent as input to this file */
    $gelen_id = intval($_POST['productId']);
    
    $get_product = mysql_query('SELECT * FROM products where id='.$gelen_id);//gelen ide göre ürünü al
    $row = mysql_fetch_array($get_product) );
    $pricedb = preg_replace('/[^.%0-9]/', '', $row['product_price']);
    echo "".$row['id']."|||".$row['product_name']."|||".$price."";
    Ya da tam istediğin neyse onu yaz, yani gelen veriyi bir şeye göre karşılaştıracaksan, ona göre yardımcı olalım
  • 29-07-2013, 00:02:31
    #14
    Reveloper
    acayip adlı üyeden alıntı: mesajı görüntüle
    Arkadaşım posttan gelen ürün bilgisi var mı diye kontrol ediyorsun ama bütün ürünleri çekiyorsun veritabanından. Eğer posttan gelen ürünü göstereceksen hepsini çekmene ve switch kullanmana gerek yok ki zaten. Eğer yanlış anlamadıysam:

    include('../configuration.php');
    if(!isset($_POST['productId']))exit;	/* No product id sent as input to this file */
    $gelen_id = intval($_POST['productId']);
    
    $get_product = mysql_query('SELECT * FROM products where id='.$gelen_id);//gelen ide göre ürünü al
    $row = mysql_fetch_array($get_product) );
    $pricedb = preg_replace('/[^.%0-9]/', '', $row['product_price']);
    echo "".$row['id']."|||".$row['product_name']."|||".$price."";
    Ya da tam istediğin neyse onu yaz, yani gelen veriyi bir şeye göre karşılaştıracaksan, ona göre yardımcı olalım
    o sorunu çözdüm
    Sorun:
    switch($_GET['productId']){
    }

    içerisinde foreach, while yaptığımızdan kaynaklanıyormuş switch içerisinde nası yapıcaz :/
  • 29-07-2013, 00:25:15
    #15
    Arkadaşım switch içinde foreach vs. kullanılmaz diye bir şey yok. Kullanılabilir. Bir önceki mesajımda dediğim gibi sen neyi svitch içinde göstermek istiyorsun onu söyle. Veritabanından gelen bilgiyi bir liste ile falan mı karşılaştıracaksın. Ya da gelen ide göre mi switch yapacaksın.

    switch($_GET['productId']){
    case 1:
       $get_product = mysql_query('SELECT * FROM products where id='.intval($_GET['productId']));//gelen ide göre
       while(){
         //vs. vs.
       }
    
    break;
    
    case 2:
       foreach(){
         //vs. vs.
       }
    break;
    }
    ya da sorgu içinde yapacaksan:

    $get_product = mysql_query('SELECT * FROM products where id='.intval($_GET['productId']));//gelen ide göre
    while($row = mysql_fetch_array($get_product)){
    	switch($row['id']){
    		case 1:
    		//vs. vs
    		break;
    		
    		case 2:
    		//vs. vs
    		break;
    		
    	}
    }
  • 29-07-2013, 02:59:10
    #16
    Burti adlı üyeden alıntı: mesajı görüntüle
    E-Ticaret sistemi yazdım onun için mysql'den çekmek lazım..
    E-ticaret sistemi yazmış bir insan için böylesi basit bir hata çok şaşırtıcı. Yanlış anlamayın ama bir sistem yazmadan önce bu işin inciğini cinciğini öğrenmeniz daha sağlıklı olur.

    Veritabanınızın id - name - price şeklinde olduğunu varsaydım. Aşağıdaki kodlar iş görür. switch ile nasıl yapacağınızı gösterdim ama gereksizdir. Hemen altında yorum satırı ile birlikte if ile kullanımını gösterdim. O şekil kullanın.


    <?php
    
    include('../configuration.php'); 
    if(!isset($_POST['productId']))exit;    /* No product id sent as input to this file */ 
    $get_product = mysql_query("SELECT * FROM products ORDER BY id ASC");
    $product = null;
    while($list_product = mysql_fetch_array($get_product)){
    	$product[$list_product['id']] = array('id'=>$list_product['id'], 'name'=>$list_product['name'], 'price'=>$list_product['price']);
    }
    
    switch($_POST['productId']){
    	default: 
    		echo $product[$_POST['productId']]['id'].'|||'.$product[$_POST['productId']]['name'].'|||'.$product[$_POST['productId']]['price'];
    		break;
    }
    
    /* Switch kullanacağına aşağıdaki gibi bir if yapısı kullan daha güzel olacaktır. */
    
    if(isset($product[$_POST['productId']])){
    	echo $product[$_POST['productId']]['id'].'|||'.$product[$_POST['productId']]['name'].'|||'.$product[$_POST['productId']]['price'];
    }
    
    ?>