I want to use foreach for looping instead of while loop in the below code. But for some reason the foreach loop is not working as I expected. Can please help me with this.
JavaScript
x
class MyDB extends SQLite3
{
function __construct()
{
$this->open('test.db');
}
}
$db = new MyDB();
if(!$db){
echo $db->lastErrorMsg();
} else {
echo "Opened database successfullyn";
}
$sql =<<<EOF
SELECT * from COMPANY;
EOF;
$ret = $db->query($sql);
$newArray = array_chunk($links['data'], 12, false);
while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
echo "ID = ". $row['ID'] . "n";
echo "NAME = ". $row['NAME'] ."n";
echo "ADDRESS = ". $row['ADDRESS'] ."n";
echo "SALARY = ".$row['SALARY'] ."nn";
}
echo "Operation done successfullyn";
$db->close();
THis is the code I Used.
JavaScript
$ret = $db->query($sql);
$value = $ret->fetchArray(SQLITE3_ASSOC);
foreach($value as $row){
echo "ID = ". $row['ID'] . "n";
echo "NAME = ". $row['NAME'] ."n";
echo "ADDRESS = ". $row['ADDRESS'] ."n";
echo "SALARY = ".$row['SALARY'] ."nn";
}
echo "Operation done successfullyn";
$db->close();
Advertisement
Answer
This piece of code worked for me.
JavaScript
$sql =<<<EOF
SELECT * from COMPANY;
EOF;
$ret = $db->query($sql);
while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
$data[]=array('id'=>$row['ID'],'name'=>$row['NAME'],'address'=>$row['ADDRESS'],'salary'=>$row['SALARY']);
}
echo "Operation done successfullyn";
$db->close();
foreach($data as $val){
echo $val['id'].'<br>'.$val['address'].'<br>'.$val['salary'].'<br>';
}