comment récupèrer les valeurs des champs d'une table sql ?

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


quicherche
Nouveau WRInaute
 
Messages: 14
Inscription: Lun Jan 03, 2005 23:49

comment récupèrer les valeurs des champs d'une table sql ?

Message le Mar Avr 25, 2006 10:27

bonjour,
qui pourrait m'aider à remplir ce script pour la creation d'un flux rss ?
sachant que ma table est nommée : xlagenda et
que je souhaite récupérer les champs suivants : date description contact

cette c'est ok ! mon script se connecte à la base !
Code: Tout sélectionner
// connexion a la base
@mysql_connect($host,$user,$pwd) or die("Connexion impossible");
@mysql_select_db($base) or die("Echec de selection de la base");
// selection des 5 dernieres news
$res=mysql_query("SELECT * FROM news ORDER BY date DESC LIMIT, 5");


Voila la prtie que j'arrive pas à renseigner...
Code: Tout sélectionner
// extraction des informations et ajout au contenu
while($tab=mysql_fetch_array($res)){   
$titre=$tab[titre];
$lien=$tab[lien];
$description=$tab[description];
$date=$tab[date];
$date2=date("D, d M Y H:i:s", strtotime($date));
$xml .= '<item>';
$xml .= '<title>'.$titre.'</title>';
$xml .= '<link>'.$lien.'</link>';
$xml .= '<pubDate>'.$date2.' GMT</pubDate>';
$xml .= '<description>'.$description.'</description>';
$xml .= '</item>';
}


merci pour votre aide
pascal

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Re: comment récupèrer les valeurs des champs d'une table sq

Message le Mar Avr 25, 2006 11:22

quicherche a écrit:bonjour,
qui pourrait m'aider à remplir ce script pour la creation d'un flux rss ?
sachant que ma table est nommée : xlagenda et
que je souhaite récupérer les champs suivants : date description contact

cette c'est ok ! mon script se connecte à la base !
Code: Tout sélectionner
// connexion a la base
@mysql_connect($host,$user,$pwd) or die("Connexion impossible");
@mysql_select_db($base) or die("Echec de selection de la base");
// selection des 5 dernieres news
$res=mysql_query("SELECT * FROM news ORDER BY date DESC LIMIT, 5");


Ta table se nomme : xlagenda
tu veux récupérer les champs : date, inscription et contact.

Essaye déjà de modifier ton SELECT :

Code: Tout sélectionner
SELECT date, inscription, contact
FROM xlagenda
ORDER BY date desc
LIMIT 0,5


quicherche
Nouveau WRInaute
 
Messages: 14
Inscription: Lun Jan 03, 2005 23:49

merci

Message le Mar Avr 25, 2006 18:22

bonjour et merci car c'est deja mieux...
cependant j'ai encore un petit message d'erreur qui empêche le bon fonctionnement du script :

message d'erreur :
Code: Tout sélectionner
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/sites/site180/web/agenda-tahiti-actualite-heiva/maj-rss.php on line 14


et voici la ligne 14 :
Code: Tout sélectionner
while($tab=mysql_fetch_array($res)){


merci pour ton aide
tahiti

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Mar Avr 25, 2006 19:29

tu as un pb dans ta requête sql. Tu l'as testé directement dans phpmyAdmin, par exemple ?


quicherche
Nouveau WRInaute
 
Messages: 14
Inscription: Lun Jan 03, 2005 23:49

Message le Mar Avr 25, 2006 19:40

non pas de test ! je suis trop novice pour le faire...
voici un extrait de la table :

Code: Tout sélectionner
//CREATION DE LA TABLE XLAGENDA
mysql_select_db("$dbdb");
$query="CREATE TABLE $table_agenda (
  id int(11) NOT NULL auto_increment,
  nom text NOT NULL,
  date_debut date NOT NULL default '0000-00-00',
  date_fin date NOT NULL default '0000-00-00',
  description text NOT NULL,
  lieu text NOT NULL,
  categorie int(11) NOT NULL default'0',
  contact text NOT NULL,
  adresse text NOT NULL,
  email text NOT NULL,
  telephone text NOT NULL,
  fax text NOT NULL,
  lien text NOT NULL,
  url text NOT NULL,
  user text NOT NULL,
  actif tinyint(4) NOT NULL default '0',
  KEY id (id)
  )


...desole de ne pas pouvoir te donner plus d'élément ! mais n'hésite pas si tu as besoin d'autres détails.
encore merci
pascal

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Mar Avr 25, 2006 20:01

Dans mon premier SELECT je me suis planté :
c'est pas inscription mais description
je ne vois pas non plus de champ date, c'est soit date_debut, soit date_fin. Donc ta requête va devenir :
Code: Tout sélectionner
SELECT date_debut, description, contact
FROM xlagenda
ORDER BY date desc
LIMIT 0,5


ou

Code: Tout sélectionner
SELECT date_fin, description, contact
FROM xlagenda
ORDER BY date desc
LIMIT 0,5


ou

Code: Tout sélectionner
SELECT date_debut, date_fin, description, contact
FROM xlagenda
ORDER BY date desc
LIMIT 0,5


quicherche
Nouveau WRInaute
 
Messages: 14
Inscription: Lun Jan 03, 2005 23:49

Message le Mar Avr 25, 2006 20:14

le problème reste le meme ! histoire de fou ...
voici le script en entier en espérant que celui ci pourras d'aider :

Code: Tout sélectionner
<?php
// édition du début du fichier XML
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>letitre</title>';
$xml .= '<link>adresse</link>';
$xml .= '<description>description</description>';
// connexion a la base
@mysql_connect('xxxxxxxxx','xxxxxxx','xxxxxxx') or die("Connexion impossible");
@mysql_select_db('xxxxxxx') or die("Echec de selection de la base");
// selection des 5 dernieres news
$res=mysql_query("SELECT date_debut, description, contact FROM xlagenda ORDER BY date DESC LIMIT, 0,5 ");
// extraction des informations et ajout au contenu
while($tab=mysql_fetch_array($res)){   
$titre=$tab[titre];
$lien=$tab[lien];
$description=$tab[description];
$date=$tab[date];
$date2=date("D, d M Y H:i:s", strtotime($date));
$xml .= '<item>';
$xml .= '<title>'.$titre.'</title>';
$xml .= '<link>'.$lien.'</link>';
$xml .= '<pubDate>'.$date2.' GMT</pubDate>';
$xml .= '<description>'.$description.'</description>';
$xml .= '</item>';
}
// édition de la fin du fichier XML
$xml .= '</channel>';
$xml .= '</rss>';
// écriture dans le fichier
$fp = fopen("flux.xml", 'w+');
fputs($fp, $xml);
fclose($fp);
@mysql_close();
?>


si j'arrive à faire fonctionner ce script avec ton aide, je pense que celui pourrai intérrésser plus d'un webmaster qui souhaiterai porposer un flux rss...

merci pour le temps que tu prends
tahiti

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Mar Avr 25, 2006 20:23

la requête est encore fausse :
- il faut pense à remplacer date par date_debut dans le order by
- tu as un , de trop dans la LIMIT :
c'est par : LIMIT, 0, 5 mais LIMIT 0,5


Cette requête devrait marcher un peu mieux :
Code: Tout sélectionner
$res=mysql_query("SELECT date_debut, description, contact FROM xlagenda ORDER BY date_debut DESC LIMIT 0,5 ");


quicherche
Nouveau WRInaute
 
Messages: 14
Inscription: Lun Jan 03, 2005 23:49

Message le Mar Avr 25, 2006 21:07

En effet cela fonctionne !
exelent... cependant avant de faire une synthèse pour celles et ceux que cela intérressent, je souhaite savoir :

- si il est possible de rajouter des champs ?
exemple : nom, categorie
si oui quel est la procedure ?
faut il respecter l'ordre dans la table ?
merci encore
tahiti


quicherche
Nouveau WRInaute
 
Messages: 14
Inscription: Lun Jan 03, 2005 23:49

Message le Mar Avr 25, 2006 21:14

oups j'ai été un peu vite...
dur dur pour gerer les dates !
comment faire apparaitre les dates dans l'ordre ?
il s'agit donc d'un agenda et le but et de proposer la liste des évement avenir !

a quel endroit je peux faire apparaitre les bonnes infos par rapport à la date du jour ?
tahiti

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Mar Avr 25, 2006 21:18

quicherche a écrit:En effet cela fonctionne !
exelent... cependant avant de faire une synthèse pour celles et ceux que cela intérressent, je souhaite savoir :

- si il est possible de rajouter des champs ?
exemple : nom, categorie
si oui quel est la procedure ?
faut il respecter l'ordre dans la table ?
merci encore
tahiti


oui, tu peux rajouter tout les champs que tu veux à conditions qu'ils appartiennent aux tables sur lesquels tu fait le select.
L'ordre n'a aucune importante.

Pour prendre tout les champs :
SELECT * : cette syntaxe est déconseillé, surtout dans ton cas où presque tout les champs sont de type text.

autre syntaxe :

SELECT liste_des_champs_dont tu as besoin

SELECT date_debut, description, etc, etc.........

Il faudrait que tu trouve un tutoriel ou un ouvrage SQL pour les débutants. Sinon, là tu vas vraiment galérer.


quicherche
Nouveau WRInaute
 
Messages: 14
Inscription: Lun Jan 03, 2005 23:49

Message le Mar Avr 25, 2006 21:35

quicherche a écrit:a quel endroit je peux faire apparaitre les bonnes infos par rapport à la date du jour ?
tahiti


est ce dans la ligne :
Code: Tout sélectionner
$res=mysql_query("SELECT date_debut, description, contact FROM xlagenda ORDER BY date_debut DESC LIMIT 0,5 ");

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Mer Avr 26, 2006 8:37

Que désires-tu faire exactement ?
Effectivement c'est dans ton SELECT que tu vas filtrer tes résultats dans une clause WHERE.

Code: Tout sélectionner
SELECT liste_des_champs_qui_vont_bien
FROM xlagenda
WHERE now() BETWEEN date_debut AND date_fin
....


ou

Code: Tout sélectionner
SELECT liste_des_champs_qui_vont_bien
FROM xlagenda
WHERE date_debut < now()
....


ou des milliers d'autre possibilités en fct° de ce que tu veux faire.
Il te faut une formation de base en SQL. Je ne connais pas de bons tutos pour débutant, il va falloir que tu en trouves un.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités