Взорвать массив базы данных 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 ответа:
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;