2017-12-12 9 views
0

私は小さなプロジェクトに取り組んでおり、立ち往生しています。3eの項目をPHPで変更します

私のデータベースには、IDと氏名を持つアイテムがいくつかあります。いくつかのPHPで私は私のWebページに情報を取得します。

$sql = "SELECT * FROM menu WHERE active = 'yes'"; 
    $result = mysqli_query($conn,$sql); 
    while ($row = mysqli_fetch_row($result)){ 
     echo "<input type='number' class='res-menu-pick' 
     placeholder='".$row[1]."' name='".$row[0]."' min='0' max='16'>"; 
} 

これは完璧に動作しますが、一つの問題がある。.. すべての私の項目がどのような私が欲しいのは、行ごとに3項目..です1行に印刷されています。

今:

= = = = = = = =

私が欲しいもの:

= = =
= = =
= =

私が試してみましたいくつかのCSSを使用する - >

.res-menu-pick:nth-child:after { 
    content: "\A"; 
    white-space: pre; 
} 

しかし、これは動作しません。

この問題を解決する方法はありますか?私は自分の入力のCSSを変更することはできません。なぜなら、それはすべての入力で変更されるからです。

おかげで、

+0

ごエコー(例えば、「DIV」で入力)で、あなたの結果をフォーマットする「
」や他のHTML地上子を追加しよう: 'エコー: "
";' –

+0

'echo"
";をループ内に追加しますが、3回ごとに繰り返します(カウンタを保持する必要があります)。このような厳格なレイアウトのアイデアを放棄し、応答するdivを使用して、クライアントのデバイス/ブラウザウィンドウのサイズに合わせて調整し、複数の項目を1行に収まるように表示します(3欲しい)。 – ADyson

+0

これは動作しません、
はdisplay:blockと同じになります。 私は3e(6e、9eなど)だけを2番目の行に移動します。 – Loxiuras

答えて

1

は、次のことを試してください。

$sql = "SELECT * FROM menu WHERE active = 'yes'"; 
$result = mysqli_query($conn,$sql); 
$count = 1; 
while ($row = mysqli_fetch_row($result)){ 
    echo "<input type='number' class='res-menu-pick' 
    placeholder='".$row[1]."' name='".$row[0]."' min='0' max='16'>"; 

    if (count == 3) { 
     echo "<br />"; 
     count = 1; 
    } 
    else { 
     count++; 
    } 
} 
+1

作業中! おそらくCSS修正が考えられます。 nth-child(3)ですべて試しても動作しませんでした。 ありがとうございました! – Loxiuras

+1

'if(($ count%3)== 0)'も条件として使用できますか? (そしてelseとcountの再起動なしで)。ちょうど、私はしばしばモジュロ演算子を使用しません! –

+0

あなたはモジュロを使うことができますが、モジュロは高価な演算です。私は彼が何を望んでいるのか分からないが、小さなスクリプトの場合はモジュロを使うことができる。 – StuiterSlurf

関連する問題