Diskuze: MS SQL dotaz v PHP

PHP PHP MS SQL dotaz v PHP American English version English version

Avatar
milakrizak2
Člen
Avatar
milakrizak2:

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:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
milakrizak2
Člen
Avatar
milakrizak2:

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

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
Avatar
milakrizak2
Člen
Avatar
milakrizak2:

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:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
milakrizak2
Člen
Avatar
milakrizak2:

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.