AJAX çalışmıyor SQL sorgusu, doğrudan girilen çalışıyor

2 Cevap php

Değişkenler sorguda geçirilen zaman, bir SQL sorgusu AJAX sayfası üzerinden herhangi bir çıktı verir. Satır sayısının bile sayısı sıfır verir (0). Bir echo geçirilen değişkenler ile aynı sorgunun değerlerine sahip olarak gösterir.

Kopyalama ve yapıştırma aynı AJAX sayfada sorguya tarayıcı sayfasından (yerine) bir sonuç verdiğinde.

(Parametre olarak değişkenler ile AJAX sayfada ilk SQL kodu) aşağıdaki gibi kodu:

$qu="SELECT DISTINCT bk.bookname,bk.author,bk.publisher,bk.edition,bk.description,lam.article_name,bk.keywords,bk.qtyinstock FROM lib_article_master lam, lib_book_cd_master bk WHERE bk.bookname='$arr[2]' AND bk.author='$arr[3]' AND bk.publisher='$arr[4]' AND bk.article_id=lam.article_id";//here $arr[2],$arr[3],$arr[4] are variables from another query for comparison in AJAX page    
$r=QrySelect($qu);
echo " <br>  ".$qu;//query is echoed in browser
echo "<br>count : ".mysql_num_rows($r);//count of number of rows
$arr1=mysql_fetch_array($r);    
?>
    <table width="97%" border="0" >
      <tr 
        <td width="11%"><div align="left"><strong>Description </strong></div></td>
      </tr>       
    </table>
    <textarea name="txt_Keywords" style="width:90%; height:90px"><?php echo $arr1[4]; ?></textarea>

Ve çıkış şey değildir.

Tarayıcıdan alınan ve bir çıktı alıyorsanız değişkenler için değerleri ile birlikte kod geri koymak sorgu.

$qu="SELECT DISTINCT bk.bookname,bk.author,bk.publisher,bk.edition,bk.description,lam.article_name,bk.keywords,bk.qtyinstock FROM lib_article_master lam, lib_book_cd_master bk WHERE bk.bookname='Java Complete Reference' AND bk.author='Martin D Leuthen' AND bk.publisher='ABS Publications' AND bk.article_id=lam.article_id";//here $arr[2],$arr[3],$arr[4] are replaced as per browser output
$r=QrySelect($qu);
echo " <br>  ".$qu;//query is echoed in browser
echo "<br>count : ".mysql_num_rows($r);//count of number of rows
$arr1=mysql_fetch_array($r);    
?>
    <table width="97%" border="0" >
      <tr 
        <td width="11%"><div align="left"><strong>Description </strong></div></td>
      </tr>       
    </table>
    <textarea name="txt_Keywords" style="width:90%; height:90px"><?php echo $arr1[4]; ?></textarea>

Biz veritabanından satır doğru sayı ile yukarıdaki kodu için bir çıkış alıyorsanız.

Herhangi bir yardım büyük olacak.

2 Cevap

Got it at last... PHEW... Just include 'TRIM()' and comparison problem got solved .Don't know still how it managed to work when code was pasted from browser but anyways its working. giving the code below ...

$fr0=trim($arr[0], "");//'TRIMS' ALL UNWANTED SPACES FOR COMPARISON TO BE PERFECT
$fr1=trim($arr[1], "");
$fr2=trim($arr[2], "");
$fr3=trim($arr[3], "");
$bkr0=strtolower($fr0);//HERE EVERY SINGLE CHARCTER IS TURNED TO 'LOWER CASE' TO REMOVE ALL POSSIBLE WAYS OF ERRORS IN COMPARISON
$bkr1=strtolower($fr1);
$bkr2=strtolower($fr2);
$bkr3=strtolower($fr3);
//NOW COMPARISON FOR EACH VALUE IS DONE IN A WHILE LOOP BY 'mysql_fetch_row'

thank u all for your effort... it really meant a lot !

Sen gibi, sorgu oluşturmak için dize birleştirme kullanmalısınız

"SELECT * FROM table WHERE param = '" . $value . "'"

Yani, sorgu gibi görünmelidir:

$qu="SELECT DISTINCT bk.bookname,bk.author,bk.publisher,bk.edition,bk.description,lam.article_name,bk.keywords,bk.qtyinstock FROM lib_article_master lam, lib_book_cd_master bk WHERE bk.bookname='".$arr[2]."' AND bk.author='".$arr[3]."' AND bk.publisher='".$arr[4]."' AND bk.article_id=lam.article_id";

Ayrıca, mysql_real_escape_string () ile dize değişkenleri kaçmak için unutma.