SQL příkaz se neprovede – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

SQL příkaz se neprovede – PHP – Fórum – Programujte.comSQL příkaz se neprovede – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Ondrřej Cháb
~ Anonymní uživatel
1 příspěvek
3. 9. 2013   #1
-
0
-

     $result = mysql_query('INSERT INTO sklad (typ, itemid, userid, instalovan) VALUES ("'.$data['typ'].'","'.$data['itemid'].'","'.$data2['id'].'","0")') or die(mysql_error());


        $result2 = mysql_query('DELETE FROM obchod WHERE id="'.$_GET['koupit'].'"') or die(mysql_error());


        $result3 = mysql_query('UPDATE users SET credits="'.($data3['credits'] + $data['credits']).'", water="'.($data3['water'] + $data['water']).'" WHERE id="'.$data3['id'].'"') or die(mysql_error());


        $result4 = mysql_query('UPDATE users SET credits="'.($data2['credits'] - $data['credits']).'", water="'.($data2['water'] - $data['water']).'" WHERE id="'.$data2['id'].'"') or die(mysql_error());

všechny příkazy se provedou správně kromě $result3... proměnné jsem si vypsal a ve všech je to, co tam být má..

Nahlásit jako SPAM
IP: 178.23.219.–
Reklama
Reklama
peter
~ Anonymní uživatel
2547 příspěvků
3. 9. 2013   #2
-
-1
-
Mimo téma
Kit -

Bylo by fajn si ty dotazy napsat do promenne a dat echo. Or die, pokud je dotaz chybne, napise to chybu. Pokud je spravne, ale se spatnymi hodnotami, tak si to musis zjistit sam.

$query1 = 'INSERT INTO sklad (typ, itemid, userid, instalovan) VALUES ("'.$data['typ'].'","'.$data['itemid'].'","'.$data2['id'].'","0")';
$query2 = 'DELETE FROM obchod WHERE id="'.$_GET['koupit'].'"';
$query3 = 'UPDATE users SET credits="'.($data3['credits'] + $data['credits']).'", water="'.($data3['water'] + $data['water']).'" WHERE id="'.$data3['id'].'"';
$query4 = 'UPDATE users SET credits="'.($data2['credits'] - $data['credits']).'", water="'.($data2['water'] - $data['water']).'" WHERE id="'.$data2['id'].'"';

echo '<pre>';
echo '<hr>'.$query1;
echo '<hr>'.$query2;
echo '<hr>'.$query3;
echo '<hr>'.$query4;

$result1 = mysql_query($query1) or die(mysql_error());
$result2 = mysql_query($query2) or die(mysql_error());
$result3 = mysql_query($query3) or die(mysql_error());
$result4 = mysql_query($query4) or die(mysql_error());
Nahlásit jako SPAM
IP: 193.84.207.–
peter
~ Anonymní uživatel
2547 příspěvků
3. 9. 2013   #3
-
0
-

Chtel jsem jen rici, ze ty echa by byli zajimave, php kod bez dalsich dat je celkem na houby. Pokud je spravny, funkcni.

Nahlásit jako SPAM
IP: 193.84.207.–
Kit+11
Guru
21. 9. 2013   #4
-
0
-

#1 Ondrřej Cháb
 Tohle má být co?

$result2 = mysql_query('DELETE FROM obchod WHERE id="'.$_GET['koupit'].'"') or die(mysql_error());
  • Funkce mysql_query() byla v PHP 5.5 zrušena.
  • Máš tam SQL injekci
  • Čísla v SQL nepatří do uvozovek
  • Funkce die() se nachází už jen ve starých učebnicích PHP 3 
     $result3 = mysql_query('UPDATE users SET credits="'.($data3['credits'] + $data['credits']).'", water="'.($data3['water'] + $data['water']).'" WHERE id="'.$data3['id'].'"') or die(mysql_error());
  • Opět: Čísla nepatří do uvozovek
  • Netuším, co máš v $data a $data3. Asi nesmysly. Nevidím důvod, proč by někdo tímto způsobem updatoval záznam. Většinou se k němu přičítá, odečítá nebo se nahradí novou hodnotou. Že ty jsi obsah některého polí získal selectem? To se nedělá.

Rada na závěr: Nauč se používat PDO a parametrizované dotazy. SQL se tím krásně zjednoduší a zpřehlední.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 27 hostů

Podobná vlákna

Nestandartní SQL příkaz — založil Bryant

Nefunguje SQL príkaz — založil Speeder

Proč se neprovede insert? — založil Nefaritus

Příkaz insert s where — založil Pavelv

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý