Таблицы:
C_id | Company | Location
1 | ООО Поиск | Кудыкино поле 15/3
2 | ЗАО Элита | Слунысвалинск 133/7
3 | ОАО Пыщпыщ | Солдатодачестройское 404
Тип ремонта (repair_types)
r_id | Repair_types |
1 | Молоток + гвозди
2 | Наведение красоты
3 | Капитальный ремонт
Список заказов (list)
l_id | Who | What need | Time | Operator comment
1 | 1 | 2 | %timestamp% | %текст_оператора%
2 | 2 | 1 | | %text%
3 | 3 | 2 | | %text%
Таблица № 1 содержит список клиентов.
Таблица № 2 содержит список услуг.
Таблица № 3 содержит список текущих заказов для оперативных бригад. Данная таблица регулярно обновляется и для её заполнения используется веб-форма. Так как Приходит довольно много заказов, то в таблицу заносятся записи в виде ID клиента и услуги.
Собственно проблема в том, что третья таблица должна выводиться в веб-форме "выбор заказа" и вместо ID нужно подставить соответствующие поля из других столбцов.
Код:
$query = "SELECT * FROM list";
$result = mysql_query ($query);
while($row=mysql_fetch_array($result. // берем результаты из каждой строки
{ echo "";// выводим данные
}
CREATE TABLE "table_name" ("id" int(255) NOT NULL AUTO_INCREMENT, "list" text (80) NOT NULL, PRIMARY KEY("id".
INSERT INTO "table_name" ("list") VALUES ("bla-bla")
лучший ответ
$query =
"
select companies.Company, repair_types.Repair_types, list.comment_l
from list
inner join companies
on list.Who = companies.c_id
inner join repair_types
on list."What need" = repair_types.r_id
";
(PHP 4, PHP 5, PHP 7)
str_replace — Заменяет все вхождения строки поиска на строку замены
ОписаниеЭта функция возвращает строку или массив, в котором все вхождения search в subject заменены на replace .
Если не нужны сложные правила поиска/замены (например, регулярные выражения), использование этой функции предпочтительнее preg_replace() .
Список параметровЕсли search и replace - массивы, то str_replace() использует каждое значение из соответствующего массива для поиска и замены в subject . Если в массиве replace меньше элементов, чем в search , в качестве строки замены для оставшихся значений будет использована пустая строка. Если search - массив, а replace - строка, то эта строка замены будет использована для каждого элемента массива search . Обратный случай смысла не имеет.
Если search или replace являются массивами, их элементы будут обработаны от первого к последнему.
Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.
Replace
Значение замены, будет использовано для замены искомых значений search . Для множества значений можно использовать массив.
Subject
Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).
Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject , а результатом функции также будет являться массив.
Если передан, то будет установлен в количество произведенных замен.
Возвращаемые значенияЭта функция возвращает строку или массив с замененными значениями.
ПримерыПример #1 Примеры использования str_replace()
Пример #2 Примеры потенциальных трюков с str_replace()
Примечания
Замечание : Эта функция безопасна для обработки данных в двоичной форме.
Предостережение
Замечание о порядке заменыТак как str_replace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Смотрите также примеры на этой странице.
Замечание :
Эта функция чувствительна к регистру. Используйте str_ireplace() для замены, нечувствительной к регистру.
Безусловно, изображения, звуковые файлы, видеоинформация, анимационные данные и аплеты составляют важную часть информационного наполнения World Wide Web, но подавляющая часть данных в веб все еще представлена в виде текста - последовательностей символов, подобных данному предложению. Основным типом данных PHP, предназначенным для представления текста, является строка.
Описание строк в PHPСтроки - это последовательности символов, которые могут рассматриваться как единое целое - присваиваться переменным, передаваться в качестве входных данных в функции, возвращаться из функций или отправляться в качестве выходных данных для отображения на веб-странице пользователя. Простейший способ задания строки в коде PHP состоит в заключении последовательности символов в кавычки, одинарные (") или двойные ("), например, следующим образом:
$myString = "Простая строка"; $anotherString = "Еще одна строка";
Различие между одинарными и двойными кавычками обусловлено тем, насколько интенсивной интерпретации подвергаются в среде PHP символы, заключенные в кавычки, перед созданием самой строки. Если строка заключена в одинарные кавычки, то не выполняется почти никакая интерпретация, а если строка заключена в двойные кавычки, то в среде PHP осуществляется подстановка значений всех переменных, которые указаны в строке, а также выполняется замена некоторых специальных символьных последовательностей, которые начинаются с символа обратной косой черты ().
Например, после обработки следующего кода, входящего в состав веб-страницы:
$count = 13;
$string1 = "В строке \"Hello, world!\" $count символов.
";
$string2 = "В строке \"Hello, world!\" $count символов.
";
echo $string1;
echo $string2;
можно рассчитывать на получение в окне браузера такого вывода:
В большинстве ситуаций можно просто включить переменную в строку с двойными кавычками, и значение переменной будет подставлено в строку во время обработки строки интерпретатором. Но в двух описанных ниже ситуациях может оказаться, что интерпретатор строк не способен принять обоснованное решение и ему требуются дополнительные указания от разработчика.
Первая ситуация состоит в том, что интерпретатор не может определить, где оканчивается имя переменной, а вторая ситуация возникает, когда необходимо подставить в строку не значение простой переменной, а значение выражения. В этих случаях разработчик может внести ясность, заключив имя или выражение, подлежащее обработке, в фигурные скобки ({}).
Например, интерпретатор PHP не испытывает затруднений при обработке следующего кода:
$sport = "волейбол"; $play = "Я люблю играть в $sport.";
В таких случаях интерпретатор обнаруживает символ $, после чего начинает собирать символы в подстроку для выявления имени переменной и выполняет такую сборку до тех пор, пока не встретится пробел или точку, которые следуют за именем переменной $sport. Пробелы и точки не могут входить в состав имени переменной, поэтому становится ясно, что рассматриваемая переменная имеет имя $sport; после этого интерпретатор PHP успешно находит значение для данной переменной ("волейбол") и подставляет его.
Но иногда не существует возможности обозначить конец имени переменной с помощью пробела или точки. Рассмотрим следующий пример:
$sport1 = "волей"; $sport2 = "фут"; $sport3 = "баскет"; // Неправильные конструкции $play1 = "Я люблю играть в $sport1бол."; $play2 = "Я люблю играть в $sport2бол."; $play3 = "Я люблю играть в $sport3бол.";
В данном случае не будет достигнут желаемый эффект, поскольку интерпретатор PHP будет рассматривать строку $sport1 как часть имени переменной $sport1бол, которой, по всей видимости, не присвоено какое-либо значение. Вместо этого необходимо применять такую запись:
// Правильная конструкция $play1 = "Я люблю играть в {$sport1}бол."; $play2 = "Я люблю играть в {$sport2}бол."; $play3 = "Я люблю играть в {$sport3}бол.";
Эта запись служит для интерпретатора PHP указанием на то, что перед подстановкой значений необходимо вычислить только значение выражения с именем переменной, заключенным в фигурные скобки.
По аналогичным причинам интерпретатор PHP, если не используются фигурные скобки, сталкивается с затруднениями при подстановке значений сложных выражений с именами переменных, наподобие обращений к элементам многомерных массивов и к объектным переменным. Общее правило состоит в том, что если за открывающей фигурной скобкой ({) непосредственно следует символ $, то интерпретатор PHP вычисляет значение выражения с именем переменной вплоть до закрывающей фигурной скобки (}), а затем подставляет результирующее значение в строку. (Если требуется, чтобы в строке появилось литеральное значение {$, это можно обеспечить, поставив перед каждым из этих символов обратную косую черту, \).
Символы и индексы символов в строкахВ отличие от некоторых других языков программирования в языке PHP нет отдельного символьного типа, не совпадающего со строковым типом. Вообще говоря, функции, которые требуют в других языках применения символьных фактических параметров, в языке PHP рассчитаны на получение строк с длиной 1.
Выборка отдельных символов из строки может осуществляться путем указания порядкового номера символа, начинающегося с нуля, который должен быть указан в фигурных скобках непосредственно за именем строковой переменной. Такие символы фактически представляют собой односимвольные строки. Например, выполнение следующего кода:
$myString = "Doubled"; for ($index = 0; $index < strlen($myString); $index++) { $char = $myString{$index}; print("$char$char"); }
приводит к получению в окне браузера такого вывода:
Очевидно, что при каждом проходе по циклу каждый символ строки выводится дважды. Функция strlen() возвращает длину строки.
Операции со строкамиВ языке PHP предусмотрены две строковые операции: операция со знаком операции точка (.), или операция конкатенации, и операция со знаком операции точка и знак равенства (.=), или операция конкатенации и присваивания. Рассмотрим следующий пример:
$string1 = "Это часть";
$string2 = "строки";
// Конкатенация строк
echo $string1." простой ".$string2."
"; // "Это часть простой строки"
// Конкатенация и присваивание
$string1 .= " простой "; // Эквивалентно $string1 = $string1." простой ";
$string1 .= $string2;
echo $string1; // "Это часть простой строки"
Следует отметить, что в приведенном выше примере первому оператору echo не передается несколько строковых фактических параметров; передается только один строковый фактический параметр, созданный в результате конкатенации четырех строк. Первая и третья строки заданы с помощью переменных, а вторая и четвертая строки представляют собой литеральную строку, заключенную в двойные кавычки.
Синтаксическая структура вложенного документа (Heredoc)Кроме синтаксических структур строк в одинарных и двойных кавычках, в языке PHP предусмотрен еще один способ задания строки, называемый синтаксической структурой вложенного документа (Heredoc) . Как оказалось, подобная синтаксическая структура является весьма удобным средством задания больших фрагментов текста, подставляемого с помощью переменных, поскольку избавляет пользователя от необходимости обозначать внутренние кавычки с помощью специальных символов. Такой способ особенно удобен при создании страниц, которые содержат формы HTML.
Знаком операции, применяемом в синтаксической структуре вложенного документа, является (