Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Создание строки в бд аналагичной той что уже сущес, вует, но изменив некоторые данные
BesTime  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 110
Пользователь №: 31359
На форуме: 5 лет, 3 месяца, 24 дня
Карма:




В бд есть строка, в ячейках которой хтмл коды. Нужно создать такуюже ячейку, только чтобы айди было другое, и изменить ячейку $userid



Спустя 2 минуты, 26 секунд (8.02.2012 - 22:24) sergeiss написал(а):
BesTime - если это ТЗ, то тогда указывай цену на работу smile.gif И тему я перенесу в специальный раздел.
А если это вопрос про ПХП, который ты хочешь, но не можешь решить, то показывай свои попытки решения.

Спустя 3 минуты, 56 секунд (8.02.2012 - 22:27) BesTime написал(а):
ок, пытаюсь сделать так

запрашиваю даные из готовой строки
$query = "select * from `blogs` WHERE `id` = '$blogid'";
$result = mysql_query($query, $link);
while($row=mysql_fetch_array($result))
{
$reklama=$row['reklama'];
$css=$row['css'];
$domain=$row['domain'];
$loginform=$row['loginform'];
$addmatform=$row['addmatform'];
$addcomform=$row['addcomform'];
$coments=$row['coments'];
$materiallist_tbl=$row['materiallist_tbl'];
$index_tbl=$row['index_tbl'];
$titlename=$row['titlename'];
$blogaboutauthor=$row['aboutauthor'];
$blogownerid=$row['ownerid'];
$material=$row['material'];
}


и создаю новую строку
$query = "insert into blogs values(0,'$domain','$ownerid',0,'$group','$blogaboutauthor','$reklama','Мой блог','$index_tbl','$materiallist_tbl','$material','$coments','$addmatform','$addcomform','$loginform ','$css')";
$result = mysql_query($query, $link);


косяк в том что не создается строка, есть предположения что из за того что ячейки содержат html код

Спустя 3 минуты, 8 секунд (8.02.2012 - 22:31) BesTime написал(а):
а не вру, строка создается но ячейки пустые

Спустя 1 минута, 30 секунд (8.02.2012 - 22:32) Winston написал(а):
while здесь и нафиг не нужен.

Спустя 3 минуты, 29 секунд (8.02.2012 - 22:36) BesTime написал(а):
Winston а я чето всегда ваил делаю=))) а как без него=)

Спустя 3 минуты, 23 секунды (8.02.2012 - 22:39) sergeiss написал(а):
BesTime - а ты проверил, что у тебя данные считались первым запросом? Выведи готовый запрос
echo $query.'<br>';

и оцени, что же ты на самом деле заносишь в БД. Это первое, что надо делать в подобных ситуациях.

А без while можно очень легко обойтись :) Если ты уверен, что у тебя только одна строка в выборке, то без цикла. В твоем же случае будут считаны все строки из первого запроса (если их несколько), а в итоге в переменные будут записаны данные из последней строчки выборки.

Спустя 7 минут, 40 секунд (8.02.2012 - 22:47) Winston написал(а):
Если твой первый запрос на выборку достает только 1 строку, то запись
Цитата (BesTime @ 8.02.2012 - 21:27)
while($row=mysql_fetch_array($result))
{
$reklama=$row['reklama'];
$css=$row['css'];
$domain=$row['domain'];
$loginform=$row['loginform'];
$addmatform=$row['addmatform'];
$addcomform=$row['addcomform'];
$coments=$row['coments'];
$materiallist_tbl=$row['materiallist_tbl'];
$index_tbl=$row['index_tbl'];
$titlename=$row['titlename'];
$blogaboutauthor=$row['aboutauthor'];
$blogownerid=$row['ownerid'];
$material=$row['material'];
}


Можно сократить до
$row=mysql_fetch_assoc($result);
extract($row, EXTR_SKIP)


И после ты уже можешь просто работать с переменными, вот так
echo $reklama;
echo $css;
echo $domain;
// ...


UPD: немного подправил.

Спустя 4 минуты, 23 секунды (8.02.2012 - 22:51) BesTime написал(а):
Написал так
$query5 = "select * from `blogs` WHERE `id` = '0'";

$result5 = mysql_query($query5, $link);

while($row=mysql_fetch_array($result5))
{
$reklama=$row['reklama'];
$css=$row['css'];
$loginform=$row['loginform'];
$addmatform=$row['addmatform'];
$addcomform=$row['addcomform'];
$coments=$row['coments'];
$materiallist_tbl=$row['materiallist_tbl'];
$index_tbl=$row['index_tbl'];
$blogaboutauthor=$row['aboutauthor'];
$material=$row['material'];
}
echo $query5.'<br>';


выхлоп
select * from `blogs` WHERE `id` = '0'

Спустя 1 минута, 23 секунды (8.02.2012 - 22:52) Winston написал(а):
Цитата (BesTime @ 8.02.2012 - 21:51)
echo $query5.'<br>';

Ну дык ты обычную строку вывел на экран biggrin.gif

Спустя 1 минута, 43 секунды (8.02.2012 - 22:54) BesTime написал(а):
Winston
сделал как ты написал

$query = "select * from `blogs` WHERE `id` = '0'";
$result = mysql_query($query, $link);
$row=mysql_fetch_assoc($result);
extract($row, EXTR_SKIP);
echo $query5.'<br>';


ошибка
Warning: extract() [function.extract]: First argument should be an array in /home/users1/b/bestime/domains/work-link.ru/index.php on line 39






Спустя 1 минута, 8 секунд BesTime написал(а):
блин, туплю, вообщем когда создаю строку почемуто незаписываются туда переменые которые беру из строки которую копирую

Спустя 3 минуты, 4 секунды (8.02.2012 - 22:57) Winston написал(а):
Цитата (BesTime @ 8.02.2012 - 21:55)
когда создаю строку почемуто незаписываются туда переменые которые беру из строки которую копирую

wacko.gif
Цитата (BesTime @ 8.02.2012 - 21:54)
WHERE `id` = '0'"

У тебя есть запись с id - 0?



Спустя 52 секунды Winston написал(а):
Цитата (BesTime @ 8.02.2012 - 21:54)
Warning: extract() [function.extract]: First argument should be an array in /home/users1/b/bestime/domains/work-link.ru/index.php on line 39

Значит у тебя ничего не выбирается из базы, потому $row пустая, из-за этого ошибка, до extract напиши print_r($row);

Спустя 5 минут, 33 секунды (8.02.2012 - 23:03) Rand написал(а):
Вот так ;) (помогаем всем миром) :


$query5 = "select * from `blogs` WHERE `id` = '0'";

$result5 = mysql_query($query5, $link) or die(mysql_error());

$row = mysql_fetch_array($result5);

echo '<pre>';
print_r($row);
echo '</pre>';

Спустя 1 минута, 43 секунды (8.02.2012 - 23:04) BesTime написал(а):
короче последние сведения=))) проверил что передается при создании строки, передается html код но строка не создается по неизвестной причине=)

Спустя 2 минуты, 44 секунды (8.02.2012 - 23:07) BesTime написал(а):
Rand
Array
(
[0] => 1
[id] => 1
[1] => lol
[domain] => lol
[2] => 24
[ownerid] => 24
[3] => -17
[click] => -17
[4] => 0
[group] => 0
[5] =>
Добро пожаловать в мой блог12345

[aboutauthor] =>
Добро пожаловать в мой блог12345

[6] => ЛОЛ
[reklama] => ЛОЛ
[7] =>
[titlename] =>
[8] =>


сие чудо выдало, остальное разлетелось по странице =)

Спустя 40 секунд (8.02.2012 - 23:08) Winston написал(а):
Вместо mysql_fetch_array используй mysql_fetch_assoc

Спустя 5 минут, 39 секунд (8.02.2012 - 23:13) Rand написал(а):
Блин, я array написал вместо assoc =) Впрочем это не важно, выбирается нормально. Значит дело в INSERT. Там где-то накосячил, после insert into blogs, укажи имена полей в скобках, в том порядке в котором ты указал в VALUES. Если поле id уникально и AUTO_INCREMENT, то его указывать не надо.

Спустя 29 секунд (8.02.2012 - 23:14) sergeiss написал(а):
Цитата (Rand @ 9.02.2012 - 00:03)
echo '<pre>';
print_r($row);
echo '</pre>';

Вот это можно записать короче:
echo '<pre>'.print_r( $row, true).'</pre>';

Спустя 28 секунд (8.02.2012 - 23:14) BesTime написал(а):
написал так
$query = "select * from `blogs` WHERE `id` = '1'";
$result = mysql_query($query, $link);
$row=mysql_fetch_assoc($result);
extract($row, EXTR_SKIP);

$query = "insert into blogs values(0,'$domain','$ownerid',0,'$group','$blogaboutauthor','$reklama','Мой блог','$index_tbl','$materiallist_tbl','$material','$coments','$addmatform','$addcomform','$loginform ','$css')";
$result = mysql_query($query, $link);
echo $query.'<br>';

и нехера не пашет=) ячейка не создается

Спустя 1 минута, 39 секунд (8.02.2012 - 23:16) BesTime написал(а):
мужики я запутался, у меня похоже от каждого по чуть чуть вот и не работает, можете проверить у себя на сервере, в ячейку запихните хтмл год

<html><body>ЛОЛ</body></html>


запросить его и запихайте в ячейку другой строки

Спустя 1 минута, 55 секунд (8.02.2012 - 23:18) Winston написал(а):
Ну и как вариант все можно сделать в SQL'e
INSERT INTO table(field1, field2, field3)
SELECT field1, field2, field3 FROM table WHERE field = 1

Спустя 6 минут, 41 секунда (8.02.2012 - 23:25) BesTime написал(а):
$query="SELECT $domain,$ownerid,0,$group,$blogaboutauthor,$reklama,Мой блог,$index_tbl,$materiallist_tbl,$material,$coments,$addmatform,$addcomform,$loginform,$css FROM blogs WHERE id = 1";
$result = mysql_query($query, $link);
$query = "insert into blogs values(0,'$domain','$ownerid',0,'$group','$blogaboutauthor','$reklama','Мой блог','$index_tbl','$materiallist_tbl','$material','$coments','$addmatform','$addcomform','$loginform ','$css')";
$result = mysql_query($query, $link);

Так чтоле

Спустя 1 минута, 59 секунд (8.02.2012 - 23:27) Winston написал(а):
$query="SELECT $domain,$ownerid,0,$group,$blogaboutauthor,$reklama,Мой блог,$index_tbl,$materiallist_tbl,$material,$coments,$addmatform,$addcomform,$loginform,$css FROM blogs WHERE id = 1";
$result = mysql_query($query, $link);
$row=mysql_fetch_assoc($result);
extract($row, EXTR_SKIP)
$query = "insert into blogs values(0,'$domain','$ownerid',0,'$group','$blogaboutauthor','$reklama','Мой блог','$index_tbl','$materiallist_tbl','$material','$coments','$addmatform','$addcomform','$loginform ','$css')";
$result = mysql_query($query, $link);

Цитата
Мой блог

Это поле такое в таблице? :blink:

Спустя 1 минута, 23 секунды (8.02.2012 - 23:28) BesTime написал(а):
Winston это в ячейке текст

Спустя 56 секунд (8.02.2012 - 23:29) Winston написал(а):
Цитата (Winston @ 8.02.2012 - 22:27)
$blogaboutauthor,$reklama,Мой блог,$index_tbl

В селекте.

Спустя 1 минута, 19 секунд (8.02.2012 - 23:30) BesTime написал(а):
а это без точки с запятой должно быть? а то ошибочка
extract($row, EXTR_SKIP)


Parse error: syntax error, unexpected T_VARIABLE in /home/users1/b/bestime/domains/work-link.ru/index.php on line 43

Спустя 1 минута, 14 секунд (8.02.2012 - 23:32) Rand написал(а):
Winston Я думаю одним sql-запросом был бы самый правильный вариант, только по задаче надо ещё изменить некоторые поля, поэтому примерно так:
INSERT INTO table(field1, field2, field3)
SELECT field1, field2, @field3 := 'Новое значение' AS field3 FROM table WHERE field = 1

Спустя 19 секунд (8.02.2012 - 23:32) BesTime написал(а):
Цитата
В селекте.

Ой туплю, там $titlename

Спустя 2 минуты, 3 секунды (8.02.2012 - 23:34) BesTime написал(а):
Rand
чеж у меня пустые ячейки лепит

Спустя 2 минуты, 43 секунды (8.02.2012 - 23:37) Rand написал(а):
Цитата (BesTime @ 9.02.2012 - 02:30)
а это без точки с запятой должно быть? а то ошибочка
А такие вопросы вообще должно быть стыдно задавать, это опечатка, точка с запятой обязательна. Я так чувствую, что пока тебе полностью готовый код не напишут, ты сам подумать не захочешь.

Спустя 51 секунда (8.02.2012 - 23:37) Winston написал(а):
Цитата (BesTime @ 8.02.2012 - 22:30)
а это без точки с запятой должно быть? а то ошибочка

Везде нужно ; то я пропустил случайно

Спустя 52 секунды (8.02.2012 - 23:38) BesTime написал(а):
я пробывал с точкой запятой, результат тотже, пустые ячейки

Спустя 5 минут, 25 секунд (8.02.2012 - 23:44) BesTime написал(а):

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/users1/b/bestime/domains/work-link.ru/test.php on line 5

Warning: extract() [function.extract]: First argument should be an array in /home/users1/b/bestime/domains/work-link.ru/test.php on line 6

Спустя 3 минуты, 9 секунд (8.02.2012 - 23:47) BesTime написал(а):
нужно както преобразовать хтмл код полученый из ячеек в текст

Спустя 1 минута, 25 секунд (8.02.2012 - 23:48) Winston написал(а):
Цитата (BesTime @ 8.02.2012 - 22:44)
Warning: mysql_fetch_assoc()

В запросе на выборку ошибка.
Напиши or die(mysql_error()); после mysql_query() и увидишь текст ошибки.

Спустя 4 минуты, 6 секунд (8.02.2012 - 23:52) BesTime написал(а):
я в скюл слаб так что не злитесь
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0,,,,,,,,,,,, FROM blogs WHERE id = 1' at line 1

Спустя 3 минуты, 48 секунд (8.02.2012 - 23:56) Winston написал(а):
Ты уже походу хрень написал, попробуй так
$query="SELECT * FROM blogs WHERE id = 1";
$result = mysql_query($query, $link) or die(mysql_error());
$row=mysql_fetch_assoc($result);
extract($row, EXTR_SKIP);
$query = "insert into blogs values(0,'$domain','$ownerid',0,'$group','$blogaboutauthor','$reklama','Мой блог','$index_tbl','$materiallist_tbl','$material','$coments','$addmatform','$addcomform','$loginform ','$css')";
$result = mysql_query($query, $link) or die(mysql_error());

Спустя 1 минута, 41 секунда (8.02.2012 - 23:58) BesTime написал(а):
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '') no-repeat;height:25px;padding:4px 0 0 10px;"> {Name}{date}


Чето походу ошибки в хтмл разметки чтоле

Спустя 1 минута, 55 секунд (9.02.2012 - 00:00) Winston написал(а):
Вот уже почти работает
Теперь переписывай запрос на вставку так
insert into blogs values(0,'" . mysql_real_escape_string($domain) . "','" . mysql_real_escape_string($ownerid) . "'....

Спустя 5 минут, 10 секунд (9.02.2012 - 00:05) BesTime написал(а):
еееее добили
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса