2013-08-13 3 views
-1

Я пытаюсь понять две вещи:PHP Массивы и MySQLi нескольких запросов

  1. Если возможно следующее;
  2. Что я делаю неправильно с его внедрением.

У меня есть массив в PHP, который вручную закодированный:

$q[1] = 'Monday'; 
$q[2] = 'Tuesaday'; 
$q[3] = 'Wednesday'; 

У меня есть индивидуальный Mysqli multi-query что вернуть другой набор данных. Как я итерацию хотя мультиселекторе запроса и эхо результатов, я должен включать информацию, которая находится в пределах вручную кодированного массива PHP, как описано выше - мой текущий код выглядит следующим образом:

echo "<tr><td class='qnum'><span class='bold'>". $n .".</span></td> 
<td width='450px' > ". $q[$n] ." (<span class='italics'>". $row[0] ."</span>)</td> 
<td class='set2'>".$row[9]."%</td>"; 

У меня есть указатель $n, что увеличивает поскольку запрос mysqli проходит через результаты, и я использую $q[$n], чтобы попытаться извлечь соответствующие данные из PHP-запроса, но это не сработает. Однако, что странно, это то, что я меняю $q[1] = 'Monday'; на $q = 'Monday';, а затем ссылаюсь на $q в своем заявлении эха о - он работает !!!

Я также включил Mysqli код ссылки ниже:

if ($mysqli->multi_query($query)) { 
    $n = 0; 

     do { 
      if ($result = $mysqli->store_result()) { 
     $i = 1; 
     $p = 1; 

    while ($row = $result->fetch_row()) { 
     $n++; 

echo "<tr><td class='qnum'><span class='bold'>". $n .".</span></td> 
<td width='450px' > ". $q[$n] ." (<span class='italics'>". $row[0] ."</span>)</td> 
<td class='set2'>".$row[9]."%</td>"; 

       echo "</tr>"; 
     $result->free(); 
    } 

    } while ($mysqli->next_result()); 
} 

$mysqli->close(); 

Любые мысли, идеи, предложения о том, где я неправильно?

+0

, если это правильный фрагмент кода, то у вас есть серьезная ошибка синтаксиса, есть 2 петли, которые не закрыты, а также 2, если условия, которые не закрыты – DevZer0

+0

Hi DevZer0 - это верхняя часть кода - это огромный кусок кода, на самом деле долго писать здесь. Петли и условия должным образом закрыты. –

+1

хорошо, не видя, что происходит с остальной частью вашей петли, трудно сказать, что не так, можете ли вы воспроизвести ту же проблему в разумном наборе строк, чтобы опубликовать здесь – DevZer0

ответ

-1

Я не гарантировал, что первый ручной массив PHP был прав - ошибка rookie!

$q = array(1 => 'Monday', 'Tuesday', 'Wednesday'); 
+0

Почему голос? –

0

Похоже, что ваш цикл do-while немного нечетный ... не должен быть синтаксисом do { ... } while(condition); Вы, кажется, используете смесь из двух.

Кроме того, ваш $q имеет только три элемента ... Если вы уверены, что вы хотите использовать его с $n, что приращение в цикле, возможно, использовать его по модулю, так что всегда $q индекс $n?

Пример: $q[$n % count($q)]

Я просто рыбалка здесь, потому что я не совсем уверен, что это ваша цель.

+0

Есть $ q [1] до $ q [50] - так что нет смысла публиковать все из них! Я сделал три для иллюстративных целей.Массив массива имеет 50, а также mysqli возвращает 50 - они совпадают. Следовательно, код '$ q [$ n]'. –

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