IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Petr chylik
Člen
Avatar
Petr chylik:24.11.2020 23:11

Ahoj,

prosím o pomoc s timto sql dotazem, vsechny parametry jsou posilany pomoci javascriptu skrz toto php, ktere dale meni db. pokud javascript posle "id" jako cislo tak vse funguje bezproblemu, pokud jde ale o text tak php nefunguje i kdyz to db umoznuje. pokud primo v php misto "'.$id.'" vlozim text 'txt' tak to zase jede bez problemů, ale potrebuju to ovladat tim javascriptem. Problem tedy asi bude nekde v datovym typu. "programuji" asi 3 dny tak prosim prominte pokud jde o hloupy dotaz :D budu rad za kazdou radu. diky

$id = intval($_GET['id']);
$winsout = intval($_GET['winsout']);
$batout = intval($_GET['batout']);
$wrout = intval($_GET['wrout']);
..........
mysqli_select_db($conn,"$database");
$sql="UPDATE tabulka
SET winscount = '".$winsout."', winrate= '".$wrout."', battlescount= '".$batout."'
WHERE tag = '".$id."'";
$result = mysqli_query($conn,$sql);
......

Zkusil jsem: pouze hledat na webu

Chci docílit: snad jsem to dostatecne popsal v prvnim bloku

 
Odpovědět
24.11.2020 23:11
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:25.11.2020 7:39

Js ma v prohlizeci zabudovanou js-konzolu, precti si vypis chyb.
U php si zapni error_reporting a php volej pres adresni radek (soubor.php?a=1&b=2­...) a precti si php chybu.
Mysql pouziva take vypis chyby.

Az to tam budes mit vsechno zabudovane, tak ma dalsi smysl neco dalsiho hledat, co se neukazuje ani v jednom z tech 3 pripadu.

Muj tip? Hadam, ze mas spatne zapsany ten javascript, uvozovky. Nebo ti intval neudela, co ocekavas a vrati prazdny text a nasledne sql dotaz umre. Ale protoze tam nemas vypis chyb, tak se to nedozvis.

Hodnoty do dotazu nemuzes predavat takhle primo. Koledujes si o problemy v db nebo oteviras cestu hackerum a moznost prijit o celou db. Spoustu reseni mas primo v manualu.

mysqli_connect
mysqli_connect_errno
mysqli_connect_error

mysqli_query
mysqli_error

$mysqli = new mysqli
$mysqli->prepare       // priprav si dotaz
$stmt->bind_param    // nahrad ? za hodnotu, 's' je prevod na string
$stmt->execute();       // to dela totez jako mysqli_query, spousti dotaz
$stmt->bind_result($district); // zobraz sql dotaz po dosazeni hodnot
$stmt->fetch(); // to uz je normalni fetch

-------------

https://www.php.net/manual/en/mysqli.query.php

Procedural style

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */ // alias KONTROLA A VYPIS CHYB
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
// atd



// takhle nejak se to zapisuje pro dotaz, asi, ja pouzivam pdo ne mysqli drriver, takze nevim jiste
$q="SELECT somecolumn FROM sometable"; //some instruction
$r=mysqli_query($DBlink,$q) or die(mysqli_error($DBlink)." Q=".$q);



// a samozrejme, ti nejvetsi borci pouzivaji jeste prepare statement, aby se vyhly podobnym problemum
https://www.php.net/manual/en/mysqli.prepare.php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}
 
Nahoru Odpovědět
25.11.2020 7:39
Avatar
Petr chylik
Člen
Avatar
Odpovídá na Peter Mlich
Petr chylik:25.11.2020 9:56

Díky moc,
uprimne nepredpokladam, ze ten web bude nekdo pouzivat a tedy by tam byla nejaka snaha ze strany hackeru.
zkousim spise blbosti, protoze mi programovani zacalo bavit a koukam, ze 3dny jsou malo na nauceni :(.

Urcite to zkusim project, ten debuger ma implementovany kazdy prohlizec?, vicemene jsem to psal vsechno v notepadu pripadne v te consoli na W3schools.com

 
Nahoru Odpovědět
25.11.2020 9:56
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:25.11.2020 18:23

Na w3 school narazis na kde co. K php je oficialni dokumentace. V online vrzi jsou i komentare od uzivatelu, ktere nekdy pomuzou vyresit problem, ktery v oficialnim examplu neni. A nebo neni ani ten axample, casto, u novych funkci :) Pak jedine google.

 
Nahoru Odpovědět
25.11.2020 18:23
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 4 zpráv z 4.