Sen zaten yapıyor gibi verileri seçmeniz gerekir, ve sonra gerekli biçime getting üzerinde döngü ve alanları takma adlar kullanmak aynı adları, onun kolay ya çünkü onlar sadece içinde birbirinin üzerine olacak olacak veri döndü (ancak sayısal indisli bir dizi döner yerine, hangi mysql_fetch_row kullanabilirsiniz).
Örneğin:
$sql = "select tb1.f1 as tb1f1,tb1.f2 as tb1f2,tb2.f1 as tb2f1 from tb1,tb2";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
$result['t1']['f1']=$row['tb1f1'];
$result['t1']['f2']=$row['tb1f2'];
$result['t2']['f1']=$row['tb2f1'];
}
(Alıntı de sizin sql yanlış oldu)
Bu da birden fazla satır işlemek değil, ancak soru tür sadece hiç bir satır beklediklerini ima?
Adların OLMADAN:
$sql = "select tb1.f1,tb1.f2,tb2.f1 from tb1,tb2";
$result = mysql_query($sql);
while ($row = mysql_fetch_row($result)) {
$result['t1']['f1']=$row[0];
$result['t1']['f2']=$row[1];
$result['t2']['f1']=$row[2];
}
Eğer, ikinci kullanmak için iyi bir nedeniniz olmadıkça ben ilk versiyonunu tercih Hiç sql değiştirmek veya alanları vb eklerseniz hatalara neden olan daha az muhtemel olarak
EDIT:
Aşağıdaki yanıtı meta veri fikrini alarak ....
<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db('dbname');
$result = mysql_query('select tb1.f1, tb1.f2, tb2.f1 from tb1, tb2');
$meta = array();
for ($i = 0; $i < mysql_num_fields($result); ++$i) {
$meta[$i] = mysql_fetch_field($result, $i);
}
while ($row = mysql_fetch_row($result)) {
foreach($row as $key=>$value) {
$out[$meta[$key]->table][$meta[$key]->name]=$value;
}
}
Eğer hala sadece bir seferde bir satır alabilirsiniz rağmen - sonra tam olarak ne yapmak gibi görünüyor.
Kolayca dizideki başka bir boyut birden fazla satır saklamak için güncelleme:
Değiştir:
$out[$meta[$key]->table][$meta[$key]->name]=$value;
Için:
$out[][$meta[$key]->table][$meta[$key]->name]=$value;