Salut à tous. Je suis en train de migrer mon site en PDO. Et j'ai un problème lors de l'insertion d'une nouvelles news ou d'un articles.

La page articles.php

<?php
/* Systeme de pagination*/
$sql = $bdd->query("SELECT COUNT(id) as nbArt FROM articles");
$req = ($sql) or die('Erreur SQL <br> Vérifier votre table'); 
$data= $sql->fetch();
$nbArt = $data'nbArt'];
$perPage = 8;
$nbPage= ceil($nbArt/$perPage);
if(isset($_GET'id']) && $_GET'id']>0 && $_GET'id']<=$nbPage){
    $cPage = $_GET'id'];
}
else{
    $cPage =1;
}
/**/
$sql = $bdd->query("SELECT * FROM articles, articles_options 
                   WHERE articles_options.id = articles.articles_options_id LIMIT "
                   .(($cPage-1)*$perPage).",$perPage");
$req = ($sql) or die('Erreur SQL <br> Vérifier votre table'); 
 ?>
                    <br/>
                     <h1>Ajoutez un article</h1>
                    <form class="ad" method="post" action="add"/>
                    <label for="nom">Nom :</label>
                    <input type="text" name="nom" id="nom"/><br/> 

                    <label for="dsc">Description :</label>
                    <textarea name="dsc" id="dsc" ></textarea><br/>

                    <label for="url">URL</label>
                    <input type="text" name="url" id="url"/><br/><br/><br/>

                    <label for="quantites">Quantités</label>
                    <input type="text" name="quantites" id="quantites"/><br/>

                    <label for="nom">Reference :</label>
                    <input type="text" name="ref" id="ref"/><br/>

                    <label for="images">Images :</label>
                    <input type="text" name="images" id="images"/><br/>

                    <label for="prix">Prix :</label>
                    <input type="text" name="prix" id="prix"/><br/>

                    <label for="dispo">Disponibilite</label>
                    <input type="text" name="dispo" id="dispo"/><br/>

                    <label for="poids">Poids</label>
                    <input type="text" name="poids" id="poids"/><br/>
                    <br/>

                    <input class="insert"type="submit" value="Inserez">
                    </form>

                      <h3>Articles existant</h3>
                     <?php 
                     while($data = $sql->fetch()){
                     echo "<p>{$data"nom"]} ----- ";
                     echo "<a href=\"edit&id={$data"id"]}\">Modifier cette articles</a>";
                     echo " ----- <a href=\"suppr&id={$data"id"]}\">X</a>";
                     echo "</p>";
                     }
                      for($i=1;$i<=$nbPage;$i++){
                        if($i==$cPage){
                            echo " $i /";
                        }
                        else{

                        echo " <a href=\"articles&id=$i\">$i</a> /";
                    }

                    }
                    ?>

Et la page add.php

<?php
extract($_POST);
$sql=$bdd->query("INSERT INTO articles_options (nom,dsc,url)
      VALUES ('$nom','$dsc','$url')");
$req = ($sql) or die('Erreur SQL <br> Vérifier votre table'); 
$bdd->lastInsertId($id);
/*Ancienne valeur qui marchait bien avant PDO
$id = mysql_insert_id();
*/
$sql=$bdd->query("INSERT INTO articles (quantites,ref,images,prix,dispo,poids,articles_options_id)
      VALUES ('$quantites','$ref','$images','$prix','$dispo','$poids','$id')");
$req = ($sql) or die('Erreur SQL <br> Vérifier votre table');
header("location: articles");
?>

L'insertion fonctionne. Mais le champs articles.articles_options_id ne prend plus la valeurs de articles_options.id.

mysql_insert_id semble devoir êtres remplacé par lastInsertID, mais je n'arrives pas à la faire fonctionner correctement.

1 réponse


raficraft
Auteur
Réponse acceptée

Et hop trouvé:

$id=$bdd->lastInsertId();