Получить строки из таблицы в str_replace - PullRequest
1 голос
/ 16 января 2012

У меня проблемы с получением данных из таблицы и использованием их для замены строк в HTML-тексте.Мне нужно извлечь последние 4 строки из таблицы, затем с помощью str_replace автоматически создать hrefs.Таким образом, один столбец - это URL, один - заголовок, один - описание и т. Д. Затем я создам 4 отдельных hrefs из каждой строки.То, что я пока имею, будет работать только для последнего результата.Как мне заставить это работать для всех 4?

$query = "SELECT * FROM LINKS ORDER BY id DESC LIMIT 4";
if(!$result = mysql_query($query)){
    // query failed, handle the error here...
    $errors[] = "A fatal error occurred and this page is non-functional at this time!";
    trigger_error("Query failed: $query<br /> Due to: " . mysql_error()); // application error
} else {
    // query worked
    if(!mysql_num_rows($result)){
        // no matching rows
        $main_content .= "No rows were found!\n";
    } else {
        // query matched at least one row, use the results from the query here...
        $row = mysql_fetch_assoc($result);
        $title1 .= $row['title'];
        $link1 .= $row['url'];
    }
}
//string replace arrays
$placeholders = array('LINK1','LINK2', 'LINK3','LINK4');
$replacevals = array($link1, $link2, $link3, $link4);

//replace the areas of the template with the posted values
$page = str_replace($placeholders,$replacevals,$template);

Я хотел бы иметь возможность выводить $ title2, $ link2, $ title3 и т. Д.

Ответы [ 2 ]

1 голос
/ 16 января 2012

Самый простой способ сделать это - сделать что-то вроде этого:

...
// query worked
if(!mysql_num_rows($result)){
  // no matching rows
  $main_content .= "No rows were found!\n";
} 
else {
  $urls_array = Array();
  // query matched at least one row, use the results from the query here...
  while ($row = mysql_fetch_assoc($result))
  {
    $urls_array[] = "<a href='" . $row['url'] . "'>" . $row['title'] . "</a>";
  }
}

Затем вы получите массив ссылок html с переменной $urls_array.

0 голосов
/ 16 января 2012

Используйте цикл с mysql_fetch_assoc(). Традиционно цикл while.

Вот пример, полученный из PHP документов :

while ($row = mysql_fetch_assoc($result)) {
    echo $row['title'];
}

Это должно начать вас. Добро пожаловать в StackOverflow.

...