[ igorkr @ 02.03.2015. 10:15 ] @
Zdravo,

Update query neče da se izvrši. Problem je sa $id. U 10 liniju je echo $id; ok - ispiše pravu vrednost, ali u update query je $id prazan. Koda je:
<?php
session_start();
include_once 'conn.php';
if (!isset($_SESSION['user'])) header("Location: login.php");
if(isset($_SESSION['user']))
{
$user = $_SESSION['user'];
$pass = $_SESSION['pass'];
$id = $_GET['id'];
echo $id;
if(isset($_POST['submit']))
{
$var1 = mysql_escape_string($_POST['var1']);
mysql_query("UPDATE table1 SET var1 = '$var1' WHERE id = '$id' LIMIT 1") or die(mysql_error());
header("Location: edit.php");
exit();
}
include_once 'header.php';
$q = mysql_query("SELECT * FROM table1 WHERE id = '$id'") or die(mysql_error());
$r = mysql_fetch_object($q);
?>
<form class="reg" method="post" action="edit.php?id=$id" enctype="multipart/form-data">
<input type="text" value= "<?php if (isset($_POST['var1'])) echo $_POST['var1']; else echo "$r->var1";?>" name="var1" class="sign-up" placeholder="Number 1">
<input type="submit" name="submit" value="Update" class="reg-button">
</form>
<?php
}
include 'footer.php';
?>
</body>
</html>


Hvala,
Igor
[ igorkr @ 02.03.2015. 14:28 ] @
Ako koristim

mysql_query("UPDATE table1 SET var1 = '$var1' WHERE id = '35' LIMIT 1") or die(mysql_error());

update se izvrši i tabela se updata. 35 je pravi id (u linku), isti id dobijem i sa komandom echo $id; u 10. liniji u kodi.
[ Nemanja Avramović @ 02.03.2015. 16:52 ] @
Da li dobijaš grešku (mysql_error()) ili upit prođe ali ne ažurira red?

Code:
$upit = "UPDATE table1 SET var1 = '$var1' WHERE id = '$id' LIMIT 1";
mysql_query($upit) or die(mysql_error());

var_dump($upit);


Kad ti var_dump ispiše upit probaj ga direktno u MySQLu (phpMyAdmin). I da, $id kastuj u (int) jer ovako može da ti odradi SQL injection preko njega.
[ igorkr @ 03.03.2015. 08:13 ] @
Grešku ne dobijam. Upit prođe ali ne ažurira podatke.
var_dump mi ništa ne ispiše.

Ali ako koristim, na primer za id = 35:

mysql_query("UPDATE table1 SET var1 = '$var1' WHERE id = '35' LIMIT 1") or die(mysql_error());

update se izvrši i tabela se ažurira.
[ Nemanja Avramović @ 03.03.2015. 09:30 ] @
Ako ti var_dump ništa ne ispiše onda nisi uradio nešto kako treba. $upit mora da sadrži SQL upit koji ćeš proslediti mysql_query funkciji.
[ agvozden @ 04.03.2015. 08:51 ] @
kako može da ispiše pravu vrednosta ako imaš ovakvu liniju

<form action="edit.php?id=$id" ...

kada opališ submit nemaš dobar $id.

Kod ovakvih stvari - logićkih problema trebaš da trekuješ upite.
npr
echo "UPDATE table1 SET var1 = '$var1' WHERE id = '$id' LIMIT 1";
[ Tpojka @ 04.03.2015. 09:37 ] @
Pokusaj bez single quote-a. Unutar double quote-a evaluacija ce se izvrsiti:
Code (php):
echo "UPDATE `table1` SET `var1` = $var1 WHERE `id` = $id LIMIT 1";

Tako da:
Code (php):

$query = "UPDATE `table1` SET `var1` = $var1 WHERE `id` = $id LIMIT 1";
mysql_query($query) or die(mysql_error());
 

Reference link.
[ igorkr @ 04.03.2015. 14:34 ] @
Citat:
agvozden:
kako može da ispiše pravu vrednosta ako imaš ovakvu liniju

<form action="edit.php?id=$id" ...

kada opališ submit nemaš dobar $id.

Kod ovakvih stvari - logićkih problema trebaš da trekuješ upite.
npr
echo "UPDATE table1 SET var1 = '$var1' WHERE id = '$id' LIMIT 1";


Liniju sam zamenjao sa
<?php echo "<form class=\"reg\" method=\"post\" action=\"edit.php?id=$id\" enctype=\"multipart/form-data\">";?>

ali i dalje ne radi.
[ Tpojka @ 04.03.2015. 14:50 ] @
@agvozden ti kaze da ne moze da stoji u statickom url-u dinamicka akcija:

Code (php):
$id = $_GET['id'];

Dalje,
Code (php):
<form class="reg" method="post" action="edit.php?id=$id" enctype="multipart/form-data">


Dakle, ako na datoj strani gdje se vrsi input forme ne postoji GET parametar id u URL-u, nista sto zahtijeva varijablu $id ne bi trebalo raditi.
Drugim rijecima: kad se nalazis na stranici gdje je forma, postoji li id parametar u URL-u?
Takodje pogledaj kod sto sam ostavio u prethodnom postu.
[ igorkr @ 04.03.2015. 15:29 ] @
http://localhost/program1/edit.php?id=35

To je URL, znači id je u URL-u.

Probao sam kod u prethodnom postu i upit se ne izvede.

[ Tpojka @ 04.03.2015. 15:33 ] @
Probaj sa:
Code (php):
<form class="reg" method="post" action="edit.php?id=<?php echo $id;?>" enctype="multipart/form-data">
[ igorkr @ 04.03.2015. 22:42 ] @
to je isto kao
<?php echo "<form class=\"reg\" method=\"post\" action=\"edit.php?id=$id\" enctype=\"multipart/form-data\">";?>

ali problem nije ovdje. Još uvjek se upit ne izvrši.
[ Nemanja Avramović @ 05.03.2015. 07:28 ] @
Ispiši upit umesto umesto (ili pre nego) što ga izvršiš kao što sam ti objasnio gore, pa ga testiraj direktno u phpMyAdminu. Jedino tako možeš videti da li je problem u upitu ili ne.
[ r3mark @ 16.03.2015. 14:19 ] @
Pa ne mozes imati parametar $id u single quote(isto vazi i za $var1 ako kolona ne ocekuje string) zato sto na taj nacin ne prosledjuje vrijednost varijable vec doslovno naziv varijable. A posto $id ne postoji u tabeli onda ne uradi ni update. I kao sto ti Nemanja Avramovic kaze ispisi query-i i execute-aj kroz neki myadmin.