Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 13 odgovora
  • 7.211 pregleda

Najnovija ↓

php mysql update query ne radi 02.03.2015. u 11:15 · pre 142 meseca #1
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
Re: php mysql update query ne radi 02.03.2015. u 15:28 · pre 142 meseca #2
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.
Re: php mysql update query ne radi 02.03.2015. u 17:52 · pre 142 meseca #3
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.
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: php mysql update query ne radi 03.03.2015. u 09:13 · pre 142 meseca #4
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.
Re: php mysql update query ne radi 04.03.2015. u 09:51 · pre 141 mesec #6
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";
Potpis
Moj Veb Sajt HostCentar Blog
Aleksinac Južna Srbija TimeOut
Re: php mysql update query ne radi 04.03.2015. u 10:37 · pre 141 mesec #7
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.
Potpis
-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
Re: php mysql update query ne radi 04.03.2015. u 15:34 · pre 141 mesec #8
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.
Re: php mysql update query ne radi 04.03.2015. u 15:50 · pre 141 mesec #9
@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.
Potpis
-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
Re: php mysql update query ne radi 04.03.2015. u 16:33 · pre 141 mesec #11
Probaj sa:
Code (php):
<form class="reg" method="post" action="edit.php?id=<?php echo $id;?>" enctype="multipart/form-data">
Potpis
-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
Re: php mysql update query ne radi 04.03.2015. u 23:42 · pre 141 mesec #12
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.
Re: php mysql update query ne radi 05.03.2015. u 08:28 · pre 141 mesec #13
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.
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: php mysql update query ne radi 16.03.2015. u 15:19 · pre 141 mesec #14
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme