Liste de naissance PHP avec BD access [Résolu]

Signaler
Messages postés
14
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
23 février 2006
-
Messages postés
14
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
23 février 2006
-
Bonjour tout le monde,


je serais dans 2 mois (avant peut-etre ?) le papa d'une petite fille...

Les amis et la famille nous demandent si nous avons une liste de
naissance. On a donc fait le choix de choisir quelques articles qui
nous plaisent

et de les indiquer sur un site perso pour que tout le monde puisse voir ce qu'on aimerait recevoir eventuellement....

Pour ça il me faudra de koi gérer les articles en me renseignant
sur leur dispo en les les retirant d'une BD access par exemple ?


Ex :

Tata Jeanine veut prendre la turbulette et le canard qui fait "pouic-pouic".

Elle les sélectionne par des cases à cocher, indique son nom et fais "Réserver".


Là-dessus, j'aimerais recevoir un mail, et voudrais que les
articles disparaissent de ma page au fur et a mesure que les gens les
commandent.


Je n'y connait vraiment pas grand chose en PHP mais je sais que c'est réalisable.

Quelqu'un peut-il m'aider à mettre ça en place SVP ??

Merci d'avance.


PS : je sais que des magasins proposent de creer et de gerer
en ligne ce type de liste mais on ne veux pas imposer aux gens tel ou
tel type de magasin...

24 réponses

Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
essaie plutot ca :
echo ''.$data['art_libelle'].''.$aEtats[$data['art_etat']].'
';
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
echo '';
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
Bonjour et toutes mes félicitations !

pour ce que tu veut faire deja oublie ACCESS. pour les sites persos vaut mieux utiliser une base de données MySQL avec le PHP.

Ensuite grosso modo ca donne :
une table article resemblera à : art_id - art_designation - art_etat - art_personne

nb : le art_etat te servira pour savoir si l'article est reservé(1) ou non(0)

pour afficher les articles encore disponible$result mysql_query("SELECT art_id, art_designation FROM article WHERE art_etat 0");
while(list($art_id, $art_designation) = mysql_fetch_row($result))
{
// affichage
}

et lorsqu'un article sera choisi
"UPDATE article SET art_etat=1 WHERE art_id='".$art_id."'"

bon courage pour tout :)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Oh, j'avais zappé ce post.
Félicitations, en effet :-)

Ce que tu veux faire est ttrès facile à faire. Même avec Access, mais bon, ici tu trouveras plutôt des préférences pour mysql :-)

Pour l'occasion, je t'aiderais volontiers mais je crains de manquer de temps...Ceci dit, on peut voir.

Ecris-moi un MP, en décrivant plus précisément ce que tu veux, et on avisera. Il te faut un hébergement supportant php, et mysql (je n'ai jamais utilisé Access et je ne tiens pas à commencer...).
Messages postés
14
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
23 février 2006

MERCI beaucoup les gars !
par contre, je n'y connais absolument rien en mysql (pas bp non plus en access a vrai dire...) !!!
Déjà, j'utlise easyPHP 1.8.
je viens donc de creer une table appellé "bd_naissance" contenant les champs :
- art_id
- art_designation
- art_etat
- art_personne

le code PHP (?) de cette table me donne :
CREATE TABLE `article` (
`art_id` VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`art_designation` VARCHAR(30) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`art_etat` VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`art_personne` VARCHAR(20) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL
)

EUH, JE COMPRENDS RIEN !!!!
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
C'est pas gagné... ;-)

Moi, je ferais ces tables, pour faire simple :

CREATE TABLE `articles` (
`art_id` int(10) unsigned NOT NULL auto_increment,
`art_etat` tinyint(1) unsigned NOT NULL default '0',
`art_libelle` varchar(255) NOT NULL,
`pers_id` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`art_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

et

CREATE TABLE `personne` (
`pers_id` int(10) unsigned NOT NULL auto_increment,
`pers_nom` varchar(255) NOT NULL,
PRIMARY KEY (`pers_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

pour commencer.

pers_id étant la clef étrangère, dans la table articles, la reliant avec la table personne.
Tu peux aussi n'en faire qu'une, avec art_personne en varchar, mais cette manière évitera que Tata Jeanine écrive une fois tataJeanine, une fois TATA JEANINE etc... ;-) et de pouvoir du coup sortir tous les articles qu'elle aura sélectionné plus facilement.
Messages postés
14
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
23 février 2006

TROP FORT les gars....
j'ose à peine le demander :
euh.... ensuite ?
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Lol, ensuite quoi, t'en es où?
Messages postés
14
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
23 février 2006

désolé, mes 2 tables sont créées :
- TABLE "articles" :
CREATE TABLE `articles` (
`art_id` int(10) unsigned NOT NULL auto_increment,
`art_etat` tinyint(1) unsigned NOT NULL default '0',
`art_libelle` varchar(255) NOT NULL,
`pers_id` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`art_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- TABLE "personne" :
CREATE TABLE `personne` (
`pers_id` int(10) unsigned NOT NULL auto_increment,
`pers_nom` varchar(255) NOT NULL,
PRIMARY KEY (`pers_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Je renseigne à la main la base "articles" (gigoteuse, tapis etc...) mais comment puis-je afficher le contenu de mes tables dans une page PHP ?
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Pour commencer tu devrais peut-être lire quelques tutos sur php / mysql (voire html peut-être?) : connexion à une base, interrogation de la base, affichage des résultats.

En gros, on se connecte : mysql_connect ();
http://fr2.php.net/manual/fr/function.mysql-connect.php

(je ne mets que ce lien, les autres fonctions y sont accessibles).

On selectionne une base de données :
mysql_select_db('articles');

On déclare une requête :
$sQuery = 'SELECT art_libelle FROM articles';

On l'exécute:
$rQuery = mysql_query ($sQuery);

On va chjercher les résulats, on les parcourt, on les affiche :

while ($sRes = mysql_fetch_assoc ($rQuery)) {
echo $sRes['art_libelle'], '
';
}

et je passe sur la gestion des erreurs sinon on en a pour des heures... ;-)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
de 1) connexion à la base de données
il faut juste definir les parametres $host,$login,$pass et $bdd
<?php
mysql_connect($host,$login,$pass) or die ();
mysql_select_db($bdd);

$result = mysql_query("SELECT art_id, art_libelle FROM WHERE art_etat=0");
if (mysql_num_rows($result)!=0)
{
while (list($art_id, $art_libelle) = mysql_fetch_row($result))
{
echo 'ID de l'article : '.$art_id.' et LIBELLE : '.$art_libelle.'
';
}
}
?>
Messages postés
14
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
23 février 2006

Resalut les gars,
j'ai un peu avancé sur mon pb, malheureusement je bloque pour afficher les données de ma table.
voici une partie de mon code :

//sélection des articles encore dispo
//requete
$sql = 'SELECT art_libelle FROM articles';

//envoi de la requete
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

// boucle
while($data = mysql_fetch_assoc($req))
{

echo ''$data['art_libelle']' '$data['art_etat'],'
';
}

//deconnexion SQL
mysql_close();

?>

</html>

J'obtiens les valeurs de ma table sous la forme :
canard ()turbulette ()

1ere question, moi je voudrais :
canard dispo
turbulette réservé

2eme question : actuellement g ds ma table "articles" un champ art_etat. comment mettre comme valeur "dispo" ou "réservé" à chaque fois que je rentre un nouvel article ?

3eme question : comment associé une image à un article ?

Merci d'avance !!
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

1 - tu ne vas chercher, dans ta requête, que art_libelle. Tu dois aussi aller chercher art_etat : SELECT art_libelle, art_etat FROM articles


2 - tu as mis un tyniint pour ce champ ? Si oui, il doit être à 0 par défaut, indiquant que l'article est dispo. Si quelqu'un réserve un article, tu passes ce champ pour cet article à 1. Dans l'affichage de ta liste, je te propose un truc du genre :$aEtats array (0> 'Disponible', 1 => 'Réservé');

while($data = mysql_fetch_assoc($req))
{
echo ''$data['art_libelle']' '$aEtats[$data['art_etat']],'
';
}

3 - tu peux ajouter à ta table article un champ art_photo, un varchar (255). Tu stockeras dedans le chemin vers la photo de l'article.
Il y a plein de possibilités...tu peux aussi simplement mettre les photos dans un répertoire, et leur donner comme nom l'id de l'article. Par exemple : 1.png sera le canard. Et dans l'affichage de ta liste, il te suffit de récupérer l'id de l'article dans ta requête (d'ailleurs tu en auras besoin de toutes façons, donc ajoute le dans le select), et d'afficher la photo id_article.png.
Messages postés
14
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
23 février 2006

Merci pr les infos mais il doit me manquer des trucs...
je capte difficilement quand même.....
Voici mon code modifié :

//sélection des articles encore dispo
//requete
$sql = 'SELECT art_libelle,art_etat,photo FROM articles';

//envoi de la requete
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

// boucle
//while($data = mysql_fetch_assoc($req))
//{
//echo ''.$data['art_libelle'].' '.$data['photo'].' ('.$data['art_etat'].')';
//}

//boucle$aEtats array (0> 'Disponible', 1 => 'Réservé');

while($data = mysql_fetch_assoc($req))
{
echo ''$data['art_libelle']''$aEtats[$data['art_etat']],'
';
}
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Vi, et..?
Messages postés
14
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
23 février 2006

ça veut dire que je comprends le principe mais qu'il doit y avoir un pb de syntaxe là-dedans, non ?? :

//sélection des articles encore dispo
$sql = 'SELECT art_libelle,art_etat,photo FROM articles';

//envoi de la requete
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

//boucle$aEtats array (0> 'Disponible', 1 => 'Réservé');

while($data = mysql_fetch_assoc($req))
{
echo ''$data['art_libelle']' '$aEtats[$data['art_etat']],'
';
j'obtiens sur cette ligne :Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in /var/www/sdb/c/c/patte.sebastien/liste.php on line 51
}

//deconnexion SQL
mysql_close();
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
C'est ma faute, j'ai oublié les virgules, désolé (ce que putch a remplacé par des points : les deux sont valables).
Messages postés
14
Date d'inscription
mardi 13 mai 2003
Statut
Membre
Dernière intervention
23 février 2006

Merci beaucoup.
Logiquement, si ds ma table SQL j'ai un champ dénommé art_photo et créé comme suit :
ALTER TABLE `articles` CHANGE `art_photo` `art_photo` VARCHAR(255) NOT NULL

ma valeur varchar corresponds a l'URL de ma photo, non ? parce qu'a l'affichage de ma page je ne vois pas la photo mais juste le lien....
comment puis-je faire SVP ?
autre petite question débile: je me retrouve avec un texte brut du genre :

Il reste 2 article(s) disponible.http://patte.sebastien.free.fr/images/tapis_eveil_lola.jpgTapis d'éveil NOUKIE's vache LOLADisponibleTour de lit Noukie's vache LolaDisponible
comment puis-je mettre des espaces et des saut de ligne dans ma mise en page ??

Merci d'avance
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
pour un mise en page simple tu peux faire :

while($data = mysql_fetch_assoc($req))
{
echo '----
, '.$data['art_libelle'].', '.$aEtats[$data['art_etat']].', ';
}