Problème d'insertion BDD php

Fermé
vivienneault Messages postés 20 Date d'inscription samedi 8 janvier 2011 Statut Membre Dernière intervention 20 mai 2015 - 23 juin 2012 à 15:50
 Utilisateur anonyme - 23 juin 2012 à 16:24
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
23 juin 2012 à 16:17
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 samedi 8 janvier 2011 Statut Membre Dernière intervention 20 mai 2015 1
23 juin 2012 à 16:19
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
23 juin 2012 à 16:24
De rien :)
0