PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#76 Re : Forum Général PHP » MyNews v1.2 incompatible php5 » 07-03-2011 02:41:27

vi j'avoue que la poo c'est pas évident pour un débutant, peut être dans le cadre d'une approche dessus.

si non faut reprendre le script qui utilise un html leger, prevue pour register globals on; il est adaptable simplement en rajoutant les $_POST au bon endroit, par contre pour un truc propre faut le reprendre entièrement ...

je suis pas super calé en modélisation mais je vois bien un exemple concret d'appli pooavec opur base mynews
0/ pourquoi poo etc (introduction à la chose, voir les cours etc, l'héritage et creer une classe étendu de PDO par exemple)
1/ le besoin modélisation des tables et uml simple pour la classe
2/ introduction à html 5 et css 3 (au poitn ou on en est smile )
3/construction de la classe et exemple d'application

en attendant il est possible de reprendre mynews et d'ajouter des commentaire et de faire une code valide php5 simple pour palier le problème temporairement smile

@+

#77 Re : Forum Général PHP » MyNews v1.2 incompatible php5 » 07-03-2011 02:41:27

en attendant y a la version que j'ai mis en liens qui fonction mais crade (y aun vieux extract($_POST) au début :d

je penche sur une V2 pour php5, poo, html 5 et css.

pour le coté tutoriel, cela inclus des commentaire bien sentit, pas d'utilisation des méthodes magique (je pense à __set() par exemple) utilisation de poo, revoir un peu les tables une utilisation de la norme SQL plus simple (et apporter une compatibilité avec d'autre sgbd simplement?).

enfin voila c'est encore sur le papier smile

(On peut aussi voir un tutoriel sur le sujet qui finit sur le code complet à DL ?)

@+

#78 Re : Forum Général PHP » MyNews v1.2 incompatible php5 » 07-03-2011 02:41:27

j'ai oublié y a une table à ajouter (fichier install/table.sql)

@+

#79 Re : Forum Général PHP » MyNews v1.2 incompatible php5 » 07-03-2011 02:41:27

sinon j'ai retrouvé dans mes archive une version modifiée qui devrait fonctionner avec php5 http://phpjungle.info/phpdebutant/MyNew … s1.2.2.zip
la seule différence c'est  l'ajout des smiley dans le système et certaine correction lié justement à la suppression des register global

bref ça fonctionne sous php5, faut quand même modifier le fichier de conf (config.inc.php). Attention pas de copie du fichier il à été modifié!


@+

PS : si je suis assez courageux pour finir j'ai une V2 sur le feu et je vais voir si l'on peu mettre la V1.2.2 en dl dans la partie téléchargement !

#80 Re : Forum Général PHP » MyNews v1.2 incompatible php5 » 07-03-2011 02:41:27

ce que MK indique c'est que l'on ne fait pas on indique comment faire.

MyNews est il est vrai assez vieux et totalement dépassé.

Il utilise des techniques qui n'ont plus court et qui te gene.

soit il faut pouvoir mettre à on les short tag ainsi que le paramètre register_globals à on sans cela le script ne peut fonctionner !

@+

#82 Re : Forum Général PHP » Script PHP d'une Login Page » 03-12-2010 18:39:28

salut,

que retourne la requête SQL ?

utilise la fonction header pour changer de page.

tu a oublié le session_start(à (à mettre sur toute les pages de l'espace membre).

@+

#84 Re : Forum Général PHP » pb sur un select » 02-12-2010 04:42:26

hum j'ai trouver une solution (enfin chez lmoli ça marche wink ) MK nous dira surement si c'est "propre" ;


select petition.id_petition, nom, type from petition
left join verif_petition using(id_petition)
where id_petition not in (select id_petition from verif_petition where id_signataire=860)
group by id_petition
order by id_petition desc;
 

voila

@+

#85 Re : Forum Général PHP » pb sur un select » 02-12-2010 04:42:26

hum vire le id_signataire de la requete (pas besoin et c'est ça qui met le brin tu récupère toute les signatures la


SELECT p.id_petition AS id_petition,
            p.nom AS nom,
            p.TYPE AS TYPE,
        FROM petition p
        LEFT JOIN verif_petition v ON v.id_petition = p.id_petition
      WHERE p.valid = 'oui' AND  v.id_signataire <> $id_signataire OR v.id_petition IS NULL
      GROUP BY p.id_petition
        ORDER BY p.id_petition DESC
 

si tu nous montrez les create tables des deux tables et un exemple de jeux de données ça pourrait aider smile (psa plus d'une vingtaine de donnée hein);

ps : pour le code SQL le bbcode c'est [ code=sql ] wink

@+

#86 Re : Forum Général PHP » Inner join impossible » 02-12-2010 09:23:02

@MK j'avoue que je pige pas, peut être hormis le fait que le like sur des nombre n'est pas ansi SQL mais une 'extension' mysql
enfin c'est quand même bon à savoir smile
merci

@+

#87 Re : Forum Général PHP » Inner join impossible » 02-12-2010 09:23:02

yop,

MK as-tu un lien qui explique cela, je n'en ai pas trouvé ? smile

merci

@+

#88 Re : Forum Général PHP » creer un panier ou cadie virtuel » 23-11-2010 23:53:58

c'est simple manque la parenthèse fermant de l'impode ...

je te conseil un editeur de txt qui colorise la syntaxe et indique les correspondances des parenthèses. (ou tu peu ausss tester netbeans, qunata etc)

@+

#89 Re : Forum Général PHP » Probléme d'alimentation d'une liste avec ajax sous IE » 23-11-2010 23:37:17

la marre de café ? c'est terrible pour la natation XD (sui deja dehors).

sinon entre IE et Firefox pour php c'est pareil, cela veut dire que cela peut venir d'ailleurs.

quel est le code qui généré les liste, quel est l'affichage html résultant etc!

@+

#90 Re : Forum Général PHP » Formulaire avec 4 boutons supplementaires » 23-11-2010 18:58:43

perso je dirais un fomulaire et en fonction du bouton cliqué (en fonction de sa valeur) tu traite la partie qui t'intéresse.

c'est un manière simple d'avoir "plusieurs" formulaires dans une page.

code traitement c'est simple


<?php
if (isset($_POST['submit_1'])) {
// je traite la partie1
}
elseif (isset($_POST['submit_2'])) {
// partie deux
}
....
else {
//cas par ou c'est un bouton voulu qui est cliqué (ie source modifiée etc)
}
?>

@+

#91 Re : Forum Général PHP » Requête SQl renvoie erreur? » 18-11-2010 16:19:08

salut,

en gros tout ce qui est caractère non-alphanumérique devrait être proscrit des noms de colonnes, tables ou bases et bien sur les mots clefs SQL (tel date comme l'indique Mk, mais aussi from select etc).

si tu veux une liste exhaustive => Liste des fonctions usuelles et indication si elles font partie de la norme SQL et si elle est implémentée dans le SGBD de ton choix (parmi les plus courants)

@+

#92 Re : Forum Général PHP » creer un panier ou cadie virtuel » 23-11-2010 23:53:58

salut,

hum le code la c'est un fourbit pas possible hmm

alors :
- pourquoi les sessions ? parce que c'est un moyen simple (relativement sécurisé) de reconnaitre la personne qui navigue sur ton site.
- comment fonctionnent les sessions ? si tu ne sais pas je t'invite a lire le cours sur le sujet.
- a tu regardé le source html de ta page ? (celle que tu met en lien) tu a pour le lien sur l'image du caddie <a href="Commande.php?prod=%22.$donnees[" idbdd']."'="">  donc la c'est clair tu un problème de concaténation sur le lien.

Le principe de base pour un caddie
- une variable de session (qui peut être appelé panier)
- Pas besoin de ce tout ce qui est dans ton code, il te suffit d'y mettre l'id et la quatitée du produit dans le caddie. pour cela, en général, on met la référence en clef et la quantité dans le tableau ce qui veut dire
$_SESSION['panier'][reference] = quantité; c'est tout.

tu va donc avoir un tableau ($_SESSION['panier']) qui va contenir les quantités commandées et la référence

comment ajouter ?
il faut un lien comme le tiens <a href="?prod=reference&action=ajoutpanier">ajouter un article</a>
que veut dire ce lien ? le ?permet d'indiquer la page courante, ça veut dire que l'on va faire l'ajout dans le panier sur la même page que celle qui affiche le catalogue (c'est plus simple ça évite une redirection ensuite).
donc en haut de catalogue.php


<?php
if (!isset($_GET['action']) && $_GET['action']=='ajoutpanier')) {
// on a cliqué sur le lien pour ajouter un article
if (isset($_GET['prod'])) {
// on regarde si le produit est deja dans le panier si oui on  fait un ++ si non on ajoute le produit dans le panier
if (isset($_SESSION['panier'][$_GET['prod'] ])) {
// l'article existe on en ajoute un
$_SESSION['panier'][$_GET['prod']]++;
}
else {
//l'article  existe pas on l'ajoute
$_SESSION['panier'][$_GET['prod']] = 1;
}
}
else {
$erreur = 'ben y a pas de produit je pas ajouter hein ....';
}
}
?>

voila pour l'ajout quelque soit l'article. C'est vraiment basique, il serait bon, par exemple, de vérifier si la référence existe, si tu l'a en stock etc).

comment afficher le panier ?
- il faut récupérer les infos des produits, pour cela rien de plus simple, la fonction array_key retourne un tableau contenant les clef d'un tableau.
la requete SQL devient simple $select = 'SELECT nom, description, prix etc from tableproduit where reference in ('.implode(',',array_key($_SESSION['panier']).')';
ensuite dans le traitement de la requête tu récupère la quantité dans le tableau panier et tu fait le calcul
par exemple


<?php
$select = 'SELECT reference,nom, description, prix,livraison from tableproduit where reference in ('.implode(',',array_key($_SESSION['panier']).')';
$result = mysql_query($select);
echo '<table><thead><tr><th>Ref</th><th>Nom</th><th>description</th><th>P.U</th><th>Quantitée</th><th>prix total</th><th>Livraison</th><th>Total</th></tr></thead>
<tbody>'
;
$total = 0;
$livraison = 0;
while ($data = mysql_fetch_assoc($result)) {
  $prix = $_SESSION['panier'][ $data['reference'] ] * $data['prix'];
  $total += $prix;
  $liv = $data['livraison'] * $_SESSION['panier'][ $data['reference'] ];
  $livraison += $data['livraison'];
  echo '<tr>
    <td>'
.$data['reference'].'</td>
    <td>'
.$data['nom'].'</td>
    <td>'
.$data['description'].'</td>
    <td>'
.$data['prix'].'</td>
    <td>'
.$_SESSION['panier'][ $data['reference'] ].'</td>
    <td>'
.$prix.'</td>
    <td>'
.$liv.'</td>
    <td>'
.($prix+$liv).'</td>
    </tr>'
;
}
echo '</tbody>
<tfooter>
<tr>
<td colspan="7">Total livraison</td>
<td>'
.$livraison.'</td>
</tr>
<tr>
<td colspan="7">Prix total</td>
<td>'
.$total.'</td>
</tr>
<td colspan="7">Prix total avec livraison</td>
<td>'
.($total+$livraison).'</td>
</tr>
</tfooter>
</table>'
;
?>

après il te faut adapter la requête pour avoir les bonnes infos (nom des champs, jointure sur autre table etc)

il te faut sauvegarder la commande quelque part ? (le mieux serait dans une table ce qui pourrait t'orienter vers un panier dans le SGBD plutôt qu'en session, bien que pour la commande tu n'ai pas besoin de mettre le tout dans un table tu garde ça pour la validation de la commande.
exemple de table commande



CREATE TABLE commandes (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  numerocmd INT NOT NULL,
  refclient INT NOT NULL,
  datecommande DATE NOT NULL,
  PRIMARY KEY(id)
)TYPE=myisam

CREATE TABLE produitscommandes(
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  idcommande INT UNSIGNED NOT NULL,
  reference INT NOT NULL,
  quantite INT NOT NULL,
  PRIMARY KEY(id)
)TYPE=myisam;
 

avec une telle structure tu a des commandes (tables commandes) et des produits liés à la commande (table produitscommandes).
dans la table commande tu à les infos nécessaire qui sont la référence de la commande, la référence client (qui est en fait la clef primaire de la table client) cela permet de savoir à qui est la commande.
la seconde table contient les articles de chaque commande.
Le prix totale de la commande étant calculé à la volée (tu peut le faire en SQL, à la limite tu peut ajouter un champ à la première table pour limiter l'utilisation du SGBD mais pas vraiment utile).

j'ai fait au plus simple mais perso j'utiliserais des tables innodb pour utiliser les clefs étrangères et forcer intégrité des données des tables (impossible d'avoir une référence d'article qui ne serait pas dans la table des articles etc).

voila comment répondre à ta question "simplement".
ce n'est pas compliqué mais il faut être à l'aise avec les sessions et les requêtes SQL.

@+

#93 Re : Forum Général PHP » Divers Scripts » 17-11-2010 21:30:58

joomla est assez complet effectivement par contre cela nécessite un apprentissage de leur façon de faire.

il y a aussi, il me semble, pas mal de support.

@+

#94 Re : MySQL, PostgreSQL, etc... » Erreur de syntaxe create table » 10-11-2010 13:34:40

a ba oui le crétin hmm

Merci MK, j'y avais pas du tout pensé hmm

ça me montre que les outils sont pas toujours moins bête que moi smile

après la séance de flagellation je retour chatouiller postgre

merci

@+

#95 Re : MySQL, PostgreSQL, etc... » Erreur de syntaxe create table » 10-11-2010 13:34:40

hum bon j'ai trouvé le pb a force de bidouiller mais je sais pas pourquoi


CREATE  TABLE adherents (
  `idadherents` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `nom` TINYTEXT NOT NULL ,
  `prenom` TINYTEXT NOT NULL ,
  `villes_idvilles` INT UNSIGNED NOT NULL ,
  `complementadresse` TINYTEXT NOT NULL ,
  `telephone` TINYTEXT NULL ,
  `email` TINYTEXT NULL ,
  `sexe` ENUM('M','F') NOT NULL DEFAULT 'M' ,
  PRIMARY KEY (`idadherents`, `villes_idvilles`) ,
  INDEX `fk_adherents_villes1` (`villes_idvilles`) ,
  CONSTRAINT `fk_adherents_villes1`
    FOREIGN KEY (`villes_idvilles` )
    REFERENCES `mediatheque`.`villes` (`idvilles` )
    ON DELETE cascade
    ON UPDATE CASCADE
  )ENGINE = InnoDB;

    ON DELETE cascade le set null n'est pas apprécié faudrais que je vois dans la doc le pourquoi du comment mais c'est assez obscure smile

@+

#96 Re : Forum Général PHP » Divers Scripts » 17-11-2010 21:30:58

salut,

je n'ai pas d'idée de script deja existant. Il va falloir regardé du coté des "CMS" type e commerce ou gestion de boutique / stock.

Malheureusement tous ceci est assez complexe donc il y a des chances que cela soit payant.

Pour info je pense qu'il y a des confusions dans les termes

. e une nouvelle base de donnée et créer ces différents champs, voir en rajouter ultérieurement (ex: logistique de nos éléments actifs: emplacements, adresse ip, recu le, mise en place le, etc..). De même il faudrait qu'il y ai une base de donnée de base avec tous les types de produits de base qui seront utilisées par chaque base de donnée créer

il y a confusion entre table et base de donnée.

une base de donne contient des tables, et les tables contiennent les données.

bonne recherche.

@+

#97 Re : Forum Général PHP » Comment attribuer une autre image? » 09-11-2010 18:16:50

commet récupère tu le grade du membre dont tu affiche l'image ?
une fois que tu a répondu à cette question tu peut suivre le reste.

@+

#98 Re : Forum Général PHP » Comment attribuer une autre image? » 09-11-2010 18:16:50

heu voui tu charge les images avec le bon imagecreate ensuite tu met le tout dans une seule image que tu affiche avec image(gif|png|jpg) etc

@+

#99 Re : Forum Général PHP » Comment attribuer une autre image? » 09-11-2010 18:16:50

dans un repertoire tu met tes images grade1.pjg, grade2.jpg etc

pour l'affichage


<?php
//je pense que tu sais faire pour trouver le grade qui sera dans la variable $grade
echo '<img src="repertoireimage/'.$grade.'.jpg" title="'.$grade.'" />';
?>

pour l'insérer dans une autre image utilise la librairie GD =>http://www.phpdebutant.org/article111.php ou exemple 8

si tu souhaite plusieurs taille il faut un répertoire par taille et le même nom à chaque fois.

@+

#100 Re : Forum Général PHP » Comment attribuer une autre image? » 09-11-2010 18:16:50

hum,

je te conseil d'avoir les fichier sur ton disque dur (enfin dans la partie site web) et tu renomme les fichier en fonction des grades.

cela évite les soucis si le site distant change, pis y a les droit d'auteur etc

@+

Pied de page des forums

Propulsé par FluxBB