Jump to content

Recommended Posts

Hi ive created this page stock_control but i cant seem to get the SQL to pick up the value of a variable part_number that I have used the GET function to bring in from previous page.. heres my code.


<?php
require('./header.php');
require('./dbconn.php');




$action = 'show_form';
if(!empty($_POST)) {
$action= 'process_data';
$part_number = $_GET['part_number'];

}




if($action== 'process_data')  {

$location_name = trim($_POST['location']);
$valid = intval(trim($_POST['valid']));

$sql= "UPDATE stockdata ( location , valid)  " .
"VALUES ('$location_name', '$valid' )
WHERE  part_number=$part_number ";
$ok= mysql_query($sql);

if($ok){
echo "<p class='ErrorText'>Update OK!</p>";

}
else
{
echo "<p class ='ErrorText'>Update Failed!</p>";
}
}
else {
$action = 'show_form';
}

echo $sql;   

//end running database query


if($action == 'show_form')  {
?>



<form method="post" action="stock_control.php">
  <p class ='MainText'>
  Change Location -
      <select name="location">
      <option =1 <?php if ($location_name ="A") echo ' selected '?> >A</option>
      <option =2 <?php if ($location_name ="B") echo ' selected '?> >B</option>
  <option =3 <?php if ($location_name ="C") echo ' selected '?> >C</option>
      <option =4 <?php if ($location_name ="D") echo ' selected '?> >D</option>
  <option =5 <?php if ($location_name ="E") echo ' selected '?> >E</option>
      <option =6 <?php if ($location_name ="F") echo ' selected '?> >F</option>
  <option =7 <?php if ($location_name ="G") echo ' selected '?> >G</option>
      <option =8 <?php if ($location_name ="H") echo ' selected '?> >H</option>
  <option =9 <?php if ($location_name ="I") echo ' selected '?> >I</option>
      <option =10 <?php if ($location_name ="J") echo ' selected '?> >J</option>
  <option =11 <?php if ($location_name ="K") echo ' selected '?> >K</option>
      <option =12 <?php if ($location_name ="L") echo ' selected '?> >L</option>
  <option =13 <?php if ($location_name ="M") echo ' selected '?> >M</option>
      <option =14 <?php if ($location_name ="N") echo ' selected '?> >N</option>
  <option =15 <?php if ($location_name ="O") echo ' selected '?> >O</option>
      <option =16 <?php if ($location_name ="P") echo ' selected '?> >P</option>
  <option =17 <?php if ($location_name ="Q") echo ' selected '?> >Q</option>
      <option =18 <?php if ($location_name ="R") echo ' selected '?> >R</option>
  <option =19 <?php if ($location_name ="S") echo ' selected '?> >S</option>
      <option =20 <?php if ($location_name ="T") echo ' selected '?> >T</option>
  <option =21 <?php if ($location_name ="U") echo ' selected '?> >U</option>
      <option =22 <?php if ($location_name ="V") echo ' selected '?> >V</option>
  <option =23 <?php if ($location_name ="W") echo ' selected '?> >W</option>
      <option =24 <?php if ($location_name ="X") echo ' selected '?> >X</option>
  <option =25 <?php if ($location_name ="Y") echo ' selected '?> >Y</option>
      <option =26 <?php if ($location_name ="Z") echo ' selected '?> >Z</option>
    </select>
</p>
  <p class ='MainText'>
    Change Validity-
      <select name="valid">
      <option =1 <?php if ($valid =0) echo ' selected '?> > 0</option>
      <option =2 <?php if ($valid =1) echo ' selected '?> > 1</option>
    </select>
</p>
  <input type="submit" value="save"/>
  </p>
</form> 
<?php
}
require('./footer.php');
?>


everything is picked up apart from the part_number value..

cheers,

pete.
Link to comment
https://forums.phpfreaks.com/topic/33012-using-a-get-variable-not-working/
Share on other sites

There's nowhere I can see that you passed the part_number variable across.
Does it come from apage previous to this?
if it does, you should put the [code] $part_number = $_GET['part_number'];[/code] before [code]$action = 'show_form';
[/code]
and include [code]<input type="hidden" name="part_number" value="<?=$part_number?>" />[/code] in your form
and [code]$part_number=$_POST['part_number'][/code] after [code]if($action== 'process_data')  {
[/code]
hi there,

thanks for your replys..

I have an error now that says:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( location , valid) VALUES ('E', '1' ) WHERE part_number=00000


my code now looks like this:


<?php
require('./header.php');
require('./dbconn.php');


$part_number = $_GET['part_number'];

$action = 'show_form';
if(!empty($_POST)) {
$action= 'process_data';

}




if($action== 'process_data')  {

$part_number=$_POST['part_number'];
$location_name = trim($_POST['location']);
$valid = intval(trim($_POST['valid']));

$sql= "UPDATE stockdata ( location , valid)  " .
"VALUES ('$location_name', '$valid' )
WHERE  part_number=$part_number ";
$ok= mysql_query($sql) or die(mysql_error());

if($ok){
echo "<p class='ErrorText'>Update OK!</p>";

}
else
{
echo "<p class ='ErrorText'>Update Failed!</p>";
}
}
else {
$action = 'show_form';
}

echo $sql;   

//end running database query


if($action == 'show_form')  {
?>



<form method="post" action="stock_control.php">

<input type="hidden" name="part_number" value="<?=$part_number?>" />

  <p class ='MainText'>
  Change Location -
      <select name="location">
      <option =1 <?php if ($location_name ="A") echo ' selected '?> >A</option>
      <option =2 <?php if ($location_name ="B") echo ' selected '?> >B</option>
  <option =3 <?php if ($location_name ="C") echo ' selected '?> >C</option>
      <option =4 <?php if ($location_name ="D") echo ' selected '?> >D</option>
  <option =5 <?php if ($location_name ="E") echo ' selected '?> >E</option>
      <option =6 <?php if ($location_name ="F") echo ' selected '?> >F</option>
  <option =7 <?php if ($location_name ="G") echo ' selected '?> >G</option>
      <option =8 <?php if ($location_name ="H") echo ' selected '?> >H</option>
  <option =9 <?php if ($location_name ="I") echo ' selected '?> >I</option>
      <option =10 <?php if ($location_name ="J") echo ' selected '?> >J</option>
  <option =11 <?php if ($location_name ="K") echo ' selected '?> >K</option>
      <option =12 <?php if ($location_name ="L") echo ' selected '?> >L</option>
  <option =13 <?php if ($location_name ="M") echo ' selected '?> >M</option>
      <option =14 <?php if ($location_name ="N") echo ' selected '?> >N</option>
  <option =15 <?php if ($location_name ="O") echo ' selected '?> >O</option>
      <option =16 <?php if ($location_name ="P") echo ' selected '?> >P</option>
  <option =17 <?php if ($location_name ="Q") echo ' selected '?> >Q</option>
      <option =18 <?php if ($location_name ="R") echo ' selected '?> >R</option>
  <option =19 <?php if ($location_name ="S") echo ' selected '?> >S</option>
      <option =20 <?php if ($location_name ="T") echo ' selected '?> >T</option>
  <option =21 <?php if ($location_name ="U") echo ' selected '?> >U</option>
      <option =22 <?php if ($location_name ="V") echo ' selected '?> >V</option>
  <option =23 <?php if ($location_name ="W") echo ' selected '?> >W</option>
      <option =24 <?php if ($location_name ="X") echo ' selected '?> >X</option>
  <option =25 <?php if ($location_name ="Y") echo ' selected '?> >Y</option>
      <option =26 <?php if ($location_name ="Z") echo ' selected '?> >Z</option>
    </select>
</p>
  <p class ='MainText'>
    Change Validity-
      <select name="valid">
      <option =1 <?php if ($valid =0) echo ' selected '?> > 0</option>
      <option =2 <?php if ($valid =1) echo ' selected '?> > 1</option>
    </select>
</p>
  <input type="submit" value="save"/>
  </p>
</form> 
<?php
}
require('./footer.php');
?>



many thanks,

pete.
change
[code]
$sql= "UPDATE stockdata ( location , valid)  " .
"VALUES ('$location_name', '$valid' )
WHERE  part_number=$part_number ";
[/code]
to
[code]
$sql= "UPDATE stockdata ( location , valid)  " .
"VALUES ('$location_name', '$valid' )
WHERE  part_number='$part_number' ";
[/code]
still getting the error :(


the error that comes up is:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( location , valid) VALUES ('H', '0' ) WHERE part_number='0000


the way I have brought the variable in from other page is:

<a class='LinkText' href='stock_control.php?part_number=<?php echo $part_number?>'>Edit Item</a>

that works ok because i can see in the address bar that the part number is added on fine...

check it out on my site..

www.longnines.net/mobile/
most strange.....
The works "location" and/or "valid" are probably reserved words in MySQL so you need to surround them with backticks:
[code]<?php
$sql= "UPDATE stockdata ( `location` , `valid`) VALUES ('$location_name', '$valid' ) WHERE  part_number=$part_number ";
?>[/code]

Ken
ive tried what you suggested ken but still getting the same error accept that this time is doesnt give any value for part_number:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( `location` , `valid`) VALUES ('Z', '1' ) WHERE part_number='
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.