2012-08-01 88 views
0

我正在重新访问php和mySQL很长一段时间。来自mysql的php链接

mysql_select_db($database_conn, $conn); 
$query = sprintf("SELECT DISTINCT Username FROM Entries "); 
$result = mysql_query($query); 
$row_results = mysql_fetch_assoc($result); 

<?php do { 
//$name = $row_results['Username']; 
//echo $name, "<br/>"; 
echo '<a href=\"$row_results['Username'],.php\">'; 
echo '$row_results['Username'],'s overview </a><br/>'; 
} 

while ($row_results = mysql_fetch_assoc($result)); ?> 

我想要做的是从结果中回显出链接的形式为username.php的用户名存储在数据库中的链接。

我用单引号和双引号转义/“中却得到不同的错误,我知道它的将是一个简单的事情;或”。 如果你能够解释一下如果有更好的方法可以做到这一点,那么什么是错的?

该查询是正确的,并且注释掉的代码也可以单独使用。

感谢

+3

请不要使用'mysql_ *'函数编写新代码。他们不再维护,社区已经开始[弃用程序](http://goo.gl/KJveJ)。请参阅* [红盒子](http://goo.gl/GPmFd)*?相反,您应该了解[准备好的语句](http://goo.gl/vn8zQ)并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能决定哪些,[这篇文章](http://goo.gl/3gqF9)会帮助你。如果你选择PDO,[这里是很好的教程](http://goo.gl/vFWnC)。 – 2012-08-01 13:16:31

+0

对不起听起来想,但我可以使用mysql_select_db? – Greyhounddad 2012-08-01 13:40:01

+0

关键是不使用'mysql_anything',其中包括'mysql_select_db'。整个mysql的扩展已经过时了。请参阅第一个评论以获得更好的选择。 – 2012-08-01 14:43:23

回答

-1

好像你有漂亮与混合起来的“和”有你真的应该避免使用以外的任何其他' - 它只会咬你从长远来看

。另外:你。与.串联,不与,

mysql_select_db($database_conn, $conn); 
$query = sprintf('SELECT DISTINCT Username FROM Entries '); 
$result = mysql_query($query); 
$row_results = mysql_fetch_assoc($result); 

do { 
    $name = $row_results['Username']; 
    echo $name.'<br/>'; 
    echo '<a href="'.$name.'.php">'; 
    echo $name.'\'s overview </a><br/>'; 
} while ($row_results = mysql_fetch_assoc($result)); ?> 
+0

如果你没有密切关注自己在做什么,它只会咬你。还有一个原因,这两个'''和'“'是有效的PHP – Matt 2012-08-01 13:17:16

+0

什么会是这样(说实话兴趣) - 我看不到的东西,比如'回声任何可行的用例?‘$ VAR’;' – 2012-08-01 13:24:19

+0

'$ arrCount = count($ myArr); echo“在我的数组中有$ arrCount项目。”;' – Matt 2012-08-01 13:25:45

0

尝试:

echo '<a href="'.$row_results['Username'].'.php">'; 
echo $row_results['Username'].'\'s overview </a><br/>'; 
+0

你不需要在第二行空字符串。'回声$ row_results [“用户名”] ...'将工作得很好。 – Matt 2012-08-01 13:16:29

+0

雅的权利,你可以在那里添加空格或其他字符串按要求。 – Omesh 2012-08-01 13:18:00

0

这里是你的错误:

  1. 即使你在你的SQL查询中使用DISTINCT不过,可能有多个条目,所以你必须使用一个while循环。
  2. 你在那里有一个逗号(可能是错字)。
  3. 您需要转义php变量。

这样算下来以上后,这是它应该是什么。

while ($row_results = mysql_fetch_assoc($result)) { 
    echo '<a href="' .$row_results["Username"]. '.php">'; 
} 
0
mysql_select_db($database_conn, $conn); 
$query = sprintf("SELECT DISTINCT Username FROM Entries "); 
$result = mysql_query($query); 
$row_results = mysql_fetch_assoc($result); 

<?php do { 
    //$name = $row_results['Username']; 
    //echo $name, "<br/>"; 
    echo '<a href="'.$row_results['Username'].'php">'; 
    echo $row_results['Username'].'\'s overview </a><br/>'; 
} 
while ($row_results = mysql_fetch_assoc($result)); ?> 
1

您无法通过单引号解析变量:

echo '<a href=\"$row_results['Username'],.php\">'; 

使用

echo '<a href="'.$row_results['Username'].'">'; 
+1

OP不需要逃避'“'如果他们在单一封装会quotes ...'echo ';' – Matt 2012-08-01 13:18:12

+0

@Matt Well spotted and corrected. +1 – Fluffeh 2012-08-01 13:18:57

+0

This is what I have working with the help off all of you '; echo $row_results['Username'].'\'s overview
'; } 而($ row_results = mysql_fetch_assoc($结果)); ?> 如果我用 回声'; echo $row_results['Username'].'\'s overview
'; 的联系是HTTP://www.domain.com \ “username.php” – Greyhounddad 2012-08-01 13:43:43

0

我看来像你的HTML字符串的串联和用户名不正确。

目前,你的字符串,你写的页面是

<a href=\"$row_results['Username'],.php\"> 

你需要做的是加入与价值从数据库中走出来的HTML内容。

这是可以做到像这样:

echo '<a href=\"'.$row_results['Username'].'.php\">'; 
echo $row_results['Username'].'\'s overview </a><br/>'; 

注意 ''以连接字符串两种药水,以及撇号的擒纵在的