2016-04-02 14 views
1

Bir URL parametresine bağlı olarak verileri alan bir web sayfası yapıyorum.PHP URL'yi Değiştirdikten Sonra MySQL'den Veri Alınıyor

İki olası parametre vardır.

1: $_GET['id']

2 kullanılarak alınır id: Ben id beri bir cazibe gibi çalışır id parametresini kullanarak veri alma am zaman $_GET['name']

kullanılarak alındığında hangi name daima sayısal bir değerdir ve asla alfabetik metin.

Ancak name parametresini kullanarak veri almaya çalışırken sonuç almayacağım.

Ad parametresi, makalenin başlığı parametresi olan bir makale için veritabanı denetleniyor.

http://example.com/safetyarticles/view.php?name=9-clues-to-solving-this-parameter-issue

Ve veritabanında makaleleri ad şu şekildedir::

Örneğin bir URL name parametresi şu şekilde görünecektir 9 Clues To Solving This Parameter Issue

Zaten kaldırmak için bazı satırları yazdım URL'm parametresindeki boşluklar boşluklara ve ardından her kelimeyi makale adıyla eşleştirmek için büyütür, ancak hiçbir sonuç alamıyorum.

$conn = getConnected("safetyArticles"); 
if(isset($_GET['id'])) { 
    $articleID = $_GET['id']; 
    $articleQuery = mysqli_query($conn, "SELECT * FROM currentArticles WHERE article_id = $articleID"); 
    $article = mysqli_fetch_array($articleQuery); 
} 
else if(isset($_GET['name'])) { 
    $articleName = $_GET['name']; 
    $articleName = preg_replace("/[\-]/", " ", $articleName); // Replace dashes in URL parameter with spaces 
    $articleName = ucwords($articleName); // Uppercase first letter of each word of URL parameter 
    $articleQuery = mysqli_query($conn, "SELECT * FROM currentArticles WHERE article_name = $articleName"); 
    $article = mysqli_fetch_array($articleQuery); 
} 

bilgim boşluklarla çizgi değiştirilmesi ve veritabanı ve $articleName maçında article_name yapmalıdır her kelimeyi büyük harf için:

Bu

yazdım koddur.

Çıktının ne olduğunu görmek için echo $articleName numaralı bir satır ekledim ve sonuç, veritabanındaki başlıkla eşleşen ancak sonuçların çekilmediği 9 Clues To Solving The Mystery Of The Pilot Car oldu.

Sadece başlıkların gerçekten aynı olduğunu göstermek için bunu doğrudan veritabanından kopyaladım: 9 Clues To Solving The Mystery Of The Pilot Car.

Her şey gerektiği gibi eşleştiğinden dolayı bir kayıp yapıyorum.

cevap

2

sorgudaki değişkenlerin etrafında '' gerekir: '$articleName' örn: '$ ArticleName': Sorgunuzda

$articleQuery = mysqli_query($conn, "SELECT * FROM currentArticles WHERE article_name = '$articleName'"); 
+0

Bu işe yaradı. Şimdi ben id idraranında kendileri olmadan çalıştığı için biraz kafam karıştı ve bunlarla ihtiyacı var. Sayı ve alfabe arasındaki fark bu mu? –

+0

muhtemelen - ancak $ articleID değerini '$ articleID' olarak değiştirmelisiniz – gavgrif

+0

Yapacak. Yardım için teşekkürler. SO'nun bana izin verdiği anda kabul edeceğim. –

1

$ ArticleName böyle alıntı gerekmektedir. örneğin $ articleQuery = mysqli_query ($ conn, "SELECT * FROM currentArticles WHERE article_name = '$ articleName'");

+0

Teşekkürler. İlk cevap doğruydu, ancak web sitesinde zaman kısıtlamaları nedeniyle kabul edemedim.2 cevap kabul edemediğim için burada bir zevk :) –

+0

@JesseElser zevkimi. –

İlgili konular