2016-03-31 19 views
0

Sütun verilerinden dize istiyorum. Ancak başarısız oldu.Veritabanından php patlat/gönder ph

enter image description here

<?php 
    $conn = mysql_connect("localhost", "nantawat", "12345678") or die(mysql_error()); 
    $select_db = mysql_select_db("my_db", $conn) or die(mysql_error()); 
    $select_tbl = mysql_query("SELECT * FROM log", $conn); 

    while ($fetch = mysql_fetch_object($select_tbl)) { 
     $r = $fetch->data; 

    $i = explode(",", $r); 

    if (!isset($i[1])) { 
     for ($j = 0; $j <= 200; $j++) { 
      $i[$j] = null; 
     } 
    } 

    $name = $i[0]; 
    $mama = $i[1]; 

    $no = $i[2]; 
    $a = $i[3]; 
    $b = $i[4]; 

    echo $name . "</br>"; 
    echo $mama . $no . $a . $b . "</br>"; 

} 

while ($data = mysql_fetch_object($select_tbl)) { 

    echo $data->data . "<br>"; 
} 

?> 

enter image description here

Ama çıkış istiyorum =

bus 
car 
bike 
aabus 
car 
bike 
aabus 
car 
bike 
aabus 

ddd 
ee 

Ve değil

Uyarı: offset tanımlanmamış: 3 C: \ xampp \ htdocs \ logs \ Yeni klasör (2) \ explode.php hattında 21

Uyarı: ofset tanımlanmamış: 4 C: \ xampp \ htdocs \ günlükleri \ Yeni klasör (2) \ explode.php hattında 22

Teşekkür ederim.

+0

mysql_ * *, mysqli_ kullanın lütfen artık kullanılmamaktadır veya i Değişkenler değeri elde istiyorsanız PDO yerine – Nehal

cevap

0

Sadece yapmak istediğiniz şeyi yapmalısınız.Veritabanına bağlanmak istediğiniz

o zaman yap:

$conn = mysql_connect("localhost", "nantawat", "12345678") or die(mysql_error()); 

Sana (MySQL yeni php sürümleri kullanımdan kaldırılmış ve tamamen php7 içinde kaldırılır)

$conn = mysqli_connect("localhost", "nantawat", "12345678", "my_db") or die(mysql_error()); 
yerine mysql mysqli kütüphanesini kullanmak önermek Sen log masaya sorgulamak istiyorum

, o zaman yap:

$select_tbl = mysqli_query($conn, "SELECT * FROM log"); 

Eğer sonucundan bilgi getirmesini istediğiniz, o zaman yap:

while ($row = mysqli_fetch_array($select_tbl)) { 
    echo $row['id_user']; 
    echo $row['id_doc']; 
    echo $row['date']; 
    echo $row['data']; 
} 

Verileri patlayabilir istiyorum, sonra yaparım:

while ($row = mysqli_fetch_array($select_tbl)) { 
    echo $row['id_user']; 
    echo $row['id_doc']; 
    echo $row['date']; 
    $data = explode(',', $row['data']); 
    foreach ($data as $d) { 
     if ($d !== '') { // because before first comma or after last can be empty 
      echo $d . PHP_EOL; 
     } 
    } 
} 

Eğer değişkenler veritabanı sonucu kaydetmek isterseniz:

Eğer veritabanının yalnızca bir satır alıyorsanız

doğrudan değişkenler kaydedebilirsiniz:

$id_user = ''; 
$id_doc = ''; 
$date = ''; 
$data = array(); 
id ($row = mysqli_fetch_array($select_tbl)) { 
    $id_user = $row['id_user']; 
    $id_doc = $row['id_doc']; 
    $date = $row['date']; 
    $tempData = explode(',', $row['data']); 
    foreach ($tempData as $d) { 
     if ($d !== '') { 
      $data[] = $d; 
     } 
    } 
} 

Ve veritabanının birden fazla satır varsa toplam dizide hepsini kaydetmek gerekir: son dizisi neler yapı görmek için bunu kullanın nihayet

$array = array(); 
id ($row = mysqli_fetch_array($select_tbl)) { 
    $id_user = $row['id_user']; 
    $id_doc = $row['id_doc']; 
    $date = $row['date']; 
    $data = array(); 
    $tempData = explode(',', $row['data']); 
    foreach ($tempData as $d) { 
     if ($d !== '') { 
      $data[] = $d; 
     } 
    } 
    $array[] = array(
     'id_user' => $id_user, 
     'id_doc' => $id_doc, 
     'date' => $date, 
     'data' => data, 
    ); 
} 

Ve:

echo '<pre>'; 
pront_r($array); 
echo '</pre>'; 
+0

, $ name gibi Değişkenlerde değer elde etmek istiyorsam; $ soyad; bana örnek ver lütfen – Agaard

0

Öncelikle virgülle ayrılmış değerleri tek bir hücrede depolamak akıllıca değildir ve kullanımdan kaldırılmış mysql_ işlevlerini kullanıyorsunuzdur. hayır $, hala değişkenleri $ isim, $ mama erişmek istiyorsanız

while ($fetch = mysql_fetch_object($select_tbl)) { 
    $r = $fetch->data; 
    $i = explode(",", $r); 
    foreach ($i as $q){ 
     echo $q . '<br/>'; 
    } 
} 

$ ve ab, sen olanlar için isset kullanabilirsiniz: Ben senin çözüm yerine isset kısmının foreach kullanarak bulunabilir düşünüyorum özellikle.

while ($fetch = mysql_fetch_object($select_tbl)) { 
    $r = $fetch->data; 
    $i = explode(",", $r); 
    if (isset($i[0])){ 
     $name = $i[0]; 
     echo $name . '<br>'; //only echo if it exists 
    } 
    if (isset($i[1])){ 
     $mama= $i[1]; 
     echo $mama. '<br>'; //only echo if it exists 
    } 
    //try it yourself for $no and $ab 
} 
+0

anladım – Agaard

+0

, çok teşekkür ederim lütfen örnek söyle. – Agaard

0

Dene:

while ($row = mysqli_fetch_array($select_tbl)) { 
    extract($row); 
    /* Using extract method can get the array key value as variable 
    Below variables are available 
    $id_user; 
    $id_doc; 
    $date; 
    $data; */ 
} 
İlgili konular