PHP mySQL fıkra nasıl kullanılır?

4 Cevap php

"SecurityInfo" alanından şey geçmek için görünmüyor olabilir.

for ($k = 1; $k < $fieldscnt; $k++)
    {
    $selectsecurityname = mysql_query("SELECT `security name` FROM securityinfo WHERE symbol = '$symbol[$k]'") or die(mysql_error());
    $securityname = mysql_fetch_array($selectsecurityname);
    $sym = $symbol[$k]

    echo "<td>$securityname[$sym]</td>";

Temelde, "sembol" alanına bir maçı var satıra aramak istediğiniz, daha sonra aynı satırda "securityInfo" alanındaki değeri döndürür. Herhangi bir öneri büyük takdir

4 Cevap

Besides the answers of the others fixing parts of your example, there is another problem:
You (try to) grab a value from a table in your example. But when using it you access it as an array while it probably is just a string (a name).

Sabit her şeyi ile tam bir örnek şuna benzer:

for ($k = 1; $k < $fieldscnt; $k++)
{
    $sym = mysql_real_escape_string($symbol[$k]);
    $selectsecurityname = mysql_query("SELECT `security name` FROM securityinfo WHERE symbol='$sym'") or die(mysql_error());
    $securitynamearray = mysql_fetch_array($selectsecurityname);
    $securityname = $securitynamearray['security name'];

    echo "<td>$securityname</td>";
}

PS Kıvırcık parantez normal değişkenler için gereklidir, bu yüzden ben onları ihmal edilmez.

PPS Sen yerine mysql_fetch_array (sonunda) sizin fieldname ve içerdiği alanı ile ilgili sorunları önlemek için mysql_fetch_row kullanabilirsiniz:

$securitynamerow = mysql_fetch_row($selectsecurityname);
$securityname = $securitynamerow[0];

PHP tırnaklı dizge içinde değişkenleri nasıl kullanabileceğiniz hakkında bazı sınırlamalar vardır. Yani sizin gibi dizi elemanları yapıyorsun alınamıyor.

Ayrıca böyle SQL ifadeleri içine değişkenleri interpolate zaman kaçan kullandığınızdan emin olmalıdır.

$selectsecurityname = mysql_query("
    SELECT `security name` FROM securityinfo 
    WHERE symbol = '" . mysql_real_escape_string($symbol[$k]) . "'") 
  or die(mysql_error());

Yoksa bu şekilde yapmak daha mantıklı:

$sym = mysql_real_escape_string($symbol[$k]);
$selectsecurityname = mysql_query("
    SELECT `security name` FROM securityinfo 
    WHERE symbol = '{$sym}'") 
  or die(mysql_error());

$securityname tam bir dizi hemen değil. Eğer bir tuş yoluyla değerlerini çekin isterseniz, biz her döndürülen satır dolaşmak gerekiyor ve bizim kendi dizisine eklemek:

while ($row = mysql_fetch_array($selectsecurityname) {
  $myArray[] = $row;
}

$sym = $symbol[$k];
echo "<td>".$myArray[$sym]."</td>";

Hakkında daha fazla bilgi için mysql_fetch_array(), belgelerine bakın: http://php.net/manual/en/function.mysql-fetch-array.php

Bir dizede dizi indeksleri erişmek istiyorsanız, küme parantezi içine alın:

$a= array(
 'hello'=> 'world',
 'nice'=> 'one',
);

var_dump("This is the value of \$a['hello']: {$a['hello']}");

: Ve orijinal ifadeyi yeniden yazmak

for ($k = 1; $k < $fieldscnt; $k++)
    {
    $selectsecurityname = mysql_query("SELECT `security name` FROM securityinfo WHERE symbol = '{$symbol[$k]}'") or die(mysql_error());
    $securityname = mysql_fetch_array($selectsecurityname);
    $sym = $symbol[$k]

    echo "<td>{$securityname[$sym]}</td>";

Tabii ki, $symbol[$k] bir mysql deyimi kullanmak için doğru kaçtı emin olmak gerekir.