PHP ile MySQL sütun parçasını almak

3 Cevap php

Örneğin, ben aşağıdaki tabloyu varsa:

+----+---+----------+
| id | a | position |
+----+---+----------+
| 0  | 0 | 0        |
| 1  | 0 | 1        |
| 2  | 1 | 4        |
| 3  | 1 | 9        |
| 4  | 1 | 6        |
| 5  | 1 | 1        |
+----+---+----------+

and I want to get an array that contains the first 100 values from position where a is 1 in ascending order, what would I do?
Im guessing something like this:

$col = mysql_fetch_array( mysql_query('
SELECT `position`
FROM `table`
WHERE `a`="1"
ORDER BY `position` ASC
LIMIT 100
'));

Ben şu diziyi almak için beklediğiniz:

+-------+-------+
| index | value |
+-------+-------+
| 0     | 1     |
| 1     | 4     |
| 2     | 6     |
| 3     | 9     |
+-------+-------+

but it doesn't work.
¿What should I do to make it work?
Thanks

3 Cevap

mysql_fetch_array() sorgunun sonucu bir seferde tek bir satır alır. Eğer bir döngü ihtiyacınız tüm satırları erişmek için. Gibi bir şey ...

while ($row = mysql_fetch_array($result, MYSQL_NUM)) 
{
  printf("index: %s  value: %s", $row[0], $row[1]);  
}

http://php.net/manual/en/function.mysql-fetch-array.php: Ben daha yakından bakmak istiyorum

Tamam, şey çift:

Fetch_array içinde mysql_query Koşu garip. Mysql_fetch_array bir diziye (zorlama gibi) sonucun bireysel hat koymak için bir sorgu sonucu çalışır. Eğer var gibi çalışan olduğunuzda tüm çalışıyorsa Yani, size sadece ilk satırı değil, ilk yüz satırları vermek için gidiyor.

İkincisi, alıntı oldukça garip görünüyor. "A" veri türüne bağlı olarak, çift tırnak neden olabilir. (Biraz MySQL kullandık mı, yanlış olabilir.)

Ben bunu yapmak için gidiyordu, ben böyle yapardım:

$result = mysql_query("SELECT index, position FROM table WHERE a = 1 ORDER BY position ASC LIMIT 100");

while($col = mysql_fetch_array($result)){
    *do something*
}

* Sorgu reformasyon için JYelton teşekkürler.

Sizin sorgu tamam.

Sorun mysql_fetch_array, sadece one row alır olmasıdır. Sen döngü tüm satırları gerektiği ve $col dizisine her değer katacak.

$result = mysql_query('...');

while($row = mysql_fetch_array($result, MYSQL_NUM))
{
    $col[] = $row[0];
}

Şimdi $col aşağıdakileri içerir:

Array
(
    [0] => "1"
    [1] => "4"
    [2] => "6"
    [3] => "9"
)