将值从SQL查询传递到php中的另一个SQL查询

时间:2016-01-17 08:41:37

标签: php sql variables hyperlink

我想使用来自MySQL的表的变量并将其传递给使用PHP的另一个SQL-Query。不能让它工作,我找不到原因。

以下是代码:

<html>
<head><title></title></head>
<body>
<div>

<?php

if (isset($_GET['read_blog_posts_scrolling']))
{

$result = mysql_query("SELECT blogpost.Blogpost_title, blog.Blogwriters_name, blogpost.Date 
FROM blog 
INNER JOIN blogpost ON blog.BlogID=blogpost.BlogID
WHERE blog.BlogID='$blogs_profile_id' // Here it is, it says undefined variable
ORDER BY blogpost.Date DESC")
or die(mysql_error());

while ($row = mysql_fetch_array($result)) {
			
			echo '<p>';
			echo "Titel: " . "<strong>" . $row['Blogpost_title'] . "</strong>" . " - Bloggare " . $row['Blogwriters_name'] . " " . $row['Date'] . '<br />';
			echo '<hr />';
			echo '</p>';

			}
}

?>

<?php

$result = mysql_query("SELECT BlogID, Blogwriters_name FROM blog")
or die(mysql_error());

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

$blogs_profile_id = $row['BlogID']; // I want to pass this value to above and use it in the query

echo '<p>';

echo $row['Blogwriters_name'] . '<br />';

//When clicking in this link I want the query to execute and values in BlogID to be passed

echo '<a href="?read_blog_posts">Choose blogwriter</a>';

echo '</p>';

?>

</div>
</body>
</html>

它说变量是未定义的。如何定义它并在单击a href-link时传递该值?

2 个答案:

答案 0 :(得分:1)

错误很明显。 未定义的变量

您没有在任何地方定义此变量 在选择陈述之前

$blogs_profile_id

我认为您需要在查询字符串中添加此变量并从$ _GET获取。

更新1:

您的代码中存在以下问题。

  1. 在查询字符串中缺少blog_profile_id。
  2. 未定义的变量意味着您正在使用变量但未定义。
  3. 使用mysql_ *扩展名不推荐使用
  4. <强>解决方案:

    替换它:

    echo '<a href="?read_blog_posts">Choose blogwriter</a>';
    

    。通过

    echo '<a href="?blog_id=$blogs_profile_id">Choose blogwriter</a>';
    

    而不是使用:

    if (intval($_GET['blog_id']) > 0) 
    { 
          $blogs_profile_id = intval( $_GET['blog_id']);
          $result = mysql_query("SELECT blogpost.Blogpost_title, blog.Blogwriters_name, blogpost.Date FROM blog INNER JOIN blogpost ON blog.BlogID=blogpost.BlogID WHERE blog.BlogID=".$blogs_profile_id."  ORDER BY blogpost.Date DESC") 
    or die(mysql_error());
    .....
    

答案 1 :(得分:0)

更改查询的顺序。第二个查询代码必须按顺序排在第一位

&#13;
&#13;
<html>
<head><title></title></head>
<body>
<div>

<?php

$result = mysql_query("SELECT BlogID, Blogwriters_name FROM blog")
or die(mysql_error());

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

$blogs_profile_id = $row['BlogID']; // I want to pass this value to above and use it in the query

echo '<p>';

echo $row['Blogwriters_name'] . '<br />';

//When clicking in this link I want the query to execute and values in BlogID to be passed

echo '<a href="?read_blog_posts">Choose blogwriter</a>';

echo '</p>';

?>


<?php

if (isset($_GET['read_blog_posts_scrolling']))
{

$result = mysql_query("SELECT blogpost.Blogpost_title, blog.Blogwriters_name, blogpost.Date 
FROM blog 
INNER JOIN blogpost ON blog.BlogID=blogpost.BlogID
WHERE blog.BlogID='"+$blogs_profile_id+"' // Here it is, it says undefined variable
ORDER BY blogpost.Date DESC")
or die(mysql_error());

while ($row = mysql_fetch_array($result)) {
			
			echo '<p>';
			echo "Titel: " . "<strong>" . $row['Blogpost_title'] . "</strong>" . " - Bloggare " . $row['Blogwriters_name'] . " " . $row['Date'] . '<br />';
			echo '<hr />';
			echo '</p>';

			}
}

?>



</div>
</body>
</html>
&#13;
&#13;
&#13;