Avatar
katrincsak
Člen
Avatar
katrincsak:

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
IT Man
Redaktor
Avatar
Odpovídá na katrincsak
IT Man:

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í
+1 bodů
Řešení problému
Nahoru Odpovědět 9.5.2015 13:52
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
katrincsak
Člen
Avatar
Odpovídá na IT Man
katrincsak:

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 IT Man
katrincsak:

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:

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 (ceskyDJ):

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
IT Man
Redaktor
Avatar
Odpovídá na katrincsak
IT Man:

Jak to tedy máš? text?

Nahoru Odpovědět 9.5.2015 14:17
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
katrincsak
Člen
Avatar
katrincsak:

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
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ý
Redaktor
Avatar
Odpovídá na Michal Šmahel (ceskyDJ)
Jan Vargovský:

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  +2 9.5.2015 15:37
Avatar
Odpovídá na Jan Vargovský
Michal Šmahel (ceskyDJ):

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:

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.