Page 1 sur 1
Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 15:52
par airsoft2869
Bonjour, je souhaite récupérer dans ma base de donnée des informations et les avoir sous forme de tableau : du genre
array =>
[0] user ="test"
[1] user =''test2"
Comment faire ceci? moi j'ai fais cela :
$cnx = mysql_connect( "localhost", "root", "" );
//sélection de la base de données:
$db= mysql_select_db( "ecriture" );
//création de la requête SQL:
$sql = "SELECT * FROM user";
//exécution de notre requête SQL:
$requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
//récupération avec mysql_fetch_array(), et affichage de nos résultats :
// $result = mysql_fetch_array($requete);
while ($result = mysql_fetch_array( $requete )) {
echo "<pre>";
print_r($result);
echo "<pre>";
}
?>
Si quelqu'un à une idée? merci à vous

Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 15:58
par piotrowski-s
tu as déjà un tableau avec le mysql_fetch_array ton tableau s'appelle $result
donc tu peux faire un var_dump($result) tu verra ce qu'il contient.
Ton while va servir à chercher toutes les infos de ta base de donnée.
tant que la condition est remplie.
Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 16:10
par airsoft2869
merci à toi ! parce que enfaite j'ai un premier tableau avec des données qui je voudrais mettre dans ma bdd. Cependant je voudrais vérifier si il n'y a pas déja des élements présents dans ce tableau dans ma bdd et si il y en a, comment les supprimés? as -tu une idée de comment faire?
Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 16:27
par piotrowski-s
oui c'est très simple.
Alors en fait tu veux supprimer des données mais il faut que tu me dise quels sont tes critères ?
Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 16:35
par airsoft2869
Enfaite je récupère des données qui sont susceptibles de déjà ce trouver dans ma base de donnée. C'est ça :
<?php
// require('connect.php');
$keyword = "#coca";
$prct_keyword = urlencode($keyword);
$search_string = "http://search.twitter.com/search.json?q=".$prct_keyword."&rpp=100&include_entities=false&result_type=recent";
$json = file_get_contents($search_string);
$array = json_decode($json);
foreach( $array->results as $index ) {
$tweet= $index->text.'<br>' ;
$dbhost='localhost';
$dbname='ecriture';
$dblogin='root';
$dbpasse='';
try{
$bdd= new PDO('mysql:host='.$dbhost.';dbname='.$dbname,$dblogin,$dbpasse)or die(print_r($bdd->errorInfo()));
}
catch(exeption $e){
die('Ereur:'.$e->getMessage());
}
$req = $bdd->query("INSERT INTO user (id,user_name) VALUES ('','$tweet')");
}
?>
Ces données je l'ai insère dans la table user. Je veux tout simplement supprimer ceux qui ont le même user_name
Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 16:46
par piotrowski-s
dans ce cas la tu fais un foreach pour ton array
et pour chaque enregistrement tu fais d'abord un
mysql_query($sql="delete FROM `table` WHERE `user_name` ='".mysql_real_escape_string($var)."'")
et après tu fais juste après une requête d'insertion classique.
comme ça il va d'abord tester ceux qui ont le même user_name si il existe il va les supprimer sinon il les insère, dans les deux cas tu n'as pas de doublons.
Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 16:48
par xTG
Ces données je l'ai insère dans la table user. Je veux tout simplement supprimer ceux qui ont le même user_name
DELETE FROM users WHERE username IN ('username1', 'username7', 'username8', 'username12')
Autrement formulé :
$sql = 'DELETE FROM users WHERE username IN (' . $variable . ')';
Je te laisse construire ta chaîne.

Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 17:00
par airsoft2869
ah parfait ça marche

merci beaucoup

Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 19:37
par airsoft2869
Je reviens vers vous, car la solution que je fais pose un problème, étant donné que je supprime tout ce qui est dans la base de donnée quand c'est un doublon, cela change d'id, du coup je ne peux pas savoir qu'elle sont les derniers élements rajoutés. Avez vous une solution à cela?
<?php
$keyword = "#coca";
$prct_keyword = urlencode($keyword);
$search_string = "http://search.twitter.com/search.json?q=".$prct_keyword."&rpp=100&include_entities=false&result_type=recent";
$json = file_get_contents($search_string);
$array = json_decode($json);
foreach( $array->results as $index ) {
$tweet= $index->from_user_name;
// echo $tweet;
$dbhost='localhost';
$dbname='ecriture';
$dblogin='root';
$dbpasse='';
try{
$bdd= new PDO('mysql:host='.$dbhost.';dbname='.$dbname,$dblogin,$dbpasse)or die(print_r($bdd->errorInfo()));
}
catch(exeption $e){
die('Ereur:'.$e->getMessage());
}
$req = $bdd->query("DELETE FROM `user` WHERE `user_name` ='".mysql_real_escape_string($tweet)."'");
// mysql_query($sql="delete FROM `user` WHERE `user_name` ='".mysql_real_escape_string($tweet)."'");
$req = $bdd->query("INSERT INTO user (id,user_name) VALUES ('','$tweet')");
}
?>
Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 19:48
par xTG
Ces données je l'ai insère dans la table user. Je veux tout simplement supprimer ceux qui ont le même user_name
DELETE FROM users WHERE username IN ('username1', 'username7', 'username8', 'username12')
Autrement formulé :
$sql = 'DELETE FROM users WHERE username IN (' . $variable . ')';
Je te laisse construire ta chaîne.


Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 19:56
par airsoft2869
désolé mais je ne comprends pas trop ce que tu veux dire par ce bout de code, je ne vois pas comment il vérifie si il y a des éléments de mon tableau qui sont présent dans la base de donnée
Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 20:35
par moogli
la solution indiqué c'est de supprimer les éléments existants avec la requete.
si un élément n'est pas trouvé, pas de suppression et pas d'erreur
Ensuite insertion de tout le tableau.
Tu peux aussi imaginer une procédure stockée qui prend en paramètre l'info a ajouter. Cette procédure commence par tester l'existence dans la base, si elle n'existe pas on insère sinon rien.
@+
Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 21:01
par airsoft2869
ah oui c'est plutot ta dernière solution qu'il me faut, tester dans la base de donnée l'existence, si elle y est elle fait rien sinon elle ajoute. Malheureusement je ne vois pas trop comment faire :/ peux tu m'aiguiller un peu plus stp

Re: Récupérer dans la Bdd et ressortir en tableau
Posté : 13 déc. 2012, 22:36
par moogli
un select count(*) sur la table avec en condition le "tweet" courant.
si le résultat du count est zéro tu exécute la requête insert.
essai de formaliser les deux requêtes et ensuite on vois leur utilisation.
@+