2013-09-09 4 views
0

Мне нужно разбить массив на куски, но это результат запроса mysql, который содержит несколько значений. Это выглядит следующим образом:Использование php array_chunk с mysqli_fetch_array

$minQuery = "SELECT typeName, typeID FROM invTypes WHERE groupID = '18'"; 

$con = mysqli_connect('127.0.0.1', $username, $password, 'sdeodyssey107'); 
$result = mysqli_query($con,$minQuery); 

Что мне нужно сделать, чтобы быть в состоянии разорвать этот результат вверх в ряды 3 в то время. Я не могу найти способ заставить array_chunk работать с несколькими значениями, и все, что я пробовал, когда петли заканчиваются, я повторяю одно и то же значение несколько раз в строке.

Кто-нибудь знает хороший способ справиться с этим? Линия, которая будет печататься выглядит следующим образом:

echo '<td align="right">' . $typeName . ': <input type="text" size="25" name="' . $typeName . '|' . $itemID . '"';if(isset($_GET["$cleanTypeName|$itemID"])) echo 'value="'.$_GET["$cleanTypeName|$itemID"].'"';echo '></td>'; 

... так что мне нужно иметь оба значения доступны каждый раз, когда я вызвать функцию, которая печатает эти строки ....

+0

Осторожно, вы открываете себя для атак XSS. Всегда используйте 'htmlspecialchars()' для любых переменных данных, которые вы используете в контексте HTML. – Brad

+0

Я не понимаю, что именно вы ищете ... Не могли бы вы пояснить? Вы хотите, чтобы в выходной таблице было три столбца на строку? Как: ' ...' – Steven

+0

Точно, Стивен. Мне нужно удалить , затем 3 элемента из mysqli_query, затем. Я должен был указать это. – Raketemensch

ответ

0
<?php 
    $i = 1; 
    $count = count($result) - 3; 
    echo '<tr/>'; 
    foreach($result as $key => $value) 
    { 
    if ($i % 3 === 0 && $i > 3) echo '<tr>'; 
    foreach ($value as $subKey => $subValue) 
    { 
    echo '<td align="right">' . $value['typeName'] . ': <input type="text" size="25" name="' . $value['typeName'] . '|' . $value['itemID'] . '"';if(isset($_GET["$cleanTypeName|$itemID"])) echo 'value="'.$_GET["$cleanTypeName|$itemID"].'"';echo '></td>'; 
    } 
    if ($i % 3 === 0 && $i < $count) echo '</tr>'; 
    $i++; 
    } 
    echo '</tr>'; 
+0

будет напечатано всего 3 строки? –

Смежные вопросы