NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Pomoc z upadtom databázy - neviem si rady

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Marek Burda
Člen
Avatar
Marek Burda:9.9.2015 18:50

zdravím rád by som potreboval zistiť prečo mi to hádže syntax errory ? Pravdepdobne mám premeny zle zapísané. Kód vie o čo ide , ale pri eerrore mi zobrazí čísla týchto premien a tím pádom sa dalej kód logicky neprečíta a neurobí to čo má. potbeujem to takto cez premeny nemôžem updatovať dve databázy naraz kvôli pár veciam... tak by som bo lrád ak by ste mi pomohli nájsť chybu popríapde opraviť kód ..... chyba nasakuje pri premene $zrna , $dwater , a $bread

if ($predmet==bread )
{
$server = "xxxxx";
  $username = "xxxxxx";
  $password = ""xxxxxx";
  $database = ""xxxxxx";
  $con = mysql_connect($server, $username, $password);
  $ok = mysql_select_db($database, $con);
 $iuu = mysql_query("SELECT * FROM tz_predmety WHERE id = '$id' ");
$ha = mysql_fetch_assoc($iuu);
$zrno = $ha['zrno'];
$dwater = $ha['dwater'];
$bread = $ha['bread'];


    $sql = "UPDATE tz_members SET  mince=mince-'20', xp=xp+'15', crafting=crafting+'1',  energia=energia-'6' , $bread=$bread+'1' , $zrno=$zrno-'1' , $dwater=$dwater-'1' WHERE id='$id' AND mince >= '20' AND $energia >= '6' AND $zrno > '0' AND $dwater > '0' ";
    mysql_query($sql) or die(mysql_error());


;}
 
Odpovědět
9.9.2015 18:50
Avatar
Odpovídá na Marek Burda
Uživatel sítě :9.9.2015 19:37
$password = ""xxxxxx";
$database = ""xxxxxx";

Máš i na produkci s údaji ze začátku 2x uvozovky? (")

Nahoru Odpovědět
9.9.2015 19:37
Chybami se člověk učí, běžte se učit jinam!
Avatar
Marek Burda
Člen
Avatar
Marek Burda:9.9.2015 19:42

Nie nemám.... to som preklikol ked som vymazoval heslo to neriešte :) Tam by som na chybu prišiel... teraz vieme že chyba je pri tej premene.

 
Nahoru Odpovědět
9.9.2015 19:42
Avatar
Marek Burda
Člen
Avatar
Marek Burda:9.9.2015 19:46

Chyba je vpaitom riadku odspodu pri update sql. Program aj vie zistiť čísla z databázy, no neche nejako z kódom pokračovať.

 
Nahoru Odpovědět
9.9.2015 19:46
Avatar
Odpovídá na Marek Burda
Martin Konečný (pavelco1998):9.9.2015 19:50
var_dump($sql);
exit;

vypíše co?

Nahoru Odpovědět
9.9.2015 19:50
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Marek Burda
Člen
Avatar
Marek Burda:9.9.2015 19:51

Prihadzuem error

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '12=12+'1' , 5=5-'1' , 4=4-'1' WHERE id='1' AND mince >= '20' AND >= '6' AND 5 >' at line 1

 
Nahoru Odpovědět
9.9.2015 19:51
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Marek Burda
Michal Kuba:9.9.2015 19:51

Nemělo by být na začátku toto:?

if ($predmet=='bread' )

prostě bread v uvozovkách? Aby to porovnávalo s textovým řetězcem.

a pak teda u proměnné password a database máš nějaké uvozovky navíc možná

 
Nahoru Odpovědět
9.9.2015 19:51
Avatar
Odpovídá na Marek Burda
Uživatel sítě :9.9.2015 19:52

Nechápu ty proměnné doplněné na místo tabulek: $bread, $zrno, $dwater..

Nahoru Odpovědět
9.9.2015 19:52
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na Marek Burda
Martin Konečný (pavelco1998):9.9.2015 19:53

V tom SQL dotazu používáš proměnné jako názvy sloupce, proto ti to hodí věci jako 12=12+1, 5=5-1 atd.

Nahoru Odpovědět
9.9.2015 19:53
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Marek Burda
Člen
Avatar
Marek Burda:9.9.2015 19:54

Nie nei chlapci opakujem. Kód sám o sebe funguje tie úvodzovky som zle prepísal len tu na fóre. Chyba je v premene kedy začínam do kódu písať toto:

$bread=$bread+'1' , $zrno=$zrno-'1' , $dwater=$dwater-'1'

Ako vidíte v erroe, zistí to hodntoy z databázi , no robí to problém zo syntaxom

 
Nahoru Odpovědět
9.9.2015 19:54
Avatar
Marek Burda
Člen
Avatar
Marek Burda:9.9.2015 19:56

SILFER tam dávam kodu vedieť o čo vlasnte ide. Martin konečný to zanmená že to mám nejako prepísať ?

 
Nahoru Odpovědět
9.9.2015 19:56
Avatar
Odpovídá na Marek Burda
Uživatel sítě :9.9.2015 19:56

Ano hodnoty to zjistí, ale máš sloupce 12, 5, .. v tabulce?

Nahoru Odpovědět
9.9.2015 19:56
Chybami se člověk učí, běžte se učit jinam!
Avatar
hitzoR
Člen
Avatar
Odpovídá na Marek Burda
hitzoR:9.9.2015 19:58
$bread=$bread+'1' , $zrno=$zrno-'1' , $dwater=$dwater-'1'

změň na

bread=$bread+'1' , zrno=$zrno-'1' , dwater=$dwater-'1'
 
Nahoru Odpovědět
9.9.2015 19:58
Avatar
Marek Burda
Člen
Avatar
Marek Burda:9.9.2015 20:34

Unknown column 'zrno' in 'where clause'
Ďalší error. Tento error hádže preto lebo ked vymažem $ pred zrno tak logicky program nevie čo to zrno je kedže ho nemám premenené.

zrno a dalšie premdety čo sa znaším premeniť nepochádzaju z tabulľky tz_members ktorá sa udpatuje, ale z tabuľky tz_predmety ktorú mám identifikovanú v kódoch vyššie

Editováno 9.9.2015 20:36
 
Nahoru Odpovědět
9.9.2015 20:34
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Marek Burda
Jan Lupčík:9.9.2015 20:42

Nevím, zda to chápeš, ale ve WHERE klauzuli nemůžeš upravovat PHP proměnné. Ty si buď definuj až za tím nebo si do dotazu dosaď správné sloupce.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
9.9.2015 20:42
TruckersMP vývojář
Avatar
Marek Burda
Člen
Avatar
Marek Burda:9.9.2015 20:51

No tak ako to mám definovať ked potrebbujeme zadať podmeinyk aj z jednej tabuľky aj z druhej ? A ako píšem - kvôli ID nemôžem updatovať a nahrať obidve tabuľky do jeného kodu

Editováno 9.9.2015 20:52
 
Nahoru Odpovědět
9.9.2015 20:51
Avatar
shaman
Člen
Avatar
Odpovídá na Marek Burda
shaman:14.9.2015 16:01

Vies nam sem napisat co ti vyhodi ak pustis toto v sql?

describe tz_members;
Nahoru Odpovědět
14.9.2015 16:01
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 17 zpráv z 17.