Zadejte hledaný výraz...

Výpis z Mysql databázy len čísla väčšie ako?

Johny26
verified
rating uzivatele
6. 3. 2023 10:25:28
Ako dosiahnuť výpis z Mysql databázy/tabuľky aby sa vypísali len čísla väčšie alebo rovné 4 v klesajúcou tendenciou (od najväčšieho po najmenší).
V súčasnosti mám PHP kód takto.:
$dotaz = mysqli_query($spojeni, "SELECT * FROM `Test`  ORDER BY `Cena` / `Dlzka_objednavky` DESC,`id` ASC LIMIT 5");
Zobrazí sa prvých 5 najväčších čísiel z databázy od najväčšieho po najmenší chcel by som dosiahnuť aby sa mi zobrazili z databázy prvých 5 najväčších čísiel v poradí od najväčšieho až po stanovenú hodnotu napríklad 4. Teda ak v Mysql tabuľke budú čísla 2,3,4,6,7,12,14 tak chcem dosiahnuť výpis z Mysql tabuľky len čísla napríklad rovné alebo väčšie ako 4 tak aby sa vypísali/zobrazili v tomto poradí od najväčšieho po 4. v hore uvedenom príklade takto.:14,12,7,6,4
Za ochotu a pomoc vopred ďakujem.
6. 3. 2023 10:25:28
https://webtrh.cz/diskuse/vypis-z-mysql-databazy-len-cisla-vacsie-ako#reply1514044
... WHERE id >= 4 ORDER BY id DESC LIMIT 5
id nahrad za nazev tveho sloupce
6. 3. 2023 12:55:41
https://webtrh.cz/diskuse/vypis-z-mysql-databazy-len-cisla-vacsie-ako#reply1514043
Webtrh AI
verified
rating uzivatele
7. 3. 2023 05:03:14
Môžete použiť podmienku WHERE v SQL dopyte na výber iba tých riadkov, ktoré majú hodnotu stĺpca
/
väčšiu alebo rovnú ako 4. Potom môžete použiť ORDER BY na zoradenie zostávajúcich riadkov zostupne podľa hodnoty stĺpca
/
. Celý dopyt by mohol vyzerať takto:
sqlCopy code
Tento dopyt vyberie iba tie riadky, ktoré majú hodnotu stĺpca
/
väčšiu alebo rovnú ako 4, a potom ich zostupne zoradí podľa tejto hodnoty. Nakoniec obmedzí počet riadkov na prvých 5.
V PHP by ste mohli použiť váš dopyt takto:
phpCopy code
Tento dopyt by mal vrátiť výsledok, ktorý ste popísali - prvých 5 najväčších čísel väčších alebo rovných 4 zostupne zoradených podľa hodnoty
/
.
7. 3. 2023 05:03:14
https://webtrh.cz/diskuse/vypis-z-mysql-databazy-len-cisla-vacsie-ako#reply1514042
Johny26
verified
rating uzivatele
7. 3. 2023 12:43:54
Napsal winexec;1659342
... WHERE id >= 4 ORDER BY id DESC LIMIT 5
id nahrad za nazev tveho sloupce
 Ďakujem za odpoveď už sa mi to ako tak podarilo rozhodiť ale mal by som ešte jednu otázku.
V PHP kóde mám vzorec ktorého konečné číslo nie je umiestnené v Mysql databáze ako vložiť do tohto kódu túto premennú ak ho dám do kódu tak dostanem chybové hlásenie a tabuľka ostane prázdna bez čísiel. 
mysqli_set_charset($spojeni, "utf8");
$dotaz = mysqli_query($spojeni, "SELECT * FROM `Test`  WHERE `Cena` >= 4 ORDER BY `Cena` / `Dlzka_objednavky` DESC,`id` ASC LIMIT 5 ");
 if(!$dotaz)
 { echo 'Dotaz vykazuje chybu.
'; }
To číslo sa vyrátava z tohto.:
Potreboval by som doložiť/vymeniť namiesto ........WHERE `Cena` >= 4 ORDER BY.......  - $priemerna_cena  ak ho dám namiesto `Cena` tak dostanem chybové hlásenie- Dotaz vykazuje chybu. A tabuľka ostane prázdna bez čísiel.
7. 3. 2023 12:43:54
https://webtrh.cz/diskuse/vypis-z-mysql-databazy-len-cisla-vacsie-ako#reply1514041
brooks
verified
rating uzivatele
8. 3. 2023 21:02:09
Napsal Johny26;1659407
 Ďakujem za odpoveď už sa mi to ako tak podarilo rozhodiť ale mal by som ešte jednu otázku.
V PHP kóde mám vzorec ktorého konečné číslo nie je umiestnené v Mysql databáze ako vložiť do tohto kódu túto premennú ak ho dám do kódu tak dostanem chybové hlásenie a tabuľka ostane prázdna bez čísiel. 
mysqli_set_charset($spojeni, "utf8");
$dotaz = mysqli_query($spojeni, "SELECT * FROM `Test`  WHERE `Cena` >= 4 ORDER BY `Cena` / `Dlzka_objednavky` DESC,`id` ASC LIMIT 5 ");
 if(!$dotaz)
 { echo 'Dotaz vykazuje chybu.
'; }
To číslo sa vyrátava z tohto.:
Potreboval by som doložiť/vymeniť namiesto ........WHERE `Cena` >= 4 ORDER BY.......  - $priemerna_cena  ak ho dám namiesto `Cena` tak dostanem chybové hlásenie- Dotaz vykazuje chybu. A tabuľka ostane prázdna bez čísiel.
Není uplně zřejmé, čeho chceš dosáhnout, při nahrazení "Cena" za obsah proměnné by ve where vznikla podmínka např 10>=4, tzn výsledkem by byl výběr všech řádků, nebo naopak žádného. Nicméně pokud chceš vybrat například všechny řádky, které mají sloupec "Cena">=$priemerna_cena, tak kód do sql dotazu lze vložit například takto:
8. 3. 2023 21:02:09
https://webtrh.cz/diskuse/vypis-z-mysql-databazy-len-cisla-vacsie-ako#reply1514040
Johny26
verified
rating uzivatele
9. 3. 2023 13:54:05
Ďakujem za odpoveď.
Už som prišiel na to je to potrebné editovať formou '$priemerna_cena' ak sa to edituje s formou `$priemerna_cena` tak dostanem chybové hlásenie.
9. 3. 2023 13:54:05
https://webtrh.cz/diskuse/vypis-z-mysql-databazy-len-cisla-vacsie-ako#reply1514039
Jen bych chtěl podotknout, že popsaný způsob je ukázkový bezpečnostní problém SQL injection. Jak velký samozřejmě záleží na konkrétním použití, ale doporučil bych velkým obloukem se vyhnout vkládání proměnných přímo do SQL.
Dnes už existuje řada knihoven, která toto řeší a i PHP má přímo PDO. Je s tím víc práce, ale bezpečnost za stojí.
Pokud ovšem zůstaneme u mysqli_query(), tak si připravit dotaz tímto způsobem: 
$query = sprintf("
  SELECT * FROM `Test`
  WHERE `Cena` >= %d
  ORDER BY `Cena` / `Dlzka_objednavky` DESC,`id` ASC
  LIMIT 5
", $priemerna_cena);
$result = mysqli_query($query);
Pokud by šlo o string, tak použít escapovací funkci, která ošetří citlivé znaky, viz https://www.php.net/manual/en/mysqli.real-escape-string.php
Editováno 16. 9. 2023 17:11:19 uživatelem Ladislav Vondráček
16. 9. 2023 17:04:43
https://webtrh.cz/diskuse/vypis-z-mysql-databazy-len-cisla-vacsie-ako#reply1520478
Pro odpověď se přihlašte.
Přihlásit