PHP MYSQL-значение Echo mysql, содержащее переменную PHP?


Я пытаюсь получить переменную для отображения, когда она используется как часть значения внутри таблицы mysql.

$variable = 'cool';

MYSQL FIELD VALUE

"This is '.$variable.' wow"

Когда я повторяю это значение, оно отображается как:

This is '.$variable.' wow

Я хочу, чтобы он отображался как:

This is cool wow

В чем тут фокус?

@Mark извините, я новичок в этом

$linkQuery3 = 'SELECT model
FROM models
WHERE model_id = "'.$pageModel.'"
';
$sql15 = mysql_query($linkQuery3) or die(mysql_error());
if (mysql_num_rows($sql15) == 0) {
    die('No results.');
} else {
    while($row = mysql_fetch_assoc($sql15)) {
     $model = stripslashes($row['model']);
    }
}

$linkQuery2 = 'SELECT l.link , l.desc , l.domId , d.domain FROM links l INNER JOIN domains d ON d.domId = l.domId WHERE l.catId="'.$pageCat.'" && (l.modId="1" || l.modId="'.$pageModel.'") ORDER BY domain
';
$sql3 = mysql_query($linkQuery2) or die(mysql_error());
if (mysql_num_rows($sql3) == 0) {
    die('No results.');
} else {
    $pageContent .= '';
    while($row = mysql_fetch_assoc($sql3)) {
     $linkAd = ($row['link']);
     $linkDesc = ($row['desc']);
     $linkDomain = ($row['domain']);
     $pageContent .= '
        <li><a href="'.$linkAd.'" target="_tab">'.$linkDesc.' '.$linkDomain.'</a></li>
    ';
    }
}
5 2

5 ответов:

Здесь вы пытаетесь воспроизвести строку из базы данных, но заменяете текст-заполнитель определенным значением. Вы не можете сделать это, просто сохраняя строку, которую анализатор PHP обработает определенным образом, и ожидая, что PHP обработает ее таким же образом, когда он видит эту строку во время выполнения.

Вот что я предлагаю: используйте более простой разделитель для части строки, которую вы хотите заменить, например:

"This is :variable: wow"

И используйте str_replace(), чтобы повторить правильную вещь. (Вы можете также используйте sprintf() для той же цели.)

echo str_replace(':variable:', $variable, $mystring);

(здесь $mystring содержит строку из базы данных.)

Используйте двойные кавычки:

echo "This is " . $variable . " wow";

Вам нужно будет eval() строка, которую вы получаете из MySQL. Нет другого способа получить строку, которая будет интерпретироваться как PHP-код. однако eval() следует избегать любой ценой. Вам было бы лучше использовать систему шаблонов или простую систему подстановки строк, чем eval()ING материал, выходящий из базы данных.

Попробуйте это:

"This is '" . $variable . '" wow"

Это может быть чертовски проще. Просто сделай это...

echo "This is '$variable' wow";

Это все, что вам нужно. Нет необходимости покидать контекст строки и возвращаться обратно. Внешние двойные кавычки будут оценивать значение переменной. Если бы вы использовали одинарные кавычки снаружи, то он был бы оценен буквально как $variable, а не его значение.

Таким образом, вы бы написали оператор select следующим образом:

$sql = "SELECT * FROM fancytbl WHERE id = '$id' AND myhands = 'diamonds'";

Смотрите, это просто.