3 valeurs dans une meme champs ...

cs_rigui Messages postés 8 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 4 février 2009 - 15 janv. 2009 à 20:17
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 16 janv. 2009 à 11:34
Bonjour à tous,
Depuis quelques jours je rame complètement pour effectuer une requete sur ma table sql qui récupère un flux de petites annonces.

Sur ma table "immobilier" j'ai un champs qui se nomme "category" et dans ce meme champs que j'ai créé en type TYNYTEXT dans la colonne "valeur" le flux vient me coller plusieurs catégorie les unes derrière les autres : appartements</category><category>villa</category> <category>studio   etc....
La difficulté, et c'est là ou je m'arrache les cheveux, lorsque je fais ma requète, je souhaiterai récupérer les annonces de villa seulement et il ne veut rien savoir...
Si quelqu'un pouvait m'aider ce serait vraiment très sympa. Voici la requète que j'essaie de soumettre :

$value = exec_sql("SELECT category FROM immobilier WHERE valeur='villa' " ,""); 
  $row = mysql_fetch_array($value);
  $category=$row['valeur'];

Merci les gars si vous avez une idée en espérant avoir été clair ..!

4 réponses

cs_rigui Messages postés 8 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 4 février 2009
15 janv. 2009 à 20:33
Pour etre plus precis, pour creer ma table je me suis basé sur la lecture du flux xml sur lequel il pouvait avoir une annonce qui s'affiche avec 2 categories :
<titre>Appartement centre ville de ...</titre>
<description>............</description>
<category>appartements</category>
<category>studio</category>

Merci encore
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
15 janv. 2009 à 20:52
Si tu as foutu du xml dans le champ tu vas pas pouvoir requeter dessus faut pas rêver... Tu fais vraiment n'importe quoi et ça tient pas de la magie...
Réfléchis mieux a comment tu exprimes ce que tu cherches a exprimer dans ta table (qui deviendra surement tes tables)
Pour info... en SQL il y a le AND et le OR en SQL aussi
Pour info aussi... le xml se "requête" en XPath pas en SQL

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
cs_rigui Messages postés 8 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 4 février 2009
15 janv. 2009 à 21:34
Bon, ok pour la leçon c'est vrai je suis assez nul .
Le traitement du Xml pour le stocker sur ma base ne m'a pas posé de problème, c'est la requete qui m'en pose.
Voici le script qui range les infos du flux dans ma base :

<?
include("configuration.php");
$fichier_xml = http://adressedemonflux.xml;
$limit=$nombre_annonces*($page-1);
$file = fopen($fichier_xml,"r");
if ($file) {  
 $raw = '';
 while (!feof($file)) {
   $raw.= fread($file,32000);
 } 
 if(eregi(" (.*) ",$raw,$rawitems)){
  $items = explode("", $rawitems[0]);
  $nb_annonces = count($items);
  // connexion  la bdd
  connexion_bdd();
  for ($i=0;$i<$nb_video;$i++) {
   eregi(" (.*) ",$items[$i+1], $id);
   eregi("<date>(.*)</date>",$items[$i+1], $date);
   eregi("<titre>(.*)</titre>",$items[$i+1], $nom);
   eregi("<description>(.*)</description>",$items[$i+1], $description);
   eregi("<category>(.*)</category>",$items[$i+1], $category);  
   etc..
         
   $titre =str_replace("'","\'",$titre[1]);
   $description=str_replace("'","\'",$description[1]);
   $sql = 'SELECT id FROM immobilier WHERE id="'.$id.'"';
   $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
   if(mysql_num_rows($req)==0){
    $sql = "INSERT INTO immobilier VALUES('$id[1]','$date[1]','$titre','$description','$category[1]', etc...)";   
    
    $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());     
   }
  }   
  mysql_close();  
 }
}
    ?>
    

Le souci c'est de demander toutes les annonces qui sont dans la catégorie "studio" sachant que je peux avoir plusieurs valeur dans le champs (studio appartement)v (villa , maison)
J'ai peut etre fait une betise lors de la création de ma table
Merci quand meme de ton message

 
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
16 janv. 2009 à 11:34
Ton truc est un bazar sans nom. Tu as recopié du code je ne sais ou pour le mettre ici comme des briques or ça se fait mais pas de façon aussi hasardeuse.
Donc ton bazar jveux pas le voir pour le moment.
Réflechis a comment tu rangerais tes informations de façon logique pas de façon fourre tout.
(je te redonne mon indice c'est en 3 tables à première vue)

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0