PHP skript nezapisuje do databáze

Mario

PHP skript nezapisuje do databáze
« kdy: 06. 12. 2016, 17:20:29 »
Dobry den

Potreboval by som pomoct s upravou php scriptu neviem kde robim chybu. Ide oto ze mam na svojej stranke pouzity toggle switch a chcem aby zapisoval do databazi 1 zapnuty 0 vypnuty. Avsak do mysql nic nezapise vedeli by ste mi poradit ?

[Kod]
index.php

Kód: [Vybrat]
<script type="text/javascript" src="js/jquery.js"></script>
     
    <script type="text/javascript" charset="utf-8">
      function ajax(id){
         
        var checked = $("#checkbox"+id).is(':checked');

        var data = {
          aktiv: id
        };

        $("#ajax").load("ajax.php", data);
       
      };
  </script>
 
  <div id="NAfBke4aIqld" style="position: absolute; top: 0px; left: 0px; width: 1px; height: 1px; z-index: 2147483647;"><div id="o0xlpIFzqdWC" style="position: absolute; top: 0px; left: 0px; width: 1px; height: 1px; z-index: 2147483647;"></div></div>

 
  <div class="state-background background-fill">
 
  </div>
  <div class="handle">
 
  </div>
  </div>
  <input type="checkbox" name="switch" style="display: none;" id="checkbox1" onClick="ajax(1);">

  <script src="./iOS7 Switch_files/build.js"></script>
  <script type="text/javascript" charset="utf-8">

      var Switch = require('ios7-switch')
        , checkbox = document.querySelector('input')
        , mySwitch = new Switch(checkbox);

      mySwitch.el.addEventListener('click', function(e){
        e.preventDefault();
        mySwitch.toggle();
      }, false)
  </script>
ajax.php
Kód: [Vybrat]
<?php
$con 
mysql_connect('localhost','root','raspberry');
mysql_select_db('controlr');

$datum date("Y-m-d h:i:s");

if(IsSet(
$_POST["aktiv"]) and $_POST["aktiv"] != "") {
  
$id $_POST["aktiv"];
  
$r mysql_query("SELECT * FROM tabulka WHERE ID = '$id'");
  if(
$zaznam mysql_fetch_array($r)) {
    
$stav_db $zaznam["stav"];
  }
  if(
$stav_db == 0$stav 1;
  elseif(
$stav_db == 1$stav 0;
  
mysql_query("UPDATE tabulka SET stav = '$stav', datum = '$datum' WHERE ID = '$id'");
}   


?>
Kód: [Vybrat]
Mysql
« Poslední změna: 06. 12. 2016, 17:48:08 od Petr Krčmář »


Kit

Re:[PHP] Pomoc s upravou php scriptu
« Odpověď #1 kdy: 06. 12. 2016, 17:47:17 »
To bude asi tím, že $_POST["aktiv"] máš prázdné.

K čemu ty 2 SQL dotazy? Udělej to jedním UPDATE.

tm

Re:PHP skript nezapisuje do databáze
« Odpověď #2 kdy: 06. 12. 2016, 18:06:30 »
1. Ak v databáze hodnota so zadaným ID neexistuje, ten skript, tak ako je napísaný, ju tam nepridá - na to je INSERT.

2. Prečítajte si niečo o sql injection  :-[

Re:PHP skript nezapisuje do databáze
« Odpověď #3 kdy: 06. 12. 2016, 18:15:48 »
to mame krasnou ukazku pro hovnokod.cz :-)
Děkuji za možnost editace příspěvku.

Kit

Re:PHP skript nezapisuje do databáze
« Odpověď #4 kdy: 06. 12. 2016, 18:22:28 »
Koukám, že v té databázi chybí nejen hodnota ID, ale i sloupec ID.

Nechápu, proč se někdo snaží dávat číslo do apostrofů.


hechj

Re:PHP skript nezapisuje do databáze
« Odpověď #5 kdy: 06. 12. 2016, 21:35:37 »
zapiš do php scriptu echa a podívej se, co ti vrací ajax. Doplň sloupec ID. Ten update query se zkonstruuje správně? Přidej si za to "or die(mysql_error())" a podívej se, co ti vrací ajax. Vezmi ten update query s hodnotami, které by měl obsahovat a vlož do phpmyadmina. Vrací požadovaný výsledek? Čísla v apostrofech? Lepší je spojovat proměnné s řetězci pomocí teček "bla bla bla ".$hodnota." bla bla".
Taky jsem tak začínal. Je to hrůza. Nauč se to dělat pořádně od začátku. Později se to špatně přecvičuje