NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Jak seřadit čísla v DB ?

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

Aktivity
Avatar
katrincsak
Člen
Avatar
katrincsak:9.5.2015 13:49

Zdravím,

do mysql ukládám v neuspořádaném pořadí očíslované údaje, které výsledně dají pořadí 1,2,3 atp.. Jenže potřebuji tyhle čísla vypsat do tabulky tak, aby již byly seřazená. Potřebuji to kvůli mapě, kterou tvořím na čtverečkovaném papíru a každé políčko má své číslo , něco jako souřadnici. Za pomocí formuláře vkládám data mapy, který jsem si vytvořil, ale potřebuji, aby se pod formulářem vypisovaly ID souřadnic, samozřejmě přesně tak jak mají.

např.

123
456
789

Je to jakože mapa 3x3 -> Za pomocí cyklů mě možná napadá jak to udělat, ale potřebuji nejdříve seřadit čísla :(

 
Odpovědět
9.5.2015 13:49
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na katrincsak
Jan Lupčík:9.5.2015 13:52

Tak si vyber ty čísla popořádku, ne? :)

SELECT cisla FROM tabulka ORDER BY cisla ASC
Editováno 9.5.2015 13:53
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
9.5.2015 13:52
TruckersMP vývojář
Avatar
katrincsak
Člen
Avatar
Odpovídá na Jan Lupčík
katrincsak:9.5.2015 14:00

To mi ale údaje neseřadí ne ? Musím to mít v mysql jako int, nebo jako varchar ?

 
Nahoru Odpovědět
9.5.2015 14:00
Avatar
katrincsak
Člen
Avatar
Odpovídá na Jan Lupčík
katrincsak:9.5.2015 14:02

Na víc ASC by se měl přiřadit automaticky pakliže order by vynechám ne ? Což výsledně nesřadí. Jen vzestupně vypíše.

 
Nahoru Odpovědět
9.5.2015 14:02
Avatar
katrincsak
Člen
Avatar
katrincsak:9.5.2015 14:04

Nebo je nějaký mysql příkaz, který by mi to seřadil konstantně?

 
Nahoru Odpovědět
9.5.2015 14:04
Avatar
Odpovídá na katrincsak
Michal Šmahel:9.5.2015 14:11

Tak co vlastně potřebuješ?? Ty tam dáváš čísla neuspořádaně (3, 6, 2, 1, 9, 5) a chceš je srovnat (1, 2, 3, 5, 6, 9)?? Pokud to je takhle, stačí dát sloupci v databázi typ int a klíč PRIMARY.

Nahoru Odpovědět
9.5.2015 14:11
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na katrincsak
Jan Lupčík:9.5.2015 14:17

Jak to tedy máš? text?

Nahoru Odpovědět
9.5.2015 14:17
TruckersMP vývojář
Avatar
katrincsak
Člen
Avatar
katrincsak:9.5.2015 14:24

Omlouvám se za dost trapný dotaz...
Chyba byla jen v opomenutém dotazu... Ptal jsem se na id a nikoliv na sloupec "cord" (souřadnice) takže po přepsání sloupečku to již funguje. Myslel jsem, že tam mám cord.. Výsledně to řadilo podle ID a proto ASC neřešilo problém logicky.

Někdy je lepší nemyslet :)

Děkuji.

 
Nahoru Odpovědět
9.5.2015 14:24
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Michal Šmahel
Jan Vargovský:9.5.2015 15:14

Na to jsi přišel jak?

 
Nahoru Odpovědět
9.5.2015 15:14
Avatar
Odpovídá na Jan Vargovský
Michal Šmahel:9.5.2015 15:36

Hojná představivost.

Nahoru Odpovědět
9.5.2015 15:36
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Michal Šmahel
Jan Vargovský:9.5.2015 15:37

Já vím, že jsi poslední dobou dost aktivní a snažíš se všem poradit, ale občas je lepší si informace ověřit než říkat něco, co je úplná hloupost :)

 
Nahoru Odpovědět
9.5.2015 15:37
Avatar
Odpovídá na Jan Vargovský
Michal Šmahel:9.5.2015 15:40

Poslední dobou se pohybuji spíš v pozadí. Odpovídám jen občas. Někdy mám hold hlavu plnou jiných věcí a myšlenky se lehce protnou. :D

Nahoru Odpovědět
9.5.2015 15:40
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
katrincsak
Člen
Avatar
katrincsak:9.5.2015 17:56

Tak se podělím o tu práci, kterou jsem dělal když už. Jedná se o tvorbu mapy.

  1. Načte tedy "souřadnice z DB".
  2. Vypíše to do tabulky a každé 9. číslo kromě první řady kde jich je 10 to zalomí. 80 a 81 je na dalším řádku, protože jsou dělitelná až na 9. pozici.
  3. Pakliže se dané číslo v DB nachází s daným znakem, tak to vybarví a zvětší.(zatím čuňácky vložený <font>).

..Znám jednoduše kde se přesně číslo nachází, která je nad tím, pod tím atp. Vím jednoznačně že je tam les, cesta atp. Hlavně celkem rychle vím, co potřebuji editovat. A může to tvořit kdokoliv z týmu a přidávat jen texty atp.

(Tabování zde nešikovně funguje, takže jsem jen na rychlo upravil řádkování)

try{
echo "<table class='border'>";

$this->overeni = Databaze::dotaz("SELECT * FROM mapa_text WHERE cord order by cord DESC");
while ($this->data = $this->overeni->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT))
{
  if($this->data['cord'] % 9 == 0)
  {
    echo "<tr>";
  }

  if($this->data['znak'] == 'c' OR $this->data['znak'] == 'l' OR $this->data['znak'] == 'ls')
  {
    if($this->data['znak'] == 'c')
    {
        echo "<td><font size='5' color='#FF8000'>". $this->data['cord'] ."</font></td>";
    }
    if($this->data['znak'] == 'l')
    {
        echo "<td><font size='5' color='#00AC28'>". $this->data['cord'] ."</font></td>";
    }
    if($this->data['znak'] == 'ls')
    {
        echo "<td><font size='5' color='#004D12'>". $this->data['cord'] ."</font></td>";
    }
  }
  else
      echo "<td>". $this->data['cord'] ."</td>";
}
 echo "</table>";
 } catch (PDOException $e){
   echo "Něco se pokazilo, kontaktuj admina";
}
 
Nahoru Odpovědět
9.5.2015 17:56
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 13 zpráv z 13.