2015-02-05 3 views
0

В первом случае я буду получать полный спектр:Выход базы данных PHP. Массивы

<?php 
 

 
    $servername = "localhost"; 
 
    $username = "root"; 
 
    $password = ""; 
 
    $dbname = "test.com"; 
 

 

 
    $conn = mysqli_connect($servername, $username, $password, $dbname); 
 

 
    if (!$conn) { 
 
     die("Connection failed: " . mysqli_connect_error()); 
 
    } 
 

 
    $sql = "SELECT * FROM articles WHERE writer='$w_name' "; 
 
    $result = mysqli_query($conn, $sql); 
 

 

 
    if (mysqli_num_rows($result) > 0) { 
 

 
     while ($row = mysqli_fetch_assoc($result)) { 
 
      echo $row[header]; 
 
     } 
 
    } 
 
    mysqli_close($conn); 
 

 
    ?>

Во втором случае, я буду получать только 1-значение из массива:

<?php 
 

 
    $servername = "localhost"; 
 
    $username = "root"; 
 
    $password = ""; 
 
    $dbname = "test.com"; 
 

 

 
    $conn = mysqli_connect($servername, $username, $password, $dbname); 
 

 
    if (!$conn) { 
 
     die("Connection failed: " . mysqli_connect_error()); 
 
    } 
 

 
    $sql = "SELECT * FROM articles WHERE writer='$w_name' "; 
 
    $result = mysqli_query($conn, $sql); 
 

 

 
    if (mysqli_num_rows($result) > 0) { 
 

 
     while ($row = mysqli_fetch_assoc($result)) { 
 
      $q=$row[header]; 
 
     } 
 
    } 
 
    mysqli_close($conn); 
 

 
    ?> 
 

 
<div> 
 
    <? echo $q ?> 
 
</div>

Что мне делать, чтобы сделать 2 ca работать как 1? Я имею в виду, как помещать в $ q все значения массива, а не только первые.

+1

Он определен в другой части кода. – Misa

+0

Ваше использование mysqli_num_rows ($ result) бессмысленно в этом случае. – Azarus

ответ

2

Вы не определяя $q как array вообще.

$q=array(); 
... 
while ($row = mysqli_fetch_assoc($result)) { 
    $q[]=$row['header']; 
} 
... 

пример вывода:

foreach($q as $header) { 
    echo $header.'<br>'; 
} 
+0

Спасибо, добрый сэр! – Misa

0

Вы переписываете $ q. Попробуйте использовать $ д [] =

0

изменение $q=$row[header]; линии к $q[]=$row[header];

, а затем не echo $q; но print_r($q);

0

Попробуйте изменить это в то время

$q = array(); 

if (mysqli_num_rows($result) > 0) { 

     while ($row = mysqli_fetch_assoc($result)) { 
      array_push($q, $row['header']); // i guess header is a column of the table 
     } 
} 

, а затем вы должны иметь ваш массив, когда печатается переменная $q, я имею в виду делать print_r($q)

Более подробной информации о array_push: http://php.net/manual/es/function.array-push.php

Надеется, что это помогает :)

+0

Если заголовок уже определен, ваш код не будет работать. Потому что php не будет интерпретировать его как строку. – Azarus

+0

Спасибо! Вы мне очень помогли! :) – Misa

+0

приветствую друга :) – martinezjc

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