Reputation: 19695
I want get all rows of ref table : ciudad
public function actionGetCiudades(){
$model = ciudad::model()->findAll();
$lCiudades = array();
$i=0;
$dataReader = Yii::app()->db->createCommand( 'SELECT * FROM ciudad' )->query();
foreach( $dataReader as $row ) {
$ciudad = new ciudad;
echo $row->ciudadid.":".$row->estadoid.":".$row->ciudaddsc.":".$row->activo;
echo "<br/";
unset( $ciudad );
}
Unfortunately, output is :
:::
But I have 700+ rows in my table.
What's wrong???
UPDATE :
var_dump($dataReader) -->
array(4) { ["ciudadid"]=> string(1) "1" ["estadoid"]=> string(1) "1" ["ciudaddsc"]=> string(15) "VALLE DE MEXICO" ["activo"]=> string(1) "1" } [1]=> array(4) { ["ciudadid"]=> string(1) "2" ["estadoid"]=> string(1) "1" ["ciudaddsc"]=> string(6) "TOLUCA" ["activo"]=> string(1) "1" } [2]=> array(4) { ["ciudadid"]=> string(1) "3" ["estadoid"]=> string(1) "1" ["ciudaddsc"]=> string(11) "ATLACOMULCO" ["activo"]=> string(1) "1" } [3]=> array(4) { ["ciudadid"]=> string(1) "4" ["estadoid"]=> string(1) "2" ["ciudaddsc"]=> string(14) "AGUASCALIENTES" ["activo"]=> string(1) "1" } [4]=> array(4) { ["ciudadid"]=> string(1) "5" ["estadoid"]=> string(1) "2" ["ciudaddsc"]=> string(18) "SAN JOSE DE GRACIA" ["activo"]=> string(1) "1" } [5]=> array(4) { ["ciudadid"]=> string(1) "6" ["estadoid"]=> string(1) "2" ["ciudaddsc"]=> string(19) "PABELLON DE ARTEAGA" ["activo"]=> string(1) "1" } [6]=> array(4) { ["ciudadid"]=> string(1) "7" ["estadoid"]=> string(1) "2" ["ciudaddsc"]=> string(8) "CALVILLO" ["activo"]=> string(1) "1" } [7]=> array(4) { ["ciudadid"]=> string(1) "8" ["estadoid"]=> string(1) "2" ["ciudaddsc"]=> string(19) "ENCARNACION DE DIAZ" ["activo"]=> string(1) "1" } [8]=> array(4) { ["ciudadid"]=> string(1) "9" ["estadoid"]=> string(1) "2" ["ciudaddsc"]=> string(15) "RINCON DE ROMOS" ["activo"]=> string(1) "1" } [9]=> array(4) { ["ciudadid"]=> string(2) "10" ["estadoid"]=> string(1) "3" ["ciudaddsc"]=> string(8) "ENSENADA" ["activo"]=> string(1) "1" } [10]=> array(4) { ["ciudadid"]=> string(2) "11" ["estadoid"]=> string(1) "3" ["ciudaddsc"]=> string(7) "TIJUANA" ["activo"]=> string(1) "1" } [11]=> array(4) { ["ciudadid"]=> string(2) "12" ["estadoid"]=> string(1) "3" ["ciudaddsc"]=> string(8) "MEXICALI" ["activo"]=> string(1) "1" } [12]=> array(4) { ["ciudadid"]=> string(2) "13" ["estadoid"]=> string(1) "3" ["ciudaddsc"]=> string(8) "ROSARITO" ["activo"]=> string(1) "1" } [13]=> array(4) { ["ciudadid"]=> string(2) "14" ["estadoid"]=> string(1) "3" ["ciudaddsc"]=> string(6) "TECATE" ["activo"]=> string(1) "1" } [14]=> array(4) { ["ciudadid"]=> string(2) "15" ["estadoid"]=> string(1) "3" ["ciudaddsc"]=> string(7) "LA MESA" ["activo"]=> string(1) "1" } [15]=> array(4) { ["ciudadid"]=> string(2) "16" ["estadoid"]=> string(1) "4" ["ciudaddsc"]=> string(6) "LA PAZ" ["activo"]=> string(1) "1" } [16]=> array(4) { ["ciudadid"]=> string(2) "17" ["estadoid"]=> string(1) "4" ["ciudaddsc"]=> string(9) "LOS CABOS" ["activo"]=> string(1) "1" } [17]=> array(4) { ["ciudadid"]=> string(2) "18" ["estadoid"]=> string(1) "4" ["ciudaddsc"]=> string(7) "COMONDU" ["activo"]=> string(1) "1" } [18]=> array(4) { ["ciudadid"]=> string(2) "19" ["estadoid"]=> string(1) "4" ["ciudaddsc"]=> string(14) "CABOS AN LUCAS" ["activo"]=> string(1) "1" } [19]=> array(4) { ["ciudadid"]=> string(2) "20" ["estadoid"]=> string(1) "4" ["ciudaddsc"]=> string(17) "SAN JOSE DEL CABO" ["activo"]=> string(1) "1" } [20]=> array(4) { ["ciudadid"]=> string(2) "21" ["estadoid"]=> string(1) "4" ["ciudaddsc"]=> string(19) "CIUDAD CONSTITUCION" ["activo"]=> string(1) "1" } [21]=> array(4) { ["ciudadid"]=> string(2) "22" ["estadoid"]=> string(1) "5" ["ciudaddsc"]=> string(8) "CAMPECHE" ["activo"]=> string(1) "1" } [22]=> array(4) { ["ciudadid"]=> string(2) "23" ["estadoid"]=> string(1) "5" ["ciudaddsc"]=> string(17) "CIUDAD DEL CARMEN" ["activo"]=> string(1) "1" } [23]=> array(4) { ["ciudadid"]=> string(2) "24" ["estadoid"]=> string(1) "5" ["ciudaddsc"]=> string(9) "ESCARCEGA" ["activo"]=> string(1) "1" } [24]=> array(4) { ["ciudadid"]=> string(2) "25" ["estadoid"]=> string(1) "5" ["ciudaddsc"]=> string(7) "CALAKUL" ["activo"]=> string(1) "1" } [25]=> array(4) { ["ciudadid"]=> string(2) "26" ["estadoid"]=> string(1) "5" ["ciudaddsc"]=> string(7) "CALKINI" ["activo"]=> string(1) "1" }
Upvotes: 1
Views: 11529
Reputation: 2375
As the Question title is generic let me post a generic answer to the question.
i am using Yii 2.
to get All rows from a table without applying any where class here is how you will get.
$dbusers = New Users;
$users = $dbusers->find()->all();
Your model should look like this.
namespace app\models;
use Yii;
use yii\db\ActiveRecord;
class Users extends ActiveRecord
{
public function rules()
{
return [
[['name', 'id','email','type'], 'required'],
['id', 'numeric'],
];
}
}
Upvotes: 2
Reputation: 19695
Final Code :
public function actionGetCiudades(){
$lCiudades = array();
$dataReader = Yii::app()->db->createCommand( 'SELECT * FROM ciudad' )->queryAll();
foreach( $dataReader as $row ) {
$ciudad->ciudadid = $row['ciudadid'];
$ciudad->estadoid = $row['estadoid'];
$ciudad->ciudaddsc = $row['ciudaddsc'];
$ciudad->activo = $row['activo'];
array_push($lCiudades, $ciudad);
unset( $ciudad );
}
$json = json_encode($lCiudades);
echo $json;
}
Upvotes: 1
Reputation: 2694
Use queryAll()
instead of query()
. query()
adds limit 1
to the sql query and gets only first row matching criteria.
Upvotes: 3