2016-03-31 5 views
0

Мне нужна строка из данных столбца. Но это провалилось.explode/implode из базы данных php

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

Но я хочу, выход =

bus 
car 
bike 
aabus 
car 
bike 
aabus 
car 
bike 
aabus 

ddd 
ee 

И я не

Примечание: Undefined смещение: 3 в C: \ XAMPP \ htdocs \ logs \ Новая папка (2) \ explode.php на линии 21

Примечание: Undefined смещение: 4 в C: \ XAMPP \ HTDOCS \ журналы \ Новая папка (2) \ explode.php на линии 22

Спасибо.

+0

mysql_ * устарела, пожалуйста, используйте mysqli_ * или PDO вместо – Nehal

ответ

0

Вы должны просто делать то, что хотите.

Вы хотите подключиться к базе данных, то это сделать:

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

Я предлагаю вам использовать Mysqli библиотеку вместо MySQL (MySQL является устаревшим в новых версиях PHP и полностью удалены в php7)

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

Вы хотите запросить на log таблицу, то сделайте это:

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

Вы хотите получать информацию от вашего результата, то сделать это:

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

Вы хотите, чтобы взорвать данные, то сделать это:

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; 
     } 
    } 
} 

Если вы хотите сохранить результат базы данных в переменных:

Если вы получаете только одну строку базы данных, вы можете сохранить их в переменных непосредственно:

$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; 
     } 
    } 
} 

И если у вас есть несколько строк базы данных, необходимо сохранить их в общем массиве:

$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, 
    ); 
} 

И, наконец, использовать это, чтобы увидеть, что структура окончательный массив имеет:

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

, если я хочу получить значение в переменных, таких как $ name; $ lastname; скажите, пожалуйста, пример – Agaard

0

Прежде всего нецелесообразно хранить отдельные значения в отдельной ячейке, и вы используете устаревшие функции mysql_. Я думаю, ваше решение может быть найдено в использовании Еогеаспа вместо IsSet части:

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

Если вы все еще хотите получить доступ к переменным $ имени, $ мамы, $ нет и $ AB, вы можете использовать IsSet для тех, в частности.

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

, если я хочу получить значение переменных сказать мне, например, пожалуйста – Agaard

+0

я получить его, спасибо так много. – Agaard

0

Try:

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; */ 
}