

Súčet v mysql
Čaute, prosím Vás kto mi poradí kde mám v tomto scripte chybu, potrebujem spočítať súčty z dvoch tabuliek a stále mi vypisuje 0.
<?
$spojenie=mysql_connect("localhost","root","");
$dodane="SELECT SQL_CALC_FOUND_ROWS SUM(`Mnozstvo`) FROM `naklady`";
$predane="SELECT SQL_CALC_FOUND_ROWS SUM(`predaj`) FROM `predaj`";
$zostatok=($dodane-$predane);
echo $zostatok;
?>
nejprve musíš ty mysql dotazy vykonat:
Vypisuje chybu v riadku 6 a 10 a potom vypíše 0
Možná, že by bylo dobré vypsat chybu, kterou to hlásí.
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\B\Predaj\a.php on line 6
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\B\Predaj\a.php on line 10
0
Tak je blbě ten MySQL dotaz.
PS: Co tohle? SELECT SUM(`Mnozstvo`) ..........
To je úplne to isté
Spusti si tie dopyty najprv priamo nad databázou (napr. v phpMyAdminovi) a zistíš kde je chyba.
Prípadne to zapíš $q = mysql_query(...) or die(mysql_error()); a potom tiež uvidíš, kde je chyba. (Ak tam to "or die..." necháš aj po odhalení chyby, tak bezpečnostné riziká, ktoré z toho vyplývajú, si rieš sám.)
To SQL_CALC_FOUND_ROWS tam máš na čo? Vieš aspoň, na čo to slúži?
To fakt neviem na čo to je, ale vypísal mi to phpMinAdmin, keď som zadal príkaz na súčet stĺpca, som začiatočník a ešte tomu moc nerozumiem
Skúsil si už to "or die..."? Čo to vypísalo?
Veľkosť písmen v mene tabuľky je v poriadku?
Vypísalo mi: No database selected
Veľkosť písmen je v poriadku
Aha, "No database selected" znamená, že nie je zvolená žiadna databáza. Hneď po mysql_connect použi funkciu mysql_select_db, aby si zvolil svoju databázu.
Potom je ešte dobré zavolať query s nastavením kódovania, ktorým budeš s databázou komunikovať (napr. pre UTF-8 je to "set names 'utf8'").
Vypisuje mi chybu v riadku 7 kde je:
$r = mysql_fetch_row($q);
a v riadku 12 :
$rr = mysql_fetch_row($qq);
A tá chyba je aká?

Dúfam, že do tej funkcie mysql_select_db si dal aj dobré meno databázy.
Samozrejme som ho dal, ale až teraz a už to funguje, je to super, ďakujem veľmi pekne.
Ale prosím Ťa ešte mi vysvetli čo znamená :or Die(MySQL_Error()) a ako je to nebezpečné, lebo ho mám vo viacerých scriptoch, ktoré som skopíroval a upravil, ale bežia úplne v poriadku.
Funkcia mysql_error robí to, čo je napísané v manuáli - vráti text chybového hlásenia predchádzajúcej MySQL operácie. Funkcia die robí to isté čo exit (ale má lepší názov
) - vypíše správu a ukončí vykonávanie skriptu.
Nie je to príliš nebezpečné, ale v prípade chyby to môže prezradiť niečo o štruktúre tvojej databázy. Takže ak by tam k tomu bola ešte chyba umožňujúca SQL injection, tak by bol útok o malý kúsok ľahší.
Túto databázu mám pre vlastnú potrebu, na sledovanie objednávok a predaja klobásy, nebudem ju nikde publikovať, takže žiaden útok nehrozí, ešte raz pekne ďakujem.
špatně:
Vypisuje mi chybu v riadku 7 kde je:
dobře:
V řádku 7 mi to vypisuje chybu:
"přesnézněnítéchyby"
a na řádku 7 mám
$r = mysql_fetch_row($q);
a v riadku 12:
$rr = mysql_fetch_row($qq);