Bir MySQL Tablo Alan Veri Çekme ve bir dizi içine koyarak

5 Cevap php

Ben bir veritabanı alanına bir dizi nasıl yükleneceğini gösteren öğreticiler bir sürü bulabilirsiniz ama ayrı kalemler olarak bir diziye bir alanda her girdiyi çekmek için nasıl anlamaya görünüyor olamaz. Yeterince basit sadece, herhangi bir yardım çalışması için alınamıyor görünüyor?

5 Cevap

$big_2_dimensional_array_of_data;

foreach ($big_array_of_data as $row) {
  $query = "INSERT INTO table_name (field1, field2, ...) VALUES($row[0], $row[1], ...)
  mysql_query($query);
}

Bence böyle bir şey

Birkaç kez onun sorusunu okuduktan sonra, ben onun ne yapmak istediğini tahmin böyle bir şey olur:

$query = "SELECT field1, field2, ... fieldn FROM table;";
$r = mysql_query($query,$conn);
$row = mysql_fetch_assoc($r);

Ben hala o tam olarak istediği ne olduğunu pek emin değilim ...

Bu soruya benim yorumlanması sorgulayıcı bir tabloya satır bir dizi takılı olmasıdır, ve bir seferde bir başka onları çıkıyorum işlemek için nasıl emin değil. (Bu soru aynı zamanda serisi ve sonra tek bir alana sıkışmış verilerine atıfta olabileceğini mümkün ... ama ben değil umut!)

Yani, burada birden fazla satır almak için:

$query = "SELECT field1, field2, ... fieldn FROM table;";
$r = mysql_query($query,$conn);
$data = array();
while($row = mysql_fetch_assoc($r)) {
    $data[] = $row;
}

Şimdi $data sizin sorgu tarafından döndürülen tüm satırları olurdu, bu yüzden böyle bir şey erişmek için çalışmak: $data[2]['field1']

Aşağıdaki örnekler hakkında SELECT bildirimi $select depolanır ve bağlantı $db depolanır varsayalım. Sonuçların bir iki boyutlu dizi $rows sonra saklanır.

Eğer kullanıyorsanız mysql (mysqli prosedürler için, sadece mysql_ ile değiştirin mysqli_):

$result = mysql_query($select, $db);

$rows = [];
while ($row = mysql_fetch_assoc($result) {
    $rows[] = $row;
}

mysqli sınıflarını kullanma:

$result = $db->query($select);

$rows = [];
while ($row = $result->fetch_assoc()) {
    $rows[] = $row;
}

$result->close()

Kullanma PDO,

$stmt = $db->query($select);
$stmt->execute();

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

Modern PDO kitaplığı kullanıyorsanız, PDO::FETCH_COLUMN ayarlandığında PDOStatement->fetchAll() function with the fetch_style parametresini kullanın.

O sayfa bir örneğe dayanarak:

$sth = $dbh->prepare("SELECT field FROM dbtable");
$sth->execute();
$array = $sth->fetchAll(PDO::FETCH_COLUMN);

Eski MySQL API kullanıyorsanız (tavsiye edilmez, örneğin hata denetimi atlar)

$array = array();
$result = mysql_query("SELECT field FROM dbtable");
while ($row = mysql_fetch_row($result)) {
     $array[] = $row[0];
}
mysql_free_result($result);