Problème d'insertion BDD php
vivienneault
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je suis actuellement entrain de faire un script php de transfert de données d'une base à une autre. Les tables ne sont pas les mêmes et les champs non-plus.
je bloque sur une partie du script qui ne s'execute pas comme je l'aimerais.
Pour résumer, j'ai 2 tables : wp_posts et wp_postmeta. Je veux juste récupérer le dernier ID de wp_posts pour le mettre dans wp_postmeta dans la clé étrangére 'post_id'. Le problème est que tous s'insert correctement sauf post_id qui est toujours à 0.
merci de votre réponse
<?php
$connexion = mysql_connect('127.0.0.1','root','');
if (!mysql_select_db("biblio")) {
echo "Impossible de sélectionner la base mydbname : " . mysql_error();
exit;
}
$sql_post = "SELECT NUMBIBLIO,LIBELLEBIBLIO,LIENSBIBLIO,PROCESSBIBLIO,DATEBIBLIO,CATEGORIEBIBLIO,MOTSCLESBIBLIO FROM docsbiblio";
$recup_info = mysql_query($sql_post);
while ($row = mysql_fetch_array($recup_info)){
$numbiblio = $row['NUMBIBLIO'];
$libellebiblio = $row['LIBELLEBIBLIO'];
$liensbiblio = $row['LIENSBIBLIO'];
$processbiblio = $row['PROCESSBIBLIO'];
$datebiblio = $row['DATEBIBLIO']." 00:00:00";
$categoriebiblio = $row['CATEGORIEBIBLIO'];
$motsclesbiblio = $row['MOTSCLESBIBLIO'];
mysql_select_db('wpInsert');
$insert_post = "INSERT INTO 'wp_posts'('ID', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_excerpt', 'post_status', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_content_filtered', 'post_parent', 'guid', 'menu_order', 'post_type', 'post_mime_type', 'comment_count') VALUES(NULL,'0','".$datebiblio."', '0000-00-00 00:00:00', '','".$libellebiblio."','','publish','open','open', '', '', '', '', '0000-00-00 00:00:00','0000-00-00 00:00:00', '', '0','".$liensbiblio."', '0', 'post', '', '0')";
$insertion_post = mysql_query ($insert_post);
$sql_postmeta = "SELECT ID FROM wp_posts ORDER BY ID ASC LIMIT 1";
$Id_Post = mysql_query($sql_postmeta);
$insert_postmeta = "INSERT INTO 'wp_postmeta'('meta_id','post_id','meta_key','meta_value') VALUES(NULL,'".$Id_Post."',NULL,NULL)";
$insertion_postmeta = mysql_query ($insert_postmeta);
}
?>
Je suis actuellement entrain de faire un script php de transfert de données d'une base à une autre. Les tables ne sont pas les mêmes et les champs non-plus.
je bloque sur une partie du script qui ne s'execute pas comme je l'aimerais.
Pour résumer, j'ai 2 tables : wp_posts et wp_postmeta. Je veux juste récupérer le dernier ID de wp_posts pour le mettre dans wp_postmeta dans la clé étrangére 'post_id'. Le problème est que tous s'insert correctement sauf post_id qui est toujours à 0.
merci de votre réponse
<?php
$connexion = mysql_connect('127.0.0.1','root','');
if (!mysql_select_db("biblio")) {
echo "Impossible de sélectionner la base mydbname : " . mysql_error();
exit;
}
$sql_post = "SELECT NUMBIBLIO,LIBELLEBIBLIO,LIENSBIBLIO,PROCESSBIBLIO,DATEBIBLIO,CATEGORIEBIBLIO,MOTSCLESBIBLIO FROM docsbiblio";
$recup_info = mysql_query($sql_post);
while ($row = mysql_fetch_array($recup_info)){
$numbiblio = $row['NUMBIBLIO'];
$libellebiblio = $row['LIBELLEBIBLIO'];
$liensbiblio = $row['LIENSBIBLIO'];
$processbiblio = $row['PROCESSBIBLIO'];
$datebiblio = $row['DATEBIBLIO']." 00:00:00";
$categoriebiblio = $row['CATEGORIEBIBLIO'];
$motsclesbiblio = $row['MOTSCLESBIBLIO'];
mysql_select_db('wpInsert');
$insert_post = "INSERT INTO 'wp_posts'('ID', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_excerpt', 'post_status', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_content_filtered', 'post_parent', 'guid', 'menu_order', 'post_type', 'post_mime_type', 'comment_count') VALUES(NULL,'0','".$datebiblio."', '0000-00-00 00:00:00', '','".$libellebiblio."','','publish','open','open', '', '', '', '', '0000-00-00 00:00:00','0000-00-00 00:00:00', '', '0','".$liensbiblio."', '0', 'post', '', '0')";
$insertion_post = mysql_query ($insert_post);
$sql_postmeta = "SELECT ID FROM wp_posts ORDER BY ID ASC LIMIT 1";
$Id_Post = mysql_query($sql_postmeta);
$insert_postmeta = "INSERT INTO 'wp_postmeta'('meta_id','post_id','meta_key','meta_value') VALUES(NULL,'".$Id_Post."',NULL,NULL)";
$insertion_postmeta = mysql_query ($insert_postmeta);
}
?>
A voir également:
- Problème d'insertion BDD php
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
2 réponses
Bonjour
$Id_Post = mysql_query($sql_postmeta);
Après exécution de cette ligne, $Id_Post ne contient pas le champ wp_posts de la table ID, mais une ressource.
Pour retrouver la donnée qui t'intéresse, il faut faire :
$Id_Post = mysql_query($sql_postmeta);
Après exécution de cette ligne, $Id_Post ne contient pas le champ wp_posts de la table ID, mais une ressource.
Pour retrouver la donnée qui t'intéresse, il faut faire :
$sql_postmeta = "SELECT ID FROM wp_posts ORDER BY ID ASC LIMIT 1"; $rep = mysql_query($sql_postmeta); $ll=mysql_fetch_array($rep) $Id_Post=$ll['wp_posts']; $insert_postmeta = "INSERT INTO 'wp_postmeta'('meta_id','post_id','meta_key','meta_value') VALUES(NULL,'".$Id_Post."',NULL,NULL)";D'ailleurs, si j'ai bien compris ce que tu cherches à faire, il aurait mieux valu faire
... ORDER BY ID DESC ...