Bir T_ELSE ayrıştırma hatası yardım: sözdizimi hatası [kapalı]

3 Cevap php

switch($_GET["action"])
{
case "add_item":
{
AddItem($_GET["ids"], $_GET["qty"]);
ShowCart();
break;
}
case "update_item":
{
UpdateItem($_GET["ids"], $_GET["qty"]);
ShowCart();
break;
}
case "remove_item":
{
RemoveItem($_GET["ids"], $_GET["id"]);
ShowCart();
break;
}
default:
{
ShowCart();
}
}
function AddItem($itemId, $qty){


$result = mysql_query("SELECT COUNT(*) FROM cart WHERE cookieId = '" . GetCartId() . "' AND id = $itemId");

$row = mysql_fetch_row($result);
$numRows = $row[0];

if($numRows == 0)
{
// This item doesn't exist in the users cart,
// we will add it with an insert query

mysql_query("INSERT INTO cart(cookieId, id, qty) values('" . GetCartId() . "', $itemId, $qty)");
//printf ("Inserted records: %d\n", mysql_affected_rows());

}
else
{
// This item already exists in the users cart,
// we will update it instead
 mysql_query("UPDATE cart SET qty = $qty WHERE cookieId = '" . GetCartId() . "' AND id = $itemId");

}

}

function UpdateItem($itemId, $qty)
{

mysql_query("UPDATE cart SET qty = $qty WHERE cookieId = '" . GetCartId() . "' AND id = $itemId");
//printf ("Updated records: %d\n", mysql_affected_rows());

}

function RemoveItem($itemId) 
{

mysql_query("DELETE FROM cart WHERE cookieId = '" . GetCartId() . "' AND id = $itemId");
}
echo $ids;
?>

<?php 
function ShowCart()

{

$result = mysql_query("SELECT
              cart.id         cart_id,
              cart.id         cart_id,
              cart.cartId     cartId,
              cart.cookieId   cookie_Id,
              cart.qty        qt_y,                     
              cdkb.id         cdkb_id,
              cdkb.name       name,
              cdkb.image      image,
              cdkb.price      price,
              dkb.id          dkb_id,
              dkb.name        name1, 
              dkb.image       image1,
              dkb.price       price2,
              dbl.product_id  product_id,
          dbl.price       price3,
          dbl.variety     variety,
          dbl.description description                  
    FROM
    cart


    LEFT OUTER JOIN cdkb
       ON cart.id = cdkb.id    

    LEFT OUTER JOIN dkb
       ON cart.id = dkb.id

    LEFT OUTER JOIN dbl
       ON dbl.id = dkb.id 


WHERE
    cart.cookieId ='" . GetCartId() . "' ' ORDER BY cdkb.name AND dkb.name ASC");?>

<div id="cart">
<div id="group">
<div id="quantity">Qty</div>
<div id="cartpic">Pic</div>
<div id="product">Product</div>
<div id="cartprice">Price</div>
<div id="remove">Remove</div>
</div>
<?php

$totalCost=0;
foreach($result as $row)
{  
if($row['ckb_id']){
// Increment the total cost of all items
$totalCost += ($row["qt_y"] * $row["price"]);

?>

<div id="cart1">
<select name="<?php echo $row["cdkb_id"];?>" onChange="UpdateQty(this)">
<?php  print($row["cdkb_id"]);?>
<?php

for($i = 1; $i <= 30; $i++)
{
echo "<option ";
if($row["qt_y"] == $i)
{
echo " SELECTED ";
}
echo ">" . $i . "</option>";
}
?>
</select>
</div>
<div id="cart2">
<img src="images/logopic.gif"<?php /*?><?php echo $row["image"]; ?><?php */?> alt="we" width="60" height="50" />
</div>
<div id="cart3"><p><?php echo $row["name"]; ?></p></div>



<div id="cart4"><p>
$<?php echo number_format($row["price"], 2, ".", ","); ?></p></div>

<div id="cart5">
<p><?php
printf('<a href="cart.php?action=remove_item&id=%d&ids=%d&register=%s">Remove</a>', $_GET['id'], $row['cdkb_id'], $_GET['register']);
?></p></div>

<hr size="1" color="red" >

<script language="JavaScript">

function UpdateQty(item)
{
itemId = item.name;
newQty = item.options[item.selectedIndex].text;

document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty;
}

</script>






<?php
}
?>
<?php
else {
?>
<?php // Increment the total cost of all items
$totalCost += ($row["qt_y"] * $row["price2"]);

?>

<div id="cart1">
<select name="<?php echo $row["dkb_id"];?>" onChange="UpdateQty(this)">
<?php  print($row["dkb_id"]);?>
<?php

for($i = 1; $i <= 30; $i++)
{
echo "<option ";
if($row["qt_y"] == $i)
{
echo " SELECTED ";
}
echo ">" . $i . "</option>";
}
?>
</select>
</div>
<div id="cart2">
<img src="images/logopic.gif"<?php /*?><?php echo $row["image2"]; ?><?php */?> alt="we" width="60" height="50" />
</div>
<div id="cart3"><p><?php echo $row["name2"]; ?></p></div>

<?php foreach ($row['dkb_id'] as $variety) {?>
<div id="cart4">
   <?php echo"<p>".$variety['variety']. " ~ " . $variety['price3'] . "</p>" ?>
<p>$<?php echo number_format($row["price3"], 2, ".", ","); ?></p></div>
<?php } ?>
<div id="cart5">
<p><?php
printf('<a href="cart.php?action=remove_item&id=%d&ids=%d&register=%s">Remove</a>', $_GET['id'], $row['dkb_id'], $_GET['register']);
?></p></div>

<hr size="1" color="red" >

<script language="JavaScript">

function UpdateQty(item)
{
itemId = item.name;
newQty = item.options[item.selectedIndex].text;

document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty;
}

</script>




<font face="verdana" size="2" color="black" style="clear:right;">
<b>Total: $<?php echo number_format($totalCost, 2, ".", ","); ?></b></font></td>


<?php } ?>
<?php } ?>
<div id="shopping">
<a href=<?php echo "exa2.php?id=".intval($id).  '&register='. $_GET['register']. ""?>> Keep Shopping</a></div>
<?php /*?><tr>
<td colspan="4">
<font face="verdana" size="1" color="black">
<a href=<?php echo "cart.php?id=".intval($id).  '&register='. $_GET['register']. ""?>>Your Shopping Cart</a></font></td>
</tr><?php */?>

</tr>
</table>

</table>

Hi For those who has commented on http://stackoverflow.com/questions/2298885/help-with-a-unexpected-t-else this is the subsequent thread I couldn't post int he other account because accessibility issues.

O Ayrıştırma hatası kala gibi, sözdizimi hatası: sözdizimi hatası, beklenmedik T_ELSE yukarıdaki sorgu Aşağıdaki kodda bir ayrıştırma errror neden olan bir if ve else dizisi olacak. Eğer bakmak ve başka statment tasarım ve possiblly bu hataya sebep oluyor.

if {
  for (blabla) {
    if {

    }// end of if statement inside the for loop

  } //end of for loop.

} end of if statement 
else{ // line 379


}// end of else statement

Ben son yazılan dedi yukarıda T_ELSE sözdizimi hatası neden inanmak nedir ise for döngüsü içinde deyim. Php else döngüsü için içinde eğer deyimi ile birlikte çalışan ve ne istediğinizi döngü çalışmaları için bir araya else deyimi ile dışarıda ise ifadesi olduğuna inanmaktadır. Hata şuna benzer:

Muhtemelen ayrıştırma hatası neden PS şeyi sorgu altındadır. teşekkürler.

IF arasında başka yılında AMACI DISPLAY gibi görünecektir

foreach($result as $row)
    {  
    if (table cdkb) { 
      [1]qyt         image      name          price        remove
         1            ---       marina        $18.90        remove?    
         }end of if statement
    Else table dkb {
       1]qyt            Image         Name             Price                  Remove
         1               ---         marina         Small Tray  $18.90        remove? 
                                                    Medium Tray $30.24
                                                    Large Tray  $35.90
                      } // end of else statement

                      }//end of while loop

Bu AMACI ekranın arkasında dizisi yapıdır!

<?php
$result = array(
        '0' => array('cdkb_id' => 'id 1',
            'image' => 'img 1',
            'name' => 'name 1',
            'price' => 'price 1'
            ),
        '1' => array('image1' => 'img 2',
            'name1' => 'name 2',
            'dkb_id' => array('0' => array('variety' => 'variety 2-1',
                         'price3' => 'price 2-1'
                        ),
                    '1' => array('variety' => 'variety 2-2',
                         'price3' => 'price 2-2'
                        ),
                    '2' => array('variety' => 'variety 2-3',
                         'price3' => 'price 2-3'
                        )
                    )
            ),
        '2' => array('cdkb_id' => 'id 3',
            'image' => 'img 3',
            'name' => 'name 3',
            'price' => 'price 3'
            ),
        '3' => array('image1' => 'img 4',
            'name1' => 'name 4',
            'dkb_id' => array('0' => array('variety' => 'variety 4-1',
                         'price3' => 'price 4-1'
                        ),
                    '1' => array('variety' => 'variety 4-2',
                         'price3' => 'price 4-2'
                        ),
                    '2' => array('variety' => 'variety 4-3',
                         'price3' => 'price 4-3'
                        )

Bir if if ve else deyimi içinde döngü için .... arasında olduğundan yolda tek şey T_ELSE olduğunu

Teşekkürler.

3 Cevap

Bu biraz fark:

<?php 
} 
?> 
<?php 
else { 
?> 

Eğer IF ve başka iki farklı kod blokları içine biten bölme DEĞİL denediniz mi? Ben kuvvetle çözümleyici bağlamda bu tür koruyacak şüphe: ilk blok halinde bloğu sonlandırmak için çalışır, ve bir başka okumaz, çünkü sen onunla bitti varsayar. Böylece, bir sonraki blokta sahip başka sizin eğer kesilir.

Başka bir şekilde içteki bağlanmak olacağını fikri ise tamamen yanlıştır. Bu mümkün olsaydı dilbilgisi çok kırılmış olur.

Sizin kod kesinlikle önemli bir temizlenmesi gerekiyor. Girinti sadece bir dişçi ofisinde duymak bir şey değildir. Bu kod görsel bir yapı kazandırmak ve kod yuva parantez bir dizi ait bir bakışta görmek için çok daha kolay hale getirmek için kullanılır. Siz aslında NO garibi dışında herhangi girinti, mysql sorgu, güzel biçimlendirilmiş var.

PHP'nin tükürme dışarı yana bir 'else beklenmedik', yani bir yerde çok fazla veya çok az parantez var, ya da böyle bir şey var ettik demektir:

if ($condition) {
} else {
} else {
}

, Kodunuzu temizlemek doğru biçimlendirmeyi kullanmak, ve ben (eşleşen parantez arasında sıçrama VI '%' komutu) eksik / ekstra parantez bulmanıza yardımcı olabilir böyle VI gibi bir editör, kullanarak öneririm.

@ Mark Byers yukarıda ve aşağıda kod basit bir sürümü var ve bu üç varsa içindeki her döngü ve başka başka biri içinde önce deyim iki döngü için ben foreach döngüsü de bir başka deyim ile eşleştirmek istiyorum .

<?php
$totalCost=0;
foreach($result as $row)
{  
if($row['ckb_id']){ if statement that will match the else statement..
// Increment the total cost of all items
$totalCost += ($row["qt_y"] * $row["price"]);

?>

<div id="cart1">
<select name="<?php echo $row["cdkb_id"];?>" onChange="UpdateQty(this)">
<?php  print($row["cdkb_id"]);?>
<?php

for($i = 1; $i <= 30; $i++)
{
echo "<option ";
if($row["qt_y"] == $i) // if statement inside the for loop
{
echo " SELECTED ";
}
echo ">" . $i . "</option>";
}
?>
</select>
</div>
<div id="cart2">
<img src="images/logopic.gif"<?php /*?><?php echo $row["image"]; ?><?php */?> alt="we" width="60" height="50" />
</div>
<div id="cart3"><p><?php echo $row["name"]; ?></p></div>



<div id="cart4"><p>
$<?php echo number_format($row["price"], 2, ".", ","); ?></p></div>

<div id="cart5">
<p><?php
printf('<a href="cart.php?action=remove_item&id=%d&ids=%d&register=%s">Remove</a>', $_GET['id'], $row['cdkb_id'], $_GET['register']);
?></p></div>

<hr size="1" color="red" >

<script language="JavaScript">

function UpdateQty(item)
{
itemId = item.name;
newQty = item.options[item.selectedIndex].text;

document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty;
}

</script>






<?php
} // end of if statement
?>
<?php
else { // beginning of else statement
?>
<?php // Increment the total cost of all items
$totalCost += ($row["qt_y"] * $row["price2"]);

?>

<div id="cart1">
<select name="<?php echo $row["dkb_id"];?>" onChange="UpdateQty(this)">
<?php  print($row["dkb_id"]);?>
<?php

for($i = 1; $i <= 30; $i++)
{
echo "<option ";
if($row["qt_y"] == $i)
{
echo " SELECTED ";
}
echo ">" . $i . "</option>";
}
?>
</select>
</div>
<div id="cart2">
<img src="images/logopic.gif"<?php /*?><?php echo $row["image2"]; ?><?php */?> alt="we" width="60" height="50" />
</div>
<div id="cart3"><p><?php echo $row["name2"]; ?></p></div>

<?php foreach ($row['dkb_id'] as $variety) {?>
<div id="cart4">
   <?php echo"<p>".$variety['variety']. " ~ " . $variety['price3'] . "</p>" ?>
<p>$<?php echo number_format($row["price3"], 2, ".", ","); ?></p></div>
<?php } ?>
<div id="cart5">
<p><?php
printf('<a href="cart.php?action=remove_item&id=%d&ids=%d&register=%s">Remove</a>', $_GET['id'], $row['dkb_id'], $_GET['register']);
?></p></div>

<hr size="1" color="red" >

<script language="JavaScript">

function UpdateQty(item)
{
itemId = item.name;
newQty = item.options[item.selectedIndex].text;

document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty;
}

</script>




<font face="verdana" size="2" color="black" style="clear:right;">
<b>Total: $<?php echo number_format($totalCost, 2, ".", ","); ?></b></font></td>


<?php } ?>
<?php } ?>
<div id="shopping">
<a href=<?php echo "exa2.php?id=".intval($id).  '&register='. $_GET['register']. ""?>> Keep Shopping</a></div>
<?php /*?><tr>
<td colspan="4">
<font face="verdana" size="1" color="black">
<a href=<?php echo "cart.php?id=".intval($id).  '&register='. $_GET['register']. ""?>>Your Shopping Cart</a></font></td>
</tr><?php */?>

</tr>
</table>

</table>