Php postgresql поисковый запрос

Я не уверен, правильно ли я делаю запрос, но я всего лишь новичок в PHP и, следовательно, мой код postgresql.

то, что я пытаюсь сделать, это поиск с использованием выбора даты, который даст данные с даты:

<?php
$output = '';
if(isset($_POST['search'])) {
$searchq = $_POST['search'];

$query = ("SELECT trees.tree_type,tree_solds.transaction_id,tree_solds.actual_height,tree_solds.selling_height,tree_solds.sub_total,transactions.date_purchased FROM tree_solds
left join trees on tree_solds.tree_id = trees.id
left join transactions on transactions.id = tree_solds.transaction_id
WHERE date_purchased LIKE $searchq ");$result = pg_query($query);
if (!$result) {
echo "Problem with query " . $query . "<br/>";
echo pg_last_error();
exit();
}$count = pg_num_rows($result);
if ($count == 0) {
$output = 'No Data on that date!';
} else {
while ($row = pg_fetch_array($result)) {
$output .= printf ("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>", htmlspecialchars($myrow['transaction_id']), htmlspecialchars($myrow['date_purchased']), htmlspecialchars($myrow['tree_type']), htmlspecialchars($myrow['actual_height']), htmlspecialchars($myrow['selling_height']), number_format($myrow['sub_total'], 2));
}
}
}
?>

HTML-форма

 <form action="location4.php" method="post">
<input type="text" class="span2" name="search" value="" data-date-format="yyyy-mm-dd" id="dp2">

<button type="submit" class="btn btn-default">Submit</button>
</form>
<?php print("$output");?>

Продолжайте получать эту ошибку и никакого результата.

Предупреждение: pg_query (): Запрос не выполнен: ОШИБКА: оператор не существует:
временная метка без часового пояса ~~ целое число LINE 4: … WHERE
date_purchased LIKE 2014 -… ^ СОВЕТ: ни один оператор не соответствует заданному
имя и тип аргумента (ов). Возможно, вам понадобится добавить явное приведение типов.
в /Applications/MAMP/htdocs/xmastool/location4.php в строке 50 Проблема
с запросом SELECT
trees.tree_type, tree_solds.transaction_id, tree_solds.actual_height, tree_solds.selling_height, tree_solds.sub_total, Transactions.date_purchased ОТ дерева tree_solds соединяются с деревьями на tree_solds.tree_id = trees.id left
присоединить транзакции к транзакциям. id = tree_solds.transaction_id WHERE
date_purchased LIKE 2014-12-07 ОШИБКА: оператор не существует:
временная метка без часового пояса ~~ целое число LINE 4: … WHERE
date_purchased LIKE 2014 -… ^ СОВЕТ: ни один оператор не соответствует заданному
имя и тип аргумента (ов). Возможно, вам понадобится добавить явное приведение типов.

1

Решение

Используйте как это: WHERE date_purchased LIKE '%$searchq%' если ты хочешь только часть этого.

Если вы хотите точное соответствие, то WHERE date_purchased = '$searchq'

НОТА: % является персонажем джокера в LIKE, проверьте руководство, как использовать.

0

Другие решения

Попробуй это

pg_query_params('SELECT ... WHERE DATE_TRUNC('day', date_purchased) = $1', array($searchq))

Смотрите [документацию для деталей. Вам следует всегда убедитесь, что параметры запроса правильно экранированы (то есть дословно не связаны с запросом), чтобы предотвратить внедрение SQL.

0

решена проблема из-за чаевых polka_bolka.

 WHERE TO_CHAR(date_purchased, 'yyyy-mm-dd') LIKE '%$searchq%' ")

преобразовал date_purchased в char.

<?php
$output = '';
if(isset($_POST['search'])) {
$searchq = $_POST['search'];

$query = ("SELECT trees.tree_type,tree_solds.transaction_id,tree_solds.actual_height,tree_solds.selling_height,tree_solds.sub_total,transactions.date_purchased FROM tree_solds
left join trees on tree_solds.tree_id = trees.id
left join transactions on transactions.id = tree_solds.transaction_id
WHERE TO_CHAR(date_purchased, 'yyyy-mm-dd') LIKE '%$searchq%' ");$result = pg_query($query);
if (!$result) {
echo "Problem with query " . $query . "<br/>";
echo pg_last_error();
exit();
}$count = pg_num_rows($result);
if ($count == 0) {
$output = 'No Data on that date!';
} else {
while ($row = pg_fetch_array($result)) {
$output .= printf ("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>", htmlspecialchars($row['transaction_id']), htmlspecialchars($row['date_purchased']), htmlspecialchars($row['tree_type']), htmlspecialchars($row['actual_height']), htmlspecialchars($row['selling_height']), number_format($row['sub_total'], 2));
}
}
}
?>
0
По вопросам рекламы [email protected]