Nauč se s námi víc. Využij 50% bonus na e-learningové kurzy.
Pouze tento týden sleva až 80 % na e-learning týkající se Javy
Avatar
milakrizak2
Člen
Avatar
milakrizak2:27.2.2014 18:18

Ahoj. Chtěl bych porosit o radu, nebo nakopnutí správným směrem. Mám tento formulář

<form id="prubvyr" method="POST" action="podstranky/gpv.php">
                    <p></p>
                    <table>
                        <tr>
                            <td><label>od</label><input name="od" type="datetime-local" /></td>
                        </tr>
                        <tr>
                            <td><label>do</label><input name="do" type="datetime-local" /></td>
                        </tr>
                    </table>
                    <p></p>
                    <input type="submit" value="Generuj" onclick="this.form.target = '_blank';
                            return true;"/>
                </form>

Na stránce, kam je směrovaný, se mají vypsat data z databáze v rozmezí určeném výběrem v těch dvou inputech. S MySQL mi to funguje v pohodě, ale teď bych to potřeboval nastavit na MSSQL ale nedaří se mi seskládat dotaz. Můj pokus vypadá takto

<?php
        include ("mssql.php");
        $od=$_POST ['od'];
        $do=$_POST ['do'];
       $params=array ('$od', '$do');
        $sql = "SELECT stav, datum_cas, vstup_cislo
                FROM vstupy
                WHERE datum_cas
                BETWEEN '?' AND '?'
                'vstup_cislo' IN (1)";

 $stmt = sqlsrv_query($conn, $sql, $params);
 if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}
while ($radek=sqlsrv_fetch_array($stmt)):
{
  echo '('.$radek['datum_cas'].')datum a cas</br>';
  echo '('.$radek['stav'].')stav</br>';
  echo '('.$radek['vstup_cislo'].')cislo vstupu';

}
  endwhile;
        ?>

Byl by někdo tak hodný a poradil?

 
Odpovědět
27.2.2014 18:18
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na milakrizak2
David Čápka:27.2.2014 19:15

To máš nějaké divné. Poslední část podmínky musí být za AND:

$sql = "SELECT stav, datum_cas, vstup_cislo
                 FROM vstupy
                 WHERE datum_cas
                 BETWEEN '?' AND '?'
                 AND 'vstup_cislo' IN (1)";

Také mám za to, že se kolem otazníků nepíší apostrofy, ale tenhle driver neznám.

Nahoru Odpovědět
27.2.2014 19:15
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
milakrizak2
Člen
Avatar
milakrizak2:27.2.2014 19:31

No na AND jsem nějak zapomněl, ale i tak mi to píše chybu.

Array ([0] => Array ([0] => 22007 [SQLSTATE] => 22007 [1] => 241
=> 241 [2] => [Microsoft] [SQL Server Native Client 11.0] [SQL Server] Převod se nezdařil při převodu datum a / nebo čas od znakový řetězec. [zpráva] => [Microsoft] [SQL Server Native Client 11.0] [SQL Server] Převod se nezdařil při převodu datum a / nebo čas od znakový řetězec.))
Editováno 27.2.2014 19:32
 
Nahoru Odpovědět
27.2.2014 19:31
Avatar
Odpovídá na milakrizak2
Josef Kuchař - Pepa489:27.2.2014 19:35

Nejdřív by bylo dobré kdyby si si tu chybu přečetl :D

Nahoru Odpovědět
27.2.2014 19:35
2x piš, jednou debuguj
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
milakrizak2
Člen
Avatar
milakrizak2:27.2.2014 19:41

Já si ho četl několikrát. :) Asi jsem mimoň, ale stále nevím kde je chyba.

 
Nahoru Odpovědět
27.2.2014 19:41
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na milakrizak2
David Čápka:27.2.2014 19:48

Zadal jsi špatný formát data a času. Myslím, že výchozí je yyyy-mm-dd, jde mezi tím převádět pomocí funkce convert.

Nahoru Odpovědět
27.2.2014 19:48
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
milakrizak2
Člen
Avatar
milakrizak2:28.2.2014 18:18

Děkuji moc za rady. Sice jsem to nevyřešil přes convert, protože jsem ho nebyl schopný zakomponovat tak, aby to fungovalo. Nakoplo mne to ale tím dobrým směrem a vyřešil jsem to javascript vstupy, na kterých jsem nastavil ten správný formát. :) Děkuji moc.

 
Nahoru Odpovědět
28.2.2014 18:18
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 7 zpráv z 7.