Php Сравнение Два значения таблицы с двумя для каждого для эффективности кода

Я новичок в php, поэтому мне нужна помощь, чтобы понять, как выполнить задачу сравнения двух таблиц с большим количеством записей.

В таблице пользователя у меня есть:

id,
username,
phoneno,
city,
carddetails

а в другой таблице - поля:

id,
typeofthings,
typeofcard,
user_id(foreignkey).

Я не хочу использовать соединение в моем запросе. Я хочу получить все пользовательские данные с его типами, чтобы показать.

Как я могу сделать это в одиночном foreach? пожалуйста, помогите мне.thanks заранее

1 ответ

Вы должны сделать это с помощью соединения.

Руки вниз. Это сделает вашу жизнь намного проще.

С присоединением:

foreach($joined_data_row as $data) {
// do whatever you need to do.
 }

без:

foreach($user_in_table_one as $user) { 
// another query - 
$users_data = ORM::for_table("user_data")->where("user_id", $user['id'])->find_one();
//do what you need to do. You now have $user from the first table and $user_data from the second.
}

Теперь это плохо, плохо, плохо, плохо. Вы откажетесь от своего класса - вас уволят с работы. Потому что вы делаете запрос для каждой возвращаемой строки, которая во много раз тяжелее нагрузки на базу данных! Я просто протянул тебе петлю, не вешай себя с ней

Однако при объединении вы делаете только один запрос к базе данных, который намного, намного, намного эффективнее.

Теперь, поскольку вы новичок, я дам вам этот совет: https://github.com/j4mie/idiorm

Это облегчит вам работу с базой данных - включая ваше соединение -

Я знаю, когда я был новичком, я ненавидел MySQL, пока не наткнулся на это (мы используем propel, в настоящее время, однако)

licensed under cc by-sa 3.0 with attribution.