Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

php mysql update query ne radi

[es] :: PHP :: php mysql update query ne radi

[ Pregleda: 5373 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

igorkr
Nezaposlen
Makedonija

Član broj: 277221
Poruke: 32
194.249.247.*



+1 Profil

icon php mysql update query ne radi02.03.2015. u 10:15 - pre 76 meseci
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
 
Odgovor na temu

igorkr
Nezaposlen
Makedonija

Član broj: 277221
Poruke: 32
194.249.247.*



+1 Profil

icon Re: php mysql update query ne radi02.03.2015. u 14:28 - pre 76 meseci
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.
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4383
*.dynamic.isp.telekom.rs.

Sajt: https://avramovic.info


+45 Profil

icon Re: php mysql update query ne radi02.03.2015. u 16:52 - pre 76 meseci
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.
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

igorkr
Nezaposlen
Makedonija

Član broj: 277221
Poruke: 32
194.249.247.*



+1 Profil

icon Re: php mysql update query ne radi03.03.2015. u 08:13 - pre 76 meseci
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.
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4383
*.dynamic.isp.telekom.rs.

Sajt: https://avramovic.info


+45 Profil

icon Re: php mysql update query ne radi03.03.2015. u 09:30 - pre 76 meseci
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.
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

agvozden
Aleksandar Gvozden
founder
Info-G
Beograd

Član broj: 37813
Poruke: 1115
*.dynamic.sbb.rs.

Sajt: www.gvozden.info


+67 Profil

icon Re: php mysql update query ne radi04.03.2015. u 08:51 - pre 76 meseci
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";

 
Odgovor na temu

Tpojka
Ratio, Logic

Član broj: 60114
Poruke: 205

ICQ: 491318095


+32 Profil

icon Re: php mysql update query ne radi04.03.2015. u 09:37 - pre 76 meseci
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.
-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
 
Odgovor na temu

igorkr
Nezaposlen
Makedonija

Član broj: 277221
Poruke: 32
194.249.247.*



+1 Profil

icon Re: php mysql update query ne radi04.03.2015. u 14:34 - pre 76 meseci
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.
 
Odgovor na temu

Tpojka
Ratio, Logic

Član broj: 60114
Poruke: 205

ICQ: 491318095


+32 Profil

icon Re: php mysql update query ne radi04.03.2015. u 14:50 - pre 76 meseci
@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.
-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
 
Odgovor na temu

igorkr
Nezaposlen
Makedonija

Član broj: 277221
Poruke: 32
194.249.247.*



+1 Profil

icon Re: php mysql update query ne radi04.03.2015. u 15:29 - pre 76 meseci
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.

 
Odgovor na temu

Tpojka
Ratio, Logic

Član broj: 60114
Poruke: 205

ICQ: 491318095


+32 Profil

icon Re: php mysql update query ne radi04.03.2015. u 15:33 - pre 76 meseci
Probaj sa:
Code (php):
<form class="reg" method="post" action="edit.php?id=<?php echo $id;?>" enctype="multipart/form-data">

-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
 
Odgovor na temu

igorkr
Nezaposlen
Makedonija

Član broj: 277221
Poruke: 32
*.static.t-2.net.



+1 Profil

icon Re: php mysql update query ne radi04.03.2015. u 22:42 - pre 76 meseci
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.
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4383
*.dynamic.isp.telekom.rs.

Sajt: https://avramovic.info


+45 Profil

icon Re: php mysql update query ne radi05.03.2015. u 07:28 - pre 76 meseci
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.
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

r3mark

Član broj: 321022
Poruke: 5
*.team.ba.



+3 Profil

icon Re: php mysql update query ne radi16.03.2015. u 14:19 - pre 76 meseci
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.
 
Odgovor na temu

[es] :: PHP :: php mysql update query ne radi

[ Pregleda: 5373 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.