Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Буква к букве = инкремент слова? UPDATE AJAXTYPE SET keyline=keyline+('$z')
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Буква к букве = инкремент слова? UPDATE AJAXTYPE SET keyline=keyline+('$z')

Страниц (1): [1]
 

1. xcislav - 12 Июня, 2014 - 16:41:47 - перейти к сообщению
Проблема: работает только с числами, числа прибавляет только как числа, строки не реагирует.

Это просто табличка с типом mediumtext.
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM AJAXTYPE;
  2. +---------+
  3. | keyline |
  4. +---------+
  5. | 656619  |
  6. +---------+
  7. 1 row IN SET (0.00 sec)
  8.  
  9. DESCRIBE AJAXTYPE;
  10. +---------+------------+------+-----+---------+-------+
  11. | FIELD   | Type       | NULL | KEY | DEFAULT | Extra |
  12. +---------+------------+------+-----+---------+-------+
  13. | keyline | mediumtext | YES  |     | NULL    |       |
  14. +---------+------------+------+-----+---------+-------+
  15. 1 row IN SET (0.00 sec)


Программа (инлайн /IRC вариант/ укороченный):
PHP:
скопировать код в буфер обмена
  1. head nnew.php jpostkdb.php
  2. ==> nnew.php <==
  3. <input onkeyup="l=this.value+=event.keyCode;j=new XMLHttpRequest();j.open('GET', '/jpostkdb.php?l='+l);j.send();"/>
  4. ==> jpostkdb.php <==
  5. <?PHP
  6. $z=$_GET['l'];
  7. $db=new PDO('mysql:host=localhost;dbname=test;charset=utf8','root','hyuiuik');$db->exec("UPDATE AJAXTYPE SET keyline=keyline+('$z');");?>
  8.  

Из того что мне вообще посоветовали:
CODE (htmlphp):
скопировать код в буфер обмена
  1. mysql> SELECT CONCAT('My', 'S', 'QL');
  2.         -> 'MySQL'


Но не понятно куда CONCAT располагает (
если я бы сделал SELECT CONCAT('$z', '$z')
)

Символы один за одним поступают через AJAX метод GET. В PHP их нужно принимать по одному, а дальше - укладывать в одно поле таблицы БД.

/upd

Первую часть сделал попроще.
<input onkeyup="l=this.value;j=new XMLHttpRequest();j.open('GET', '/jpostkdb.php?l='+l);j.send();"/>
Что-то есть. Но сейчас проблема в количестве. Ввожу 4 а там 10. Даже без понятия по какому алгоритму там появляется в 2.5 раз больше.

<?php $z=$_GET['l']; $db=new PDO('mysql:host=localhost; dbname=test;charset=utf8','root','hyuiuik');$db->exec("UPDATE AJAXTYPE SET keyline=concat(keyline,'$z');");?>

CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE AJAXTYPE SET keyline=concat(keyline,'$z')


CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM AJAXTYPE;
  2. +---------+
  3. | keyline |
  4. +---------+
  5. |         |
  6. +---------+
  7. 1 row IN SET (0.00 sec)
  8.  
  9. SELECT * FROM AJAXTYPE;
  10. +------------+
  11. | keyline    |
  12. +------------+
  13. | cccccccccc |
  14. +------------+
  15. 1 row IN SET (0.00 sec)


concat(keyline ....
Это я к столбцу напрямую добавил?

ПС: Каждый раз всё больше добавляется букв в ячейку БД.
Первый символ Ok. D (один добавлен)
Добавил вторым В. (добавилось два)
CODE (SQL):
скопировать код в буфер обмена
  1. | keyline |
  2. +---------+
  3. | DDВ     |


One C > +3
CODE (SQL):
скопировать код в буфер обмена
  1. | keyline  |
  2. +----------+
  3. | DDВDВC   |

 

Powered by ExBB FM 1.0 RC1