Jeśli zbieram wiele danych wierszy z SQL, będę musiał użyć pętli Foreach lub czegoś innego, aby wyświetlić to dane prawidłowo. Jak korzystać z tych strun PHP bez użycia pętli Foreach?

Poniżej znajduje się moje zapytanie SQL

$results = $mysqli->query('SELECT * FROM specs where id in ('.$id1.','.$id2.','.$id3.','.$id4.') ');

Będzie to spowodować dane z 4 różnych wierszy.

Powyższy kod to tylko przykład, poniżej jest dokładny kod, którego używam na mojej stronie.

try{
    $pdo = new PDO("mysql:host=localhost;dbname=databse", "user", "password");
    // Set the PDO error mode to exception
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Could not connect. " . $e->getMessage());
}
 
// Attempt select query execution
try{
    $sql = "SELECT * FROM specs WHERE id IN($id1,$id2,$id3,$id4)";
    $result = $pdo->query($sql);
    $results = $result->fetchAll();

} catch(PDOException $e){
    die("ERROR: Could not able to execute $sql. " . $e->getMessage());
}
 
// Close connection
unset($pdo);

Obecnie dane są wyświetlane przy użyciu następujących

<tr>
<td>Brand</td>
<?php foreach ($results as $result){ ?>
    <td> <strong><?php echo $result['brand']; ?></strong> </td>
<?php } ?>
</tr>

Będzie łączne 4 wyniki, chcę użyć 4 wyników oddzielnie. Jeśli wyniki są samsung, Sony, Apple, LG - jak mogę echem echem "Apple" przy użyciu łańcucha PHP?

php
-2
Shijil 3 sierpień 2020, 21:06

1 odpowiedź

Najlepsza odpowiedź

Przynieś wszystkie wiersze. Jeśli masz rodzimego kierowcę mySQL :

$rows = $results->fetch_all(MYSQLI_ASSOC);

W przeciwnym razie pobieraj pętlę:

while($rows[] = $results->fetch_assoc());

Następnie możesz uzyskać do nich dostęp przez wiersz:

echo $rows[0]['brand'];  // first row

echo $rows[1]['brand'];  // second row

Ale to nie jest bardzo przydatne. Jeśli masz coś wyjątkowego, którego chcesz użyć (używam brand jako przykład, choć prawdopodobnie nie jest), a następnie tylko indeks na tym:

$rows = array_column($results->fetch_all(MYSQLI_ASSOC), null, 'brand');
// or
while($row = $results->fetch_assoc()) { $rows[$row['brand']] = $row; }
// then
echo $rows['apple']['model'];
0
AbraCadaver 3 sierpień 2020, 18:22