Forum Moderators: coopster

Message Too Old, No Replies

T VARIABLE error In PHP

         

Zhuoling

3:17 pm on Sep 23, 2005 (gmt 0)

10+ Year Member



Hi
I am new to PHP.
I have a error message as follow:

Parse error: parse error, unexpected T_VARIABLE
Select_Test.php on line 24

here is the php page:
****************************
<html>
#Select_Test.php
<head>
<title>Select_Test.php</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php

include("CONN_INC.php");

$report=$item_query;

$sql1="SELECT * FROM item";
$sql2="SELECT * FROM item WHERE material='bronze'";
$sql2="SELECT * FROM item WHERE material='glass'";
$sql2="SELECT * FROM item WHERE material='pottery'";
$sql2="SELECT * FROM item WHERE material='coin'";

switch($item_query)
{
case"sql1"
$item_query = $sql1;
break;

case"sql2"
$item_query=$sql2;
break;

case"sql3"
$item_query=$sql3;
break;

case"sql4"
$item_query=$sql4;
break;

case"sql5"
$item_query=$sql5;

}

$mysql_result=mysql_query($item_query, $connection);
$num_row=@mysql_num_rows($mysql_result);
if ($num_row==0)
{
echo" No Records!";
else
{
echo"$num_rows titles Found";

echo"<TABLE BORDER=\"3\">";
echo"<TR><TD>Series No</TD><TD>Material</TD><TD>Approx Date</TD><TD>Description</TD><TD>Condition</TD>
<TD>Date Found</TD><TD>Layer ID</TD><TD>Image</TD><TD>Detail</TD></TR>";

while($row=mysql_fetch_array($mysql_result)
{
$sfNO=$row["sfNO"];
$material=$row["material"];
$approxDate=$row["approxDate"];
$description=$row["description"];
$condition=$row["condition"];
$deteFound=$row["deteFound"];
$layerID=$row["layerID"];
$image=$row["image"];
$detail=$row["detail"];

echo"<TR><TD>$sfNO</TD><TD>$material</TD><TD>$approxDate</TD><TD>$description</TD><TD>$condition</TD>
<TD>$deteFound</TD><TD>layerID</TD><TD>$image</TD><TD>$detail</TD></TR>";

}
echo"</TABLE>";

mysql_close($connection);
?>
</BODY>
</HTML>
****************************

jatar_k

3:51 pm on Sep 23, 2005 (gmt 0)

WebmasterWorld Administrator 10+ Year Member



Welcome to WebmasterWorld Zhuoling,

it's your switch

case"sql1"

each case needs to end with a colon, like so

case"sql1":

tomda

4:04 pm on Sep 23, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Welcome Zhuolling,

New to PHP, so let me drop few comments.

See below on how to use correctly the switch statement
- Always close it with a break;
- Always have a default: statement

Also, start with only one variable ($sql) and use
$sql .= ""; to continue the query.


$sql="SELECT * FROM item";
// TRY TO USE * AS LESS AS POSSIBLE

switch($item_query) {
case"sql2": $sql .= "WHERE material='bronze'"; break;
case"sql3": $sql .= "WHERE material='glass'"; break;
case"sql4": $sql .= "WHERE material='pottery'"; break;
case"sql5": $sql .= "WHERE material='coin'"; break;
default: break;} //DEFAULT HERE APPLIES TO SQL1

$mysql_result=mysql_query($sql, $connection);

Last advice, use single quote and double quote. Much more simple when coding PHP.


$mysql_result=mysql_query($item_query, $connection);
$num_row=@mysql_num_rows($mysql_result);
if ($num_row==0) {echo 'No Records!';}
else { echo ''.$num_rows.' titles Found

<TABLE BORDER='3'>
<TR><TD>Series No</TD><TD>Material</TD><TD>Approx Date</TD><TD>Description</TD><TD>Condition</TD>
<TD>Date Found</TD><TD>Layer ID</TD><TD>Image</TD><TD>Detail</TD></TR>';

while($row=mysql_fetch_array($mysql_result){
$sfNO=$row["sfNO"];
$material=$row["material"];
$approxDate=$row["approxDate"];
$description=$row["description"];
$condition=$row["condition"];
$deteFound=$row["deteFound"];
$layerID=$row["layerID"];
$image=$row["image"];
$detail=$row["detail"];

echo '<TR><TD>'.$sfNO.'</TD><TD>'.$material'.</TD>
<TD>'.$approxDate.'</TD><TD>'.$description.'</TD>
<TD>'.$condition.'</TD><TD>'.$deteFound.'</TD>
<TD>'.$layerID.</TD><TD>'.$image.'</TD>
<TD>'.$detail.'</TD></TR>';}

echo '</TABLE>';

mysql_close($connection);
?>
</BODY>
</HTML>

Tomda