değişken geçirilen değil?

4 Cevap php

Bu kodu vardır

while($row = mysql_fetch_row($result))
{
echo '<tr>';
$pk = $row[0]['ARTICLE_NO'];

foreach($row as $key => $value)
{
echo '<td><a href="#" onclick="GetAuctionData(\''.$pk.'\')">' . $value . '</a></td>';
}

hangi pk alır. pk sonra bu ile axjax kısmına aktarılır:

function GetAuctionData(pk)
{
.....
var url="get_auction.php?"
url=url+"cmd=GetAuctionData&pk="+pk;

Ve nihayet ayrı bir php dosyasında kullanılan:

$pk = $_GET["pk"];
$sql="SELECT * FROM Auctions WHERE ARTICLE_NO ='$pk'";

kendisi tarafından kullanılması ve parametreleri geçerken, ikinci php dosyası çalışıyor. Aynı şekilde hiçbir yerde hata vardır. Sorun geçen veya üreten $ pk ile görünüyor, 2 ile incremednted ediliyor $ pk çıktı dosya sonucu bağlantıları gibi, örneğin 4, 6, 8 vb

Bu neden oluyor anlayamıyorum.

4 Cevap

mysql_fetch_row link Altdizilim yoktur. Bu, vb sonraki 1 olarak 0 olarak ilk alan dönecektir

Ile deneyin

$pk = $row[0];

Bu kolayca foreach ile kullanılabilir

while($row = mysql_fetch_assoc($result))
$pk = $row['ARTICLE_NO'];

ya bu size birleşmeli ve sayılı dizi hem de verir.

while($row = mysql_fetch_array($result, MYSQL_BOTH))
$pk = $row['ARTICLE_NO'];

EDIT: Based on

$result = mysql_query("SELECT SELLER_ID, ACCESSSTARTS, ARTICLE_NAME FROM {$table}");

Eğer bir değer istediğiniz satırı eklemek gerekiyor. ;)

$result = mysql_query("ARTICLE_NO, SELECT SELLER_ID, ACCESSSTARTS, ARTICLE_NAME FROM {$table}");

BTW: Im oldukça emin bu iç içe döngü ne istediğinizi üretmek değildir. Her article_no 3 link alırsınız. Metin olarak seller_id ile ilk, ikinci metin accessstarts olan ve aynı href ile son bağlantı metin article_name olacaktır.

Belki böyle bir şey?

while($row = mysql_fetch_assoc($result))
{
    $pk = $row['ARTICLE_NO'];
    echo '<td><a href="#" onclick="GetAuctionData(\''.$pk.'\')">' . $row['ARTICLE_NAME'] . '</a></td>';
}

Troelskn söylediği gibi mysql_fetch_row dönüyor ne kadar biraz karışık gibi görünüyor.

mysql_fetch_row $ makale [0], $ makale [1] vs dönecektir

da vardır:

mysql_fetch_assoc // return $article['ARTICLE_NO'], $article['otherfield'] etc

mysql_fetch_array // returns an array that is effectively the above two array_merge'd
mysql_fetch_object // returns a stdclass object, as if mysql_fetch_assoc had been passed to get_object_vars()

Bu ışığında, biraz refactor gerekir ....

Ben bu ne bekliyoruz sanmıyorum:

$pk = $row[0]['ARTICLE_NO'];

Ile deneyin:

$pk = $row['ARTICLE_NO'];

Burada diğer tepkiler yeterince sorunu cevaplamak gerekir, ama ben sadece size gelecekte benzer bir sorun haline çalıştırmak gerekir yardımcı olabilecek ekstra bir hata ayıklama ipucu eklemek istedim.

Sen sadece çalıştığınız değişkenler hakkında bilgi ekranı yazdırarak bazı çok temel hata ayıklama yapabilirsiniz. (PHP IDE genellikle daha güçlü hata ayıklama özelliklere sahip olacak, ancak bu bir sorun gibi bir şey için, bu yöntem iyi olacak)

Your original code:

while($row = mysql_fetch_row($result))
{
    echo '<tr>';
    $pk = $row[0]['ARTICLE_NO'];

    foreach($row as $key => $value)
    {
        echo '<td><a href="#" onclick="GetAuctionData(\''.$pk.'\')">' . $value . '</a></td>';
    }
}

Sen GetAuctionData işlevi düzgün bir şekilde değişken almıyor fark. Bu satırı ekleyin:

$pk = $row[0]['ARTICLE_NO'];
var_dump($pk);

Dosyayı çalıştırdığınızda çıktı bakarsanız, muhtemelen $ pk boş olduğunu söyleyerek görmek istiyorum. Hmmm, bu işe yaramadı. Hadi bunu biraz değiştirmek edelim:

$pk = $row[0]['ARTICLE_NO'];
var_dump($row);

Şimdi böyle bir şey görmek istiyorum:

array(2) {
  [0]=> string(2) "12"
  [1]=> string(7) "myValue"
}

Aha! Artık çalıştığınız tam olarak ne görebilirsiniz, size ilk etapta kullanmak istedim kod olduğunu görmek istiyorum:

$pk = $row[0];

var_dump() senin arkadaşın. Diziler ile çalışıyorsanız, print_r(), benzer bilgi verir, ama güzel biçimlendirilmiş.

İyi şanslar.