Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: MS SQL dotaz v PHP

Aktivity
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
Nikdy neříkej, že to nejde, protože se vždy objeví "blbec", kterému to půjde. :-)
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na milakrizak2
David Hartinger: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
You are the greatest project you will ever work on.
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
Nikdy neříkej, že to nejde, protože se vždy objeví "blbec", kterému to půjde. :-)
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
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
Nikdy neříkej, že to nejde, protože se vždy objeví "blbec", kterému to půjde. :-)
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na milakrizak2
David Hartinger: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
You are the greatest project you will ever work on.
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
Nikdy neříkej, že to nejde, protože se vždy objeví "blbec", kterému to půjde. :-)
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.