如何选择MySQL表中的列并使用PHP MySQL\u结果获取值?
我有下面的图表如何选择MySQL表中的列并使用PHP MySQL\u结果获取值?,php,mysql,sql,Php,Mysql,Sql,我有下面的图表 //reference type table +---+-----------+---------+ |ID |Article_ID |Ref_Types| +---+-----------+---------+ | 1 | 1 | article | | 2 | 1 | book | | 3 | 1 | article | | 4 | 1 | article | | 5 | 2 | book
//reference type table
+---+-----------+---------+
|ID |Article_ID |Ref_Types|
+---+-----------+---------+
| 1 | 1 | article |
| 2 | 1 | book |
| 3 | 1 | article |
| 4 | 1 | article |
| 5 | 2 | book |
+---+-----------+---------+
//book references table
+---+-----------+--------+
|ID |Article_ID |Title |
+---+-----------+--------+
| 1 | 1 | book1 |
| 2 | 1 | book2 |
| 3 | 2 | book3 |
| 4 | 2 | book4 |
| 5 | 2 | book5 |
+---+-----------+--------+
//article references table
+---+-----------+-----------+
|ID |Article_ID |Title |
+---+-----------+-----------+
| 1 | 1 | article1 |
| 2 | 1 | article2 |
| 3 | 2 | article3 |
| 4 | 2 | article4 |
| 5 | 2 | article5 |
+---+-----------+-----------+
$sqlarticle
似乎不起作用
我想显示为:
+-----------+----------+
|Article_ID |Reference |
+-----------+----------+
| 1 | article1 |
| 1 | book1 |
| 1 | article2 |
| 1 | article3 |
+-----------+----------+
我知道这是一个很长的问题,对于专家或有经验的人来说,这是一个非常琐碎的问题,但这正是我被困的地方
SELECT
*
FROM
reftypes R
WHERE
Article_ID=your_id
LEFT JOIN books B ON (B.Article_ID = R.Article_ID AND R.Ref_Types = 'book')
LEFT JOIN articles A ON (A.Article_ID = R.Article_ID AND R.Ref_Types = 'article')
ORDER BY
R.id ASC;
我认为,即使数据库建模错误
那么followin模型呢
$result=mysqli_query("select ref_types from reference type");
while($row=mysqli_fetch_array($result))
{
$table=$row[0];
$result1=mysqli_query("select * from $table");
while($row1=mysqli_fetch_array($result1))
{
var_dump($row1);
}
}
“尽管提问者尤其应该尊重任何形式的努力和投入,但我很感激——我不明白为什么有些人会认为提问者和他们自己一样消息灵通或经验丰富,或者更糟糕的是,从更高的层次上说。“”
不管怎样,我的问题是要一个接一个地获得价值观,下面是我是如何做到的
$data=array();
$sql=mysql_query("SELECT * FROM reftypes
WHERE Article_ID=1 ORDER BY ID ASC");
while($row = mysql_fetch_array($sql)){
$data[]=$row[2]; // i store in an array so that i can use later..
}
$articlecount=0;
$bookcount=0;
foreach ($data as $value) {
switch ($value) {
case "article":
$sqlarticle=mysql_query("SELECT RefArticleTitle
FROM ref_article
WHERE $article_ID=Article_ID
ORDER BY ID ASC");
$articles= mysql_result($sqlarticle, $articlecount);
echo $articles;
echo "\n";
$articlecount++;
break;
case "book":
$sqlbook=mysql_query("SELECT RefBookName
FROM ref_book
WHERE $article_ID=Article_ID
ORDER BY ID ASC");
$books= mysql_result($sqlbook, $bookcount);
echo $books;
echo "\n";
$bookcount++;
break;
...
...
结果,我得到了我所需要的
+-----------+----------+
|Article_ID |Reference |
+-----------+----------+
| 1 | article1 |
| 1 | book1 |
| 1 | article2 |
| 1 | article3 |
+-----------+----------+
感谢对该主题感兴趣的人。这是PHP吗?请正确标记。
reference\u type
表的用途是什么?你们真的应该规范化你们的数据库来解决这些问题。嗨,费埃拉,因为当用户添加新的引用时,他首先选择它是哪种类型。这是必需的,因为文章和书有不同的属性。为什么会有mysql\u结果?为什么不能使用熟悉的mysql\u fetch\u数组呢?您想要一个奇怪的结果,因为对于article id=1,您有book1、book2、article1、article2。这真是“原始”。你应该解释“加入”是什么@YvesMartin“应该”?这里是兵营,你是指挥官吗?如果没有,请改变音调。顺便说一句,欢迎你自己解释任何你认为必要的东西。对不起-我是说“五月”-我正在写一个答案,当我看到你答案的“第一版”时放弃了。。。SQL新手可能不理解这样的请求。那么我的评论是什么呢?你是如何连接这些表的?
$data=array();
$sql=mysql_query("SELECT * FROM reftypes
WHERE Article_ID=1 ORDER BY ID ASC");
while($row = mysql_fetch_array($sql)){
$data[]=$row[2]; // i store in an array so that i can use later..
}
$articlecount=0;
$bookcount=0;
foreach ($data as $value) {
switch ($value) {
case "article":
$sqlarticle=mysql_query("SELECT RefArticleTitle
FROM ref_article
WHERE $article_ID=Article_ID
ORDER BY ID ASC");
$articles= mysql_result($sqlarticle, $articlecount);
echo $articles;
echo "\n";
$articlecount++;
break;
case "book":
$sqlbook=mysql_query("SELECT RefBookName
FROM ref_book
WHERE $article_ID=Article_ID
ORDER BY ID ASC");
$books= mysql_result($sqlbook, $bookcount);
echo $books;
echo "\n";
$bookcount++;
break;
...
...
+-----------+----------+
|Article_ID |Reference |
+-----------+----------+
| 1 | article1 |
| 1 | book1 |
| 1 | article2 |
| 1 | article3 |
+-----------+----------+