Будьте добры, подскжите =) Есть строка вида Разделитель например знак табуляции но в принципе не важно. Как грамотно разбить эту строку и загнать в таблицу mysql? В таблице 9 полей, разбиваем строку на массив через preg_split, получаем 9 записей в массиве, а дальше как загнать массив в таблицу через INSERT INTO? Можно конечно по 1 записи вставлять, но мне надо что б одним запросом массив вставить.
PHP: function mysql_insert($table, $toAdd){ $fields = implode(array_keys($toAdd), ','); $values = "'".implode(array_values($toAdd), "','")."'"; # better $q = 'INSERT INTO `'.$table.'` ('.$fields.') VALUES ('.$values.')'; $res = mysql_query($q)OR die(mysql_error()); return true; } юзать так: $toAdd=array( 'pole1'=>'znachenie1', 'pole2'=>'znachenie2', 'pole3'=>'znachenie3' ); mysql_insert('my_table', $toAdd);
Приветствую всех уважаемые форумчане. Вот хотел поинтересоваться знает ли кто как реализовать скрипт для сайта на движке ДЛЕ или для форума IPB чтобы на автомате распознавал ссылки и менял их автоматом на картинки с нарисованным адресом этой ссылки, но без линка на сайт. (при добавлении поста) т.е. человек указал ссылку в посте - она вроде как и осталась но в виде картинки, а хтмл коде и никакой чужой ссылки - только картинка с моего сайта.
оно чёт серовно отдельно открывается мне надо штоб при нажатии на ссылку в страницу инклудилась страница
Ребят, нужно присвоить переменной текст. Проблема в том, что в тексте куча одинарных и двойных кавычек, поэтому экранировать каждую их них - большой геморрой. Как произвести присвоение?
Короче есть строка типа {a|b|c} afsfsdg {z|n|c} dasjjsa {sda|das|fsdg} Как сделать функцию которая будит выбирать случайный вариант для каждой пары скобочек и возвращать получившееся в результати предложение?
Semyon Можно пойти в лоб и распарсить строку рег. выражением. Но мне кажется, генератор текста, который ты делаешь, можно написать по-другому: 1. создаешь массив, где каждое значение - одно из слов {a|b|c}. 2. ищешь случайное значение массива 3. присваиваешь тексту. PHP: <?php $arr = array("один", "два", "три"); $rand = array_rand($arr); $myText = $arr[$rand] . " бла-бла-бла"; ?>
Это всё не грамотно! Это Local file include или remote file include, и вообще считается дурным тоном)) Юзай mysql, а если не умеешь - то учи, но не лепи дырявую х*йню
GrimmJow 1) в Notepad++ есть опция экранирования кавычек в выделенном тексте 2) Либо варганите следующее: PHP: $in = file_get_contents('fl.txt'); // В fl.txt текст, который нужно экранировать echo addcslashes($in, "\\'"); // тут будет выведен текст, в котором все кавычки проэкранированы, лучше выводить в файл, а не в браузер 3) Если в тексте нет знака доллара, то можно так: PHP: $text = <<<HTT тут любой текст с любым набором кавычек HTT; // HTT должно быть в начале строки Semyon PHP: $text = '{a|b|c} afsfsdg {z|n|c} dasjjsa {sda|das|fsdg}'; function cb($arr) { $arr = explode('|', $arr[1]); return $arr[array_rand($arr)]; } echo preg_replace_callback('~\{([^{}]+)\}~','cb',$text); TOP4 Вы пишете CMS без единого инклуда? Покажите, хочется посмеяться
Вот возникла маленькая проблемка, я начал писать сайтиг(пробный), там стало получатся много фойлов и я решил разфосовать их по папкам и чегото перестало работать(пути я поправил) вот к примегу index.php(авторизация) находится в корне Code: <form action = "action/actionvhod.php" method = "post"> actionvhod.php(обработка авторизаци) находится в папке /action/actionvhod.php Code: <? session_start(); if (isset($_POST['user_login']) && isset($_POST['user_pass'])) include ("db/dbconnect.php"); $query = "SELECT `id` FROM `serfinguser` WHERE `user_name`='{$user_login}' AND `user_pass`='{$user_pass}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); if (mysql_num_rows($sql) == 1) { $row = mysql_fetch_assoc($sql); $_SESSION['id'] = $row['id']; header("Location: site.php"); } else { die('Такой логин с паролем не найдены в базе данных.'); } ?> в actionvhod.php инклудится файл dbconnect.php(благодоря которому происходит подключение к БД) dbconnect.php находится в тоже в другой папке db/dbconnect.php код ошибки такой Code: Warning: include(): Unable to access db/dbconnect.php in /usr/home/mai1-ru/htdocs/serfing/action/actionvhod.php on line 4 Warning: include(db/dbconnect.php): failed to open stream: No such file or directory in /usr/home/mai1-ru/htdocs/serfing/action/actionvhod.php on line 4 Warning: include(): Unable to access db/dbconnect.php in /usr/home/mai1-ru/htdocs/serfing/action/actionvhod.php on line 4 Warning: include(db/dbconnect.php): failed to open stream: No such file or directory in /usr/home/mai1-ru/htdocs/serfing/action/actionvhod.php on line 4 Warning: include(): Failed opening 'db/dbconnect.php' for inclusion (include_path='.:/usr/local/share/pear') in /usr/home/mai1-ru/htdocs/serfing/action/actionvhod.php on line 4 Warning: mysql_query(): Access denied for user 'map'@'localhost' (using password: NO) in /usr/home/mai1-ru/htdocs/serfing/action/actionvhod.php on line 10 Warning: mysql_query(): A link to the server could not be established in /usr/home/mai1-ru/htdocs/serfing/action/actionvhod.php on line 10 Access denied for user 'map'@'localhost' (using password: NO) почему выдаёт ету ошибку??? пути я ж правильно поставил
qaz путь для инклуда указывается относительно файла, который пытается инклудить. То есть относительно actionvhod.php, а не index.php. Правильнее будет: PHP: include ("../db/dbconnect.php");
Такой вопрос, есть строка в БД например _______________ ид/логин/пароль/ --------------------- 1/усер/ 12345 -------------------- 2/усерак/ 1234577 -------------------- как например составить запрос штоб изменить только пароль там где ид(который указан)
чёт не меняет значения в БД PHP: <? if ($answer ==1) { include ("dbconnect.php"); $voplata=$_REQUEST['id']; $sql= "UPDATE zakaz SET voplata = 'выплачено ' WHERE 'id' = '{$voplata}' "; $r=mysql_query ($sql); header("Location: site.php"); } elseif ($answer ==2) { include ("dbconnect.php"); $voplata=$_REQUEST['id']; $sql= "UPDATE zakaz SET 'voplata' = 'отказано в выплате ' WHERE 'id' = '{$voplata}' "; $r=mysql_query ($sql); header("Location: createzakaz.php"); } ?> где я ошибся?
PHP: <?php if($answer==1) { include ("dbconnect.php"); $voplata=mysql_real_escape_string($_REQUEST['id']); $sql= "UPDATE zakaz SET voplata='выплачено' WHERE id='$voplata'"; $r=mysql_query($sql) or die(mysql_error()); header("Location: site.php"); } elseif($answer==2) { include ("dbconnect.php"); $voplata=mysql_real_escape_string($_REQUEST['id']); $sql= "UPDATE zakaz SET voplata='отказано в выплате' WHERE id='$voplata'"; $r=mysql_query($sql) or die(mysql_error()); header("Location: createzakaz.php"); } ?> В Вашем коде была SQL инъекция. Если мой код не сработает, кидайте ошибку сюда.