Comment puis-je me connecter à une table et afficher son contenu ? (MySQL et PHP)
P粉738821035
P粉738821035 2024-04-03 09:55:31
0
1
499

J'ai deux tables mysql (produit et catégorie). J'ai des données fictives dans les deux tableaux. Maintenant, je dois attacher la catégorie au produit d'une manière ou d'une autre. Par exemple, le produit avec l'ID 1 devrait renvoyer ce qui suit : 

| product name | category   |
| Monitor      | Technology |

Je sais que j'ai déjà fait ça, mais aujourd'hui, je n'arrive pas à trouver de solution.

Modifier Voici ce que j'ai jusqu'à présent. La connexion fonctionne bien et je peux afficher les données dans le tableau.

<?php
// Include database connection
include("connection.php");

// Create variables for later use
$db = $conn;
$tableName = "Produkte";
$columns= ['id_product', 'name_product'];

// Create variable to use in index.php
$fetchData = fetch_data($db, $tableName, $columns);

// The function below feteches data from the tables specified and checks if the colums are emtpy by any chance.
function fetch_data($db, $tableName, $columns) {
    // Check db connection
    if (empty($db)) {
        $message= "Database connection error";
    }
    // Check if the columns variable is empty and not an array by any chance
    elseif (empty($columns) || !is_array($columns)) {
        $message="Product Name must be defined in an indexed array";
    }
    // Check if table name is empty
    elseif (empty($tableName)) {
        $message= "Table Name is empty";
    }
    // Else proceed as usual.
    else {
        $columnName = implode(", ", $columns);
        // The query needs to be repalced. Today my SQL stuff is leaving me a bit.
        $query = "SELECT p.".$columnName." AS product, c.name_category FROM $tableName p JOIN Kategorie c ON c.id_";
        $result = $db->query($query);
        if ($result== true) {
            if ($result->num_rows > 0) {
                $row= mysqli_fetch_all($result, MYSQLI_ASSOC);
                $message= $row;
            }
            else {
                $message= "No Data Found";
            }
        }
        // Throw error if error occures
        else{
            $message= mysqli_error($db);
        }
    }
    return $message;
}

Tableau products 只有 2 列。 id 列和 product_name colonnes.

P粉738821035
P粉738821035

répondre à tous(1)
P粉014293738

Les techniques de base varient :

// create DBquery using JOIN statement 
$query = "
SELECT 
    p.name AS product, c.name AS category 
FROM products p
JOIN categories c ON c.id = p.category_id;";

// get DB data using PDO
$stmt = $pdo->prepare($query);
$stmt->execute();

// show table header
printf('| product name | category   |' . PHP_EOL);

// loop for output result as table rows
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    printf('| %-12s | %10s |' . PHP_EOL, $row['product'], $row['category']);
}

Essayez-le en ligne

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal