Partage
  • Partager sur Facebook
  • Partager sur Twitter

Sélectionner plusieurs tables MYSQL en PHP

Sujet résolu
Anonyme
    15 mars 2019 à 12:06:24

    Bonjour,

    Je travail actuellement sur un projet contenant 2 pages : 

    - Page1.php :  Affiche un menu de restaurant (Nom, description, prix seul, prix avec frite, prix avec nachos)

    - Page2.php : Affiche une interface "Admin" sur laquelle on peut modifier le nom, description, prix seul.... des différents plats.

    j'utilise une base de donnée MYSQL pour stocker mes différents informations entrées dans des formulaires sur ma page2.php.

    J'ai reussi à faire le lien avec UNE table MYSQL, mais je souhaiterais en connecter plusieurs sur ma page1.php. Mon code : 

    Ma page2.php (Interface de contrôle) 

    <?php
    	
    $con=mysqli_connect("localhost","root","","demo");
    // Check connection
    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    
    $result = mysqli_query($con,"SELECT * FROM `burger1` ORDER BY `burger1`.`id` DESC");
    
    	
    $row = mysqli_fetch_array($result);
    ?>
    
    	
    	
    <h1>Configurez votre menu animé</h1>
    	
    	<ul>
    			
    	  <li>
    		  
    		<input type="checkbox" checked>
    		<i></i>
    		<h2>Burgers</h2>
    
    		<div class="box">
    			
    			<div class="box-img">
    				<img src="../images/burger-moment.png" alt="burger">
    				<h3><?php echo $row['first_name']; ?></h3>
    			</div>
    
    			<div class="box-form">
    				
    				<div class="textes">
    					<p class="desc"> Description actuelle : </p>
    					
    					<h4 id="desc-1" class="h4"><?php echo $row['last_name']; ?></h4>
    					<br>
    					
    					<p class="prix"> Prix seul : </p>
    					<h4 id="prix-s-1" class="h4"> <?php echo $row['price_seul']; ?></h4>
    					<p class="prix"> / </p>
    					
    					<p class="prix"> Prix frite : </p>
    					<h4 id="prix-f-1" class="h4"> <?php echo $row['price_frite']; ?></h4>
    					<p class="prix"> / </p>
    					
    					<p class="prix"> Prix nachos : </p>
    					<h4 id="prix-n-1" class="h4"> <?php echo $row['price_nachos']; ?></h4>
    				</div>
    				
    				<hr style="width: 40%;">
    				
    				<div class="formu">
    				
    					<form method="post" action="traitement.php">
    						
    						<label for="brgname1" class="form-lab">Nom du burger : </label>
    						<input type="text" name="first_name" id="brgname1" placeholder="Ex : Farmer" size="50" maxlength="30"  class="form-in"/>
    						
    						<br>
    						
    						<label for="brgdesc1" class="form-lab">Description : </label>
    						<input type="text" name="last_name" id="brgdesc1" placeholder="Ex : Boeuf, oignons..."   class="form-in"/>
    						<br>
    						
    						<div class="box-form-prix">
    						<label for="brgprs1" class="form-lab">Prix seul : </label>
    						<input type="text" name="price_seul" id="brgprs1" placeholder="Ex : 2,00" maxlength="5" class="form-in"/>
    						</div>
    						
    						<div class="box-form-prix">
    						<label for="brgprf1" class="form-lab"> Prix frites : </label>
    						<input type="text" name="price_frite" id="brgprf1" placeholder="Ex : 3,50" size="30" maxlength="5" class="form-in"/>
    						</div>
    
    						<div class="box-form-prix">
    						<label for="brgprn1" class="form-lab">  Prix Nachos : </label>
    						<input type="text" name="price_nachos" id="brgprn1" placeholder="Ex : 4,00" size="30" maxlength="5" class="form-in"/>
    						</div>
    						
    						<div class="box-form-subm">
    						<input type="submit" value="Envoyer" />
    						</div>
    						
    					</form>
    				
    				</div>
    				
    			 </div>
    			
    		</div>
    		  
    	
    	<?php mysqli_close($con); ?>
    	
    	
    	

    Ma page de traitement de formulaire : Traitement.php : 

    <?php
    
    
    
    /* Attempt MySQL server connection. Assuming you are running MySQL
    server with default setting (user 'root' with no password) */
    $link = mysqli_connect("localhost", "root", "", "demo");
     
    // Check connection
    if($link === false){
        die("ERROR: Could not connect. " . mysqli_connect_error());
    }
     
    // Escape user inputs for security
    $first_name = mysqli_real_escape_string($link, $_REQUEST['first_name']);
    $last_name = mysqli_real_escape_string($link, $_REQUEST['last_name']);
    $price_seul = mysqli_real_escape_string($link, $_REQUEST['price_seul']);
    $price_frite = mysqli_real_escape_string($link, $_REQUEST['price_frite']);
    $price_nachos = mysqli_real_escape_string($link, $_REQUEST['price_nachos']);
    
     
    // Attempt insert query execution
    $sql = "INSERT INTO burger1 (first_name, last_name, price_seul, price_frite, price_nachos) VALUES ('$first_name', '$last_name', '$price_seul', '$price_frite','$price_nachos')";
    if(mysqli_query($link, $sql)){
        echo "Records added successfully.";
    } else{
        echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
    }
     
    // Close connection
    mysqli_close($link);
    ?>

    Ma page qui affiche le menu : Page1.php : 

    	<?php
    	
    $con=mysqli_connect("localhost","root","","demo");
    // Check connection
    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    
    $result = mysqli_query($con,"SELECT * FROM `burger1` ORDER BY `burger1`.`id` DESC");
    
    	
    	
    
    $row = mysqli_fetch_array($result);
    ?>
    
    
    				<li id="fourme">
    					<p class="burg-tit">* <?php echo $row['first_name']; ?></p>
    					<p class="burg-desc"><?php echo $row['last_name']; ?></p>
    					<p class="burg-prix"><?php echo $row['price_seul']; ?>€</p>
    					<p class="burg-prix"><?php echo $row['price_frite']; ?>€</p>
    					<p class="burg-prix"><?php echo $row['price_nachos']; ?>€</p>
    				</li>
    				
    
    	
    	
    	
    		<?php mysqli_close($con); ?>
    
    	
    	
    	
    
    



    Ici, c'est pour UN plat, je souhaiterais la même chose pour X plats.

    Mes formulaires sont crées, et mes zones <p> aussi. Je n'arrive pas à faire le lien.

    Auriez-vous la solution ? 

    Merci d'avance ! :)



    -
    Edité par Anonyme 15 mars 2019 à 13:07:41

    • Partager sur Facebook
    • Partager sur Twitter
      15 mars 2019 à 12:17:59

      Salut,

      peut-être parles-tu de jointure (entre 2 table ayant un identifiant commun sur un champ PK <=> FK)

      voir le cours SQL pour mieux comprendre: https://sql.sh/cours

      C'est déjà un moyen de se comprendre, car ce n'est pas PHP qui "parle" à la base, mais le langage SQL

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        15 mars 2019 à 13:02:28

        Merci pour votre réponse,

        Je ne souhaite pas que mes table soient liées entre elles.

        Je souhaite pouvoir afficher X formulaires sur une même page (page2.php) et que chaque formulaire stock les données sur une table différente.

        De la même manière, je souhaite afficher X paragraphes sur une même page (page1.php)et que chaque paragraphe récupére les données sur une table différente.

        La solution la plus évidente serait de créer X page de traitement, n'existe-t-il pas une solution plus simple ?

        --------- exemple------

        ***Page2.php***

        Formulaire 1 : Nom1, description1,  prix1

        --> ma_base . Table1

        Formulaire X : nomX, descriptionX, prixX

        ---> ma_base . TableX.

        ***Page1.php****

        <p class="Plat_1"> nom1, description 1........ </p>

        <p class="Plat_X"> nomX, descriptionX....... </p>

        -
        Edité par Anonyme 15 mars 2019 à 13:05:57

        • Partager sur Facebook
        • Partager sur Twitter
          15 mars 2019 à 13:09:11

          Bonjour,

          Pourquoi des tables différentes ? Je ne comprends pas, il y a possiblement un problème de conception

          • Partager sur Facebook
          • Partager sur Twitter
            15 mars 2019 à 13:52:22

            en effet,

            tu dois avoir des tables suivantes (exemple)

            plat(id, descript,...)

            menu(id,description,...)

            plat_menu(id,id_plat,id_menu)

            non ?

            • Partager sur Facebook
            • Partager sur Twitter

            Sélectionner plusieurs tables MYSQL en PHP

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown