Ethameshep
Ethameshep

Reputation: 31

Create PHP array out of table column

I am trying to create a loop that displays each row in a table. I think I need to make an array out of the PK, but I can't figure out how to do that. Here is my code so far:

$conn = dbConnect('read');
$getData = 'SELECT * FROM table';
$allData = $conn->query($getdata);
if (!$allData) {
    $error = $conn->error;
} else {
    $data = $allData->fetch_assoc();
    $rowId = array($data['PK']);
} while ($rowId <= count($rowId)) {
    // code to be run for each row
    $rowId++;
}

EDIT: Sorry my question is confusing, I'm new to PHP.

Upvotes: 1

Views: 104

Answers (2)

Jeff
Jeff

Reputation: 6953

fetch_assoc() (I assume mysqli here now) doesn't fetch all data from a result, but one row after each other. So you don't need to make an array of $row['PK'], but need to loop over the results.

$conn = dbConnect('read');
$getData = 'SELECT * FROM `table`'; // you would need backticks here, if the table really is called "table" (what you shouldn't do...)
$result = $conn->query($getData); // it's not 'allData', it is a result_set. And be carefull about Case! $getData!=$getdata
if (!$result) {
    $error = $conn->error;
} else {
    $cnt=0;
    while($row = $result->fetch_assoc()) {
        // code to be run for each row
        // you can display $row['PK'] now:
        echo $row['PK'];
        // or add that value to something else, whatever you need
        $cnt = $cnt+$row['PK'];
        // or to have a new array with the values of one table-column:
        $columnRows[] = $row['PK'];
    }
    // now you can use the created array
    foreach($columnRows as $PK) {
        echo $PK;
    }
}

Upvotes: 2

You Old Fool
You Old Fool

Reputation: 22950

Your question is a bit confusing but I think this is what you are trying to do:

$sql = 'SELECT * FROM table';
$query = $conn->query($sql);
while ($row = $query->fetch_assoc()) {
    $data[$row['PK']] = $row;
}

That would iterate over each row, creating an array and using the row's value for column PK as an associative array key.

Upvotes: 4

Related Questions