Как сократить данный MySQL-код?

232
04 октября 2017, 10:21

Можно ли как-то сократить данный код? Думаю, что это делается через циклы, но как - не могу понять.

$vel1_res=mysql_query("select * from `tech_char` where name = 'Velo1'");
$vel1=mysql_fetch_row($vel1_res) or exit(mysql_error());
$vel2_res=mysql_query("select * from `tech_char` where name = 'Velo2'");
$vel2=mysql_fetch_row($vel2_res) or exit(mysql_error());
$vel3_res=mysql_query("select * from `tech_char` where name = 'Velo3'");
$vel3=mysql_fetch_row($vel3_res) or exit(mysql_error());
$vel4_res=mysql_query("select * from `tech_char` where name = 'Velo4'");
$vel4=mysql_fetch_row($vel4_res) or exit(mysql_error());
$vel5_res=mysql_query("select * from `tech_char` where name = 'Velo5'");
$vel5=mysql_fetch_row($vel5_res) or exit(mysql_error());
$vel6_res=mysql_query("select * from `tech_char` where name = 'Velo6'");
$vel6=mysql_fetch_row($vel6_res) or exit(mysql_error());
$vel7_res=mysql_query("select * from `tech_char` where name = 'Velo7'");
$vel7=mysql_fetch_row($vel7_res) or exit(mysql_error());
$vel8_res=mysql_query("select * from `tech_char` where name = 'Velo8'");
$vel8=mysql_fetch_row($vel8_res) or exit(mysql_error());
$vel9_res=mysql_query("select * from `tech_char` where name = 'Velo9'");
$vel9=mysql_fetch_row($vel9_res) or exit(mysql_error());
$vel10_res=mysql_query("select * from `tech_char` where name = 'Velo10'");
$vel10=mysql_fetch_row($vel10_res) or exit(mysql_error());
$vel11_res=mysql_query("select * from `tech_char` where name = 'Velo11'");
$vel11=mysql_fetch_row($vel11_res) or exit(mysql_error());
$vel12_res=mysql_query("select * from `tech_char` where name = 'Velo12'");
$vel12=mysql_fetch_row($vel12_res) or exit(mysql_error());
$vel13_res=mysql_query("select * from `tech_char` where name = 'Velo13'");
$vel13=mysql_fetch_row($vel13_res) or exit(mysql_error());
$vel14_res=mysql_query("select * from `tech_char` where name = 'Velo14'");
$vel14=mysql_fetch_row($vel14_res) or exit(mysql_error());
$vel15_res=mysql_query("select * from `tech_char` where name = 'Velo15'");
$vel15=mysql_fetch_row($vel15_res) or exit(mysql_error());
Answer 1

один из вариантов использовать IN:

$sql = "SELECT * 
        FROM `tech_char` 
        WHERE `name` IN ('Velo1', 'Velo2', 'Velo3', и так до 'Velo15')";
$result = mysql_query($sql); 
if (!$result) {
    echo "Что-то пошло не так в запросе ($sql) в БД: " . mysql_error();
    exit;
}
if (mysql_num_rows($result) == 0) {
    echo "Ничего не нашёл";
    exit;
}
while ($row = mysql_fetch_assoc($result)) {
    // какие-то действия, например заполнение общего массива для работы 
}
mysql_free_result($result);

Если надо выбрать все имена, которые начинаются на Velo и заканчиваются на что угодно, то можно использовать LIKE

$sql = "SELECT * 
FROM `tech_char` 
WHERE `name` LIKE 'Velo%'";

Остальное как в примере выше.

Напоминаю, что:

Данное расширение (mysql) устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL.

READ ALSO
Не находит базу данных

Не находит базу данных

При записи данных в PhpMyAdmin, не подключается к самой базе данных, хотя к mysql коннектится, возможно ошибка в сравнении, которую я выбирал при создании

234
Как сверстать картинку по ширине и высоте в квадратный див не растягивая?

Как сверстать картинку по ширине и высоте в квадратный див не растягивая?

Добрый день! Помогите с верской картинкиЕсть квадратный див с картинкой (точнее галереей) в которой есть картинки как прямоугольные вертикальные...

225