Взорвать массив базы данных PHP


Я пытаюсь разбить абзац, извлеченный из массива базы данных, на отдельные слова. Это правильный способ сделать это, потому что в настоящее время он выдает ошибку, говоря, что explode() ожидает 2 параметра, поэтому он не должен собирать массив $row.

function words() {
        $query = mysql_query("SELECT text FROM table WHERE textID = 1");
        while($row = mysql_fetch_array($query)) {
            $e[] = explode(" ", $row);
            foreach($e as $r) {
                echo $r;
            }
        }
    }
4 3

4 ответа:

function words() {
        $query = mysql_query("SELECT text FROM table WHERE textID = 1");
        while($row = mysql_fetch_array($query)) {
            $e[] = explode(" ", $row[0]);
            foreach($e as $r) {
                echo $r;
            }
        }
    }

$row-массив. Выберите первый элемент для взрыва. Прочитайте документацию дляExplode .

function words() { 
        $query = mysql_query("SELECT text FROM table WHERE textID = 1"); 
        while($row = mysql_fetch_array($query)) { 
            $e[] = explode(" ", $row[0]); 
            foreach($e as $r) { 
                echo $r; 
            } 
        } 
    } 

Здесь вы используете неправильную архитектуру функций.
Вам вообще не нужна функция words(). explode достаточно.
В то время как вам очень нужна функция для получения данных из mysql, которая, по-видимому, не связана с вашими потребностями в explode.
Также обратите внимание, что функция никогда не должна делать никаких выходных данных, а только ретирнировать значения (за исключением функций, предназначенных только для выходных данных).

Таким образом, функция может быть

function dbgetvar($query){
  $res = mysql_query($query);
  if (!$res) {
    trigger_error("dbget: ".mysql_error()." in ".$query);
    return FALSE;
  }
  $row = mysql_fetch_row($res);
  if (!$row) return NULL;
  return $row[0];
}

И ваш код станет таким же простым, как

$text  = dbgetvar("SELECT text FROM table WHERE textID = 1");
$words = explode(" ",$text);
foreach ($words as $w) echo $w;
function words() {
        $query = mysql_query("SELECT text FROM table WHERE textID = 1");
        while($row = mysql_fetch_array($query)) {
            $e = explode(" ", $row);
            foreach($e[0] as $r) {
                echo $r;
            }
            }
    }

Строка $заполняется полностью значением поля, поэтому $e[0] является правой переменной.