2015-04-01 38 views
0

請幫幫忙, $_GET方法不工作,同時通過URL

我得到了以下錯誤

警告傳遞字符串:mysql_fetch_array()預計參數1是資源,布爾給出。

當我通過URL $_GET訪問ID它的工作原理。

同時,通過此方法傳遞字符串(例如:Bihar)時查詢不起作用。

如何解決這個問題?

<?php 
    include('config.php'); 
    $qry = "SELECT districtName FROM pincode_data WHERE stateName =" . $_GET['st']; // here is the issue.. its not works for me. 
    // $qry = "SELECT districtName FROM pincode_data WHERE stateName =" . $_GET['id']; // This query works 
    // $qry = "SELECT districtName FROM pincode_data WHERE stateName = 'Bihar'"; // This query works 

    $result = mysql_query($qry); 

    while($row = mysql_fetch_array($result)) 
    { 
     echo "<li><a href='districtview.php?dist=".$row['districtName']."'> ".$row['districtName']."</a></li>"; 
    } 

    mysql_close(); 
?> 
+0

是什麼'的var_dump($ _ GET)'返回來寫?你確定'$ _GET ['st']'的值存在於你的數據庫中。 – Daan 2015-04-01 06:28:46

+0

首先''_GET ['st']'退出你的數據庫.. ??然後給你的HTML代碼.. – 2015-04-01 06:30:09

+0

而不是$ qry =「SELECT分區名稱FROM pincode_data WHERE stateName =」。 $ _GET [ 'ST'];試試$ qry =「SELECT districtName FROM pincode_data WHERE stateName = Bihar」;並檢查Bihar是否存在於您的數據庫中。如果它有效,那麼只有問題在你得到 – 2015-04-01 06:30:20

回答

0

我猜stateNamechar類型,所以你必須做出一個qoutes arraound YOUT值;

$qry = "SELECT districtName FROM pincode_data WHERE stateName ='" . $_GET['st']."'"; 

如果你不這樣做,你會得到一個語法錯誤在MySQL中,這就是爲什麼你在PHP中出現錯誤。

查詢:

$qry = "SELECT districtName FROM pincode_data WHERE stateName =" . $_GET['id']; 

作品,因爲ID是一個數值列,沒有必要對單引號。

但是,您不應該使用已棄用的mysql_* API。使用mysqli_*PDO與準備好的語句。

+0

然後爲什麼這樣執行像OP提到的:'WHERE stateName =「。$ _GET ['id'];'? – Daan 2015-04-01 06:32:23

+0

因爲ID是整數或數字,不需要引號 – Ceeee 2015-04-01 06:33:16

+1

@Ceeee我們在這裏討論'stateName'這個列! – Daan 2015-04-01 06:33:54

0
<?php 
    include('config.php'); 
    $qry = "SELECT `districtName` FROM `pincode_data` WHERE 
    `stateName` ='".$_GET['st']."'"; 
    $result = mysql_query($qry) or die(mysql_error()); 
    while($row = mysql_fetch_array($result)) 
    {?> 
    <li><a href="districtview.php?dist=<?php echo $row['districtName']?>"><?php echo $row['districtName']?></a></li> 
    <?php 
     } 
    mysql_close(); 
    ?> 
0

使用查詢

$qry = "SELECT districtName FROM pincode_data WHERE stateName ='" . $_GET['st']."'"; 

因爲$ _GET [ 'ST']是字符串,需要在雙quottes

+1

-1,首先'$ _GET'不是一個字符串,'$ _GET'是一個超全局的。其次爲什麼這個工作像OP提到的那樣:'WHERE stateName =「。$ _GET ['id'];'? – Daan 2015-04-01 06:35:02

+0

upvoted因爲$ _GET ['st']是一個字符串,答案是非常正確的 – Ceeee 2015-04-01 06:45:07

+0

只是爲了澄清大安並沒有錯! OP發佈錯誤信息:http://stackoverflow.com/revisions/29384287/1但它得到糾正! (@Ceeee) – Rizier123 2015-04-01 11:20:32

相關問題