MYSQLI Ошибка вывода | Выводит только первую запись из DB

157
30 августа 2019, 09:10

Почему-то у меня PHP выводит только первое значение из бд, как решить?

$mysql = mysqli_connect($c['host'], $c['user'], $c['pass'], $c['db']);
$sql=mysqli_query($mysql,"SELECT * FROM dle_users WHERE user_id = '".$_COOKIE['dle_user_id']."'");
while($row=mysqli_fetch_array($sql)){
    $pro = mysqli_connect($c['host'], $c['user'], $c['pass'], $c['db']);
    $prod=mysqli_query($pro, "SELECT * FROM dle_products  ");
    while($pdo = mysqli_fetch_array($prod, MYSQLI_BOTH)){
        if(file_exists('buy/mc/'.$pdo['item_id'].'.png')){
           $img = 'buy/mc/'.$pdo['item_id'].'.png';
        } else {
           $img = 'buy/mc/unknown.png';
        }
        $image = '<img src="'.$img.'" alt="'.$pdo['name'].'">';
        echo'
        <i class="fa fa-info" aria-hidden="true"   title="'.$pdo['description'].'"></i>
       '.$pdo['name'].'<br />
       '.$image.'<br />

'.$pdo['price'].' '.$valet.' за '.$pdo['amount'].' шт';
        }
        mysqli_close($pro);
     }
     mysqli_close($mysql);

Код вроде оформил правильно, но всё-равно выводит только первое значение из БД

Answer 1

mysqli_query($mysql,"SELECT * FROM dle_users WHERE user_id = '".$_COOKIE['dle_user_id']."'"); нельзя подставлять значения, пришедшие от пользователя прямо в запрос. Нужно использовать подготовленные запросы. $pro = mysqli_connect($c['host'], $c['user'], $c['pass'], $c['db']); делать второе соединение в данном случае бессмысленно и беспощадно. while($row=mysqli_fetch_array($sql)){ значение $row нигде не используется. Проверка на существование пользователя проводится несколько иначе. mysqli_close($pro); закрытие соединения делать не обязательно (за исключением редких случаев)

READ ALSO
Yii2 показать страницу ошибки

Yii2 показать страницу ошибки

В контроллере, в методе beforeAction делаю некую проверку и если она не проходит, надо выкинуть ошибкуДелаю так

147
Проблема при миграции Yii2 БД PostgreSQL на Openserver

Проблема при миграции Yii2 БД PostgreSQL на Openserver

Пытаюсь применить миграцию базы на локальном хосте, отдаёт ошибку:

137
C++ удалить нули из массива

C++ удалить нули из массива

В первой строке задана длина исходного массиваВо второй - сам массив

149