我在下面的查询
工作查询
$sorgum = "SELECT kolon_etiketler, kolon_yazar, kolon_baslik, kolon_resim_baslik, kolon_resim_url, kolon_yazi, kolon_ytarihi FROM tb_yazilar WHERE kolon_statu = 'onay' AND kolon_yazar ='".tire_bosluk_olsun($_GET["rd_ozne"])."' AND kolon_baslik ='".tire_bosluk_olsun($_GET["rd_nesne"])."' ORDER by kolon_onaytarihi DESC";
非工作查询
$sorgum = "SELECT kolon_etiketler, kolon_yazar, kolon_baslik, kolon_resim_baslik, kolon_resim_url, kolon_yazi, kolon_ytarihi FROM tb_yazilar WHERE kolon_statu = 'onay' AND kolon_yazar ='".tire_bosluk_olsun($_GET["rd_ozne"])."' AND noktalamasiz(kolon_baslik) ='".tire_bosluk_olsun($_GET["rd_nesne"])."' ORDER by kolon_onaytarihi DESC";
顺便说一句,工作和非工作的区别
工作:AND kolon_baslik = ...
非工作:AND noktalamasiz(kolon_baslik) = ...
我的链接过程
- 用户以正常的书面形式将文章标题输入数据库
- 当页面链接文章时,使用文章的作者标题信息。普通书写形式被自定义功能覆盖,以删除标点符号并用破折号替换空格
我的目标
从地址栏,$_GET['nesne']
来了。这是文章标题的没有任何标点符号的语法。空格字符也替换为破折号字符。
在我的 MySQL 表中,文章标题采用标准格式,带有标点符号和空格 btw 单词。
例如:
在我的 MySql 表中:“John 的时钟在工作吗?” ,它变成了 url 地址“Is-Johns-Clock-Working”
我的问题
我可以用非工作查询做些什么吗?我不能给它删除的标点符号,$_GET['nesne']
所以我需要比较 mysql 表中标题行的无标点符号状态的值和$_GET['nesne']
. 也许我走错了路,所以请引导我正确处理自动链接方式,允许用户在 mysql 表中输入标点标题和只有 1 个标题列。
编辑
noktalamasiz = 删除所有标点符号的自定义 php 函数。
Tire-bosluk-olsun = 用空格替换破折号。因此,如果我的第一个标题不包含任何标点符号,而只包含空格 btw 单词,那么我将没有困难,只使用工作 sql。
function tire_bosluk_olsun ($tireli)
{
$tireli = trim($tireli);
$tireli = str_replace('-',' ',$tireli);
return $tireli;
}
function noktalamasiz($noktalamali) {
$noktalamali = trim($noktalamali);
$ara = array('.',',',';',':','...','?','!','-','—','/','\\','“','”','‘','’','"','\'','(',')','[',']','’','{','}','*','&','#','^','<','>','|');
$degistir = array('','','','','','','',' ','','','','','','','','','','','','','','','','','','','','','','',);
$noktalamali = str_replace($ara,$degistir,$noktalamali);
return $noktalamali;
}
什么是非工作
如果我的查询涉及noktalamasiz custom function
这样:noktalamasiz(kolon_baslik)
; 然后我得到了空白屏幕,没有任何警告通知或错误。我正在使用 -1 错误级别。
整个相关的php代码
$sorgum = "SELECT kolon_etiketler, kolon_yazar, kolon_baslik, kolon_resim_baslik, kolon_resim_url, kolon_yazi, kolon_ytarihi FROM tb_yazilar WHERE kolon_statu = 'onay' AND kolon_yazar ='".tire_bosluk_olsun($_GET["rd_ozne"])."' AND noktalamasiz(kolon_baslik) ='".tire_bosluk_olsun($_GET["rd_nesne"])."' ORDER by kolon_onaytarihi DESC";
if ($beyan = $db_baglanti->prepare($sorgum))
{
/* execute statement */
$beyan->execute();
/* bind result variables */
$beyan->bind_result($etiketler, $yazar, $baslik, $resim_baslik, $resim_url, $yazi, $ytarihi);
/* fetch values */
while ($beyan->fetch())
{
echo '<div class="sol-icerik-kapsar">'."\r\n";
echo "\t".'<h1>'.$baslik.'</h1>'."\r\n";
echo "\t".'<img class="mansetresim" width="120" height="160" src="'.sitenin_koku.'img/manset/'.$resim_url.'" alt="'.$resim_baslik.'" title="'.$resim_baslik.'" />'."\r\n";
echo "\t".'<p><a href="'.sitenin_koku.'yazılar/'.bosluklar_tire_olsun($yazar).'">'.$yazar.'</a>'.' - '.turkcetarih('j F Y',$ytarihi).'</p>'."\r\n";
echo "\t".'<p>'.$yazi.'</p>'."\r\n";
echo "\t".'<p>'.$etiketler.'</p>'."\r\n";
echo '</div>'."\r\n";
}
/* close statement */
$beyan->close();
}