When i update Mysql table using a form over php page, the page does not automaticly refreshes when i hit submit. I have to hit refresh to see the updated rows. i tried but this did not work either any good ideas?
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
///////////////////////Edited Bottom////////////////////////////////////////////////////////
<?php
include ("../header.php");
include ("../header2.php");
?>
<?php
include('../config.php');
include ('../ac.thumbs.php');
if ($_GET['sil']) {
$sil = htmlspecialchars(stripslashes($_GET['sil']));
mysql_query("DELETE FROM CloseOut WHERE itemNO = $sil limit 1");
echo "<h1>$sil item nolu kayit silinmistir</h1><br>";
}
$edit = htmlspecialchars(stripslashes($_GET['edit']));
$data = mysql_query("SELECT * FROM CloseOut WHERE itemNO=$edit") or die(mysql_error());
//Puts it into an array
while($info = mysql_fetch_array( $data ))
{ echo "
<center>
<a href=\"edit.php?sil=$info[itemNO]\"onclick=\"return confirm('Do you really want to erase this entry?')\">[ Delete ]</a><br>
<a href=../../large.php?f=upload/".$info['resim'], $thumblarge .">
<img src=../../small.php?f=upload/".$info['resim'], $thumbsmall .">
</a>";
$editresim = $info[resim];
$editisim = $info[isim];
$editalan1 = $info[alan1];
$editalan2 = $info[alan2];
$editalan3 = $info[alan3];
$editalan4 = $info[alan4];
}
//Resimlerin yuklenecegin yer
$target = "../../upload/";
//////////////////////////////////////////////////////////////////////
///////////////////////////////Resim1/////////////////////////////////
//////////////////////////////////////////////////////////////////////
$target1 = $target . basename( $_FILES['resim1']['name']) ;
//Formdan gelen bilgileri almasi icin
$resim=($_FILES['resim1']['name']);
$isim=$_POST['isim1'];
$alan1=$_POST['alan11'];
$alan2=$_POST['alan21'];
$alan3=$_POST['alan31'];
$alan4=$_POST['alan41'];
/////////////Formdaki bos alanlara bos bilgi kayit etmemesi icin////////////////////////
$updates = array();
if (!empty($resim))
$updates[] = 'resim="'.mysql_real_escape_string($resim).'"';
if (!empty($isim))
$updates[] = 'isim="'.mysql_real_escape_string($isim).'"';
if (!empty($alan1))
$updates[] = 'alan1="'.mysql_real_escape_string($alan1).'"';
if (!empty($alan2))
$updates[] = 'alan2="'.mysql_real_escape_string($alan2).'"';
if (!empty($alan3))
$updates[] = 'alan3="'.mysql_real_escape_string($alan3).'"';
if (!empty($alan4))
$updates[] = 'alan4="'.mysql_real_escape_string($alan4).'"';
$updates = implode(', ', $updates);
/////////////////////////////////////////////////////////////////////////////////////////
//update etmesi icin
if(move_uploaded_file($_FILES['resim1']['tmp_name'], $target1))
{
mysql_query("UPDATE CloseOut SET $updates WHERE itemNO='$edit' ");
echo "Tebrikler, ". basename( $_FILES['resim1']['name']). " isimli dosya yuklendi ve database'e basariyla islendi!<br>";
}
?>
<br>
<center>
<table width="900" border="5" style="background-color:white; "bordercolor="#000000">
<tr>
<td width="120" height="50" bgcolor= "545454"><b>RESIM</b></td>
<td width="120" height="50" bgcolor= "545454"><b>NAME</b></td>
<td width="120" height="50" bgcolor= "545454"><b>CATAGORY</b></td>
<td width="120" height="50" bgcolor= "545454"><b>QUANTITY</b></td>
<td width="120" height="50" bgcolor= "545454"><b>LOCATION</b></td>
<td width="120" height="50" bgcolor= "545454"><b>PRICE</b></td>
</tr>
<tr>
<form enctype="multipart/form-data" method="post" action="">
<td><input type="file" name="resim1" value="<?php echo $editresim;?>"> </td>
<td><input type="text" name="isim1" value="<?php echo $editisim;?>"> </td>
<td><input type="text" name="alan11" value="<?php echo $editalan1;?>"> </td>
<td><input type="text" name="alan21" value="<?php echo $editalan2;?>"> </td>
<td><input type="text" name="alan31" value="<?php echo $editalan3;?>"></td>
<td><input type="text" name="alan41" value="<?php echo $editalan4;?>"></td>
</tr>
<td colspan="6"><center><input type="submit"></center></td>
</form>
</table>
</center>
Can you see it now? $editresim
value is $info[resim]
.
When you submit the form, $info[resim]
is the current database value. Database got updated below/after that.
When you Submit, you'll still see the previous data before the submitted value are actually placed into database. And thus you need to reopen that page to see the updated data.
One way to fix it, you should move the code to update data to top, before you SELECT * FROM CloseOut WHERE itemNO=$edit
, so that query will give you the latest/updated data.
Sorry for not providing sample codes, but I'm afraid I'll make some tiny errors which could add to the confusion. And it's actually better if you try to solve it yourself.
Good luck!
ps: Your logic
Get data from db
Put to data to VAR
If form is submitted:
Update data in DB
Show VAR // This is *not* the latest submitted data