Problème d'insertion BDD php

vivienneault Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
 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);

}
?>
A voir également:

2 réponses

Utilisateur anonyme
 
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 :

$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 ...
1
vivienneault Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci beaucoup pour cette réponse claire et rapide. Pour le ASC c'est une erreur de ma part que j'ai oublié de corrigé, c'est bien DESC que je dois indiqué.
En tout cas encore merci !
0
Utilisateur anonyme
 
De rien :)
0