如何通过数字(没有id)从第一行回显?

时间:2017-08-27 07:04:17

标签: php mysql loops mysqli

所以我有一个mysql表,里面有值。我在页面上回显了尽可能多的元素,表中的列数也很多。我正在做这个循环,我想知道我如何能够回显所有这些元素(我在屏幕上按列数打印),一个标题存储在表中,每列都有这个。我如何得到印刷元素的数量,我应该回显什么标题(或行)? 我现在用ids做这个,但是如果我删除一个列怎么办?一个数字将丢失。所以我需要它而不使用ID。抱歉我的英语,我是匈牙利人 代码:

<?php 
        $mysqli = new mysqli("localhost","***","***","***");
        $result = $mysqli->query("SELECT * FROM `products`");
        for($i = 0; $i < $result->num_rows; $i++){
            $j = $i + 1;
            $res = $mysqli->query("SELECT * FROM `products` WHERE `id` =" . $j);
            $row=mysqli_fetch_array($res,MYSQLI_ASSOC);
            $product = $row["name"];
            echo '
                <div class="demo-graphs mdl-shadow--2dp mdl-color--white mdl-cell mdl-cell--4-col">
                    <img src="' . $row["imageurl"] . '" alt="Avatar" style="width:100%">
                    <h3 class="red-text">' .
                        $product 
                    . ' Alts</h3>
                    <a class=" mdl-navigation__link" href="edit.php?product=' . $product . '"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">edit</i> Edit</a>
                    <a class=" mdl-navigation__link" href="delete.php?product=' . $product . '"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">delete</i> Delete</a>
                </div>
            ';
        }
?>

1 个答案:

答案 0 :(得分:0)

我认为你可以这样做:

"SELECT * FROM table2 where id=$allrowsandcolumns" 

$allrowsandcolumns是数据库中包含第一个查询中的col1,col2,col3,col4的结果数组。在视觉上,它看起来像这样:

$allrowsandcolumns =  array ( 
        "col1" => value1
        "col2" => value2
        "col3" => value3
        "col4" => value4
    )

我认为我们可以同意尝试将数组放入字符串中是行不通的。相反,你可能想要这样的东西:

"SELECT * FROM table2 where id=" . $allrowsandcolumns["col1"]

或者哪个列是与table2匹配的id列。

至于所有行的回声...这对我来说就像你是编程新手一样。但嵌套很容易解释:

现在你有了这个:

$options=mysql_query("SELECT col1, col2, col3, col4 FROM table1");
while($allrowsandcolumns=mysql_fetch_array($options)) { 
    $options1=mysql_query("SELECT * FROM table2 where id=$allrowsandcolumns"); 
} 
while($rows=mysql_fetch_array($options1)) { 
    echo $rows['name'];
}

编辑(没有ID你可以做这样的事情)

$stmt = $mysqli->prepare("SELECT name FROM table1");
$stmt->execute();
$array = [];
foreach ($stmt->get_result() as $row)
{
    $array[] = $row['column'];
}
print_r($array);

结果如

Array
(
    [0] => name1
    [1] => name2
    [2] => name3
    [3] => name4
    [4] => name5
)