I’m trying to get all of the rows and columns of a MYSQL table to be objects in an array so I can retrieve them via javascript.
Here’s what I’ve got so far:
JavaScript
x
<?PHP
include '../sql.php';
$c = mysql_connect('localhost', $user, $pw) or die('Unable to connect to MySQL');
$s = mysql_select_db('mydb') or die('Could not select database');
$q = mysql_query('SELECT * FROM mytable') or die(mysql_error());
$a = array();
$cl = mysql_num_fields($q);
for($i = 1; $i < $cl; $i++){
while($r = mysql_fetch_assoc($q)){
foreach($r as $k => $v){
$a[] = //something;
}
}
}
echo json_encode($a);
mysql_close($c);
?>
The object at the end should look something like this:
JavaScript
[
{id: 1, name: 'bob', status: 'sleeping'},
{id: 2, name: 'james', status: 'partying'},
{id: 3, name: 'eric', status: 'reading'}
]
Advertisement
Answer
What about doing it in two (I mean three!) lines?
JavaScript
$pdo = new PDO("mysql:host=localhost;dbname=myDB;charset=utf8",'myUserName','myPassword');
$stmt = $pdo->query('SELECT * FROM mytable');
echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
PS. Using SELECT *
is considered bad practice.