Autor Zpráva
Nuimi
Profil
Ahoj, chci se zeptat jak se dá zobrazit count se Select dotazem na stránkách

$dochazka= "SELECT  program, count(odprac_h) AS 'Odpracované h.' FROM dochazka WHERE program = '" . $program ."'";
     $ukaz = $db->query($dochazka);
     echo('<table class="table table-hover">
            <tbody>
             <tr>
              <td>Program</td>
              <td>Odpracované h.</td>
             </tr>
            </tbody>');
         while($row = $ukaz -> fetch_assoc())
         {
          echo ("<form method=\"post\">
                   <tr>
                    <td>". $row['program'] ."</td>
                    <td>".$row['count(odprac_h)']."</td>
                   </tr>
                 </form>
                 </table>");
         }
lionel messi
Profil
Nuimi:
Namiesto $row['count(odprac_h)'] použiješ zodpovedajúci alias, teda $row['Odpracované h.'].
Radek9
Profil
Nuimi:
A mám pocit, že by se v SQL dotazu měly použít zpětné apostrofy, tedy `Odpracované h.`. Doporučil bych ale možná zvolit jednodušší název toho sloupce, pak nejsou potřeba vůbec. Třeba odpracovane_h.
quatzael
Profil
Radek9:
A mám pocit, že by se v SQL dotazu měly použít zpětné apostrofy, tedy `Odpracované h.`.
To by mě taky zajímalo jak to je "správně". phpMyAdmin mi je tam pořád předhazuje, ale když zadávám normálně dotaz s klasickýma apostrofama ' ', tak s tím vůbec žádnej problém není.
Keeehi
Profil
quatzael:
To by mě taky zajímalo jak to je "správně"
Apostrofy musejí být okolo řetězců (třeba okolo hodnot které se mají uložit do sloupce typu varchar). Zpětné apostrofy mají být kolem názvů sloupců, tabulek, databází atp. Pokud pojmenováváš sloupce nějak inteligentně, a je jednoznačné, že se jedná zrovna o sloupec, mohou se ty zpětné apostrofy vynechat. Pokud ale pro jméno sloupce použiješ klíčové slovo, nebo tam máš tečku nebo něco jiného ošklivého, tak tam ty zpětné apostrofy být musejí, jinak to databáze nezvládne rozpoznat a správně zpracovat.

Jelikož zbytečné zpětné apostrofy ničemu nevadí, cpe je phpMyAdmin pro jistotu všude.

Nevím jak se těm zpětným apostrofům říká správně.
Nuimi
Profil
$program=$_POST['program'];
     $mesic =$_POST['mesic'];
    if(isset($_POST['program']))
    {
     $dochazka_p= "SELECT  program, sum(odprac_h) AS 'Odpracované h.' FROM dochazka WHERE program = '" . $program ."'";
     $ukaz_p = $db->query($dochazka_p);
     while($row_p = $ukaz_p -> fetch_assoc())
     {
      echo ("<table class=\"table table-hover\">
              <tbody>
               <tr>
                <td>Program</td>
                <td>Odpracované h.</td>
               </tr>
              </tbody>
               <tr>
                <td>". $row_p['program'] ."</td>
                <td>".$row_p['Odpracované h.']."</td>
               </tr>
              </table>");
     } 
    }
    else if(isset($_POST['mesic']))
    {
      $dochazka_m= "SELECT  mesic, sum(odprac_h) AS 'Odpracované h.' FROM dochazka WHERE mesic = '" . $mesic ."'";
      $ukaz_m = $db->query($dochazka_m);
      while($row_m = $ukaz_m -> fetch_assoc())
     {
      echo ("<table class=\"table table-hover\">
              <tbody>
               <tr>
                <td>Měsíc</td>
                <td>Odpracované h.</td>
               </tr>
              </tbody>
              <tr>
               <td>". $row_m['mesic'] ."</td>
               <td>".$row_m['Odpracované h.']."</td>
              </tr>
            </table>");
    }
   }
Díky vaší radě jsem vyřešil problém, ale nastal nový když jsem předělal kod, a to ten že proleze podminka první a to vždy, ale ta druhá už se neukáže
juriad
Profil
Nuimi:
Dost pravděpodobně $_POST['program'] vždy existuje, jen je v tom neočekávaném případě prázdné (obsahuje prázný řetězec).
Vypiš si na začátku skriptu:
var_dump($_POST);
Nuimi
Profil
Omlouvám se, ale tuhle funkci neznám a chtěl bych poprosit jestli by jsi mi nemohl specifikovat kam presne to mam napsat
lionel messi
Profil
Nuimi:
Omlouvám se, ale tuhle funkci neznám
Funkcia var_dump v oficiálnej dokumentácii.

chtěl bych poprosit jestli by jsi mi nemohl specifikovat kam presne to mam napsat
Hneď na prvý riadok uvedeného kódu.
Nuimi
Profil
Výběr programu array(2) { ["program"]=> string(5) "PětP" ["mesic"]=> string(7) "Měsíc" }
Výběr měsíce array(2) { ["program"]=> string(13) "Vyber program" ["mesic"]=> string(5) "leden" }
juriad
Profil
Nuimi:
Vidíš, vždy jsou vyplněné obě možnosti, jak program, tak i mesic. Rozlišit mezi nimi musíš porovnáním s výchozí hodnorou (Vyber program a Měsíc).
Další možností je, jelikož to vypadá na <select>, nastavit value="" u té výchozí <option>. Pak bude porovnávání jednodušší.
Nuimi
Profil
A nějaký návrh jak na to. Ne, nejak na to prijdu, strasne moc dekuju za radu

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0