PHP|Débutant :: Forums

Advertisement

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

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

#101 Re : Forum Général PHP » Appli php sans base de données. Comment autoriser caractère exotique ? » 06-11-2010 22:41:10

hum ton header n'est pas bon tu ne peut pas le changer ainsi.

tu peut l'ajouter sur la page qui affiche le formulaire, ajouter dans le formulaire un accetpcharset et surtout au taitement du formulaire voir avec utf8_encode ou utf8_decode.

@+

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

moogli
Réponses : 3

Salut les gens,

bon ben voila je joue avec mysql workbench, c'est rigolo mais il créer des tables bizard mais surtout que mysql ne veut pas.
L'un d'entre vous peut il me dit ce qui ne va pas dans ce qui suit ?

pour info le message d'erreur : Error | 1005 | Can't create table 'mediatheque.adherents' (errno: 150)


CREATE  TABLE IF NOT EXISTS `mediatheque`.`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` ASC) ,
  CONSTRAINT `fk_adherents_villes1`
    FOREIGN KEY (`villes_idvilles` )
    REFERENCES `mediatheque`.`villes` (`idvilles` )
    ON DELETE SET NULL
    ON UPDATE CASCADE)
ENGINE = InnoDB
COMMENT = 'ce sont lesgens qui emprunte les trucs de la mediatheques';
 

Merci grandement smile

@+

#103 Re : Forum Général PHP » Appli php sans base de données. Comment autoriser caractère exotique ? » 06-11-2010 22:41:10

salut,

c'est (surement) un problème de charset, utf-8 VS ISO-8859-*.

google t'aidera je pense.

Mais essai d'indiquer le charset, pour le fichier html, pour la sauvegarde de ton fichier .php (c'est normalement réglable dans tout bon éditeur de texte wink ).
c'est aussi réalisable pour le formulaire.

Il faut penser à le faire aussi pour le SGBD (le gestionnaire de base de donnée) qui n'est pas forcément dans le charset voulu.

@+

#104 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

Exemple de code pour avoir les prix avec les calcules et le total :


<?php
$_SESSION['panier'][1]=24;
$_SESSION['panier'][2]=9;
$_SESSION['panier'][3]=1981;
echo '<h1>Test</h1>';
try{
        $bdd = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
        $requete = 'select id,description,prix from catalogue where id in('.implode(',',array_keys($_SESSION['panier'])).')';
        $res = $bdd->query($requete);
        echo '<table>
            <thead>
                <tr>
                    <th>id</th>
                    <th>Description </th>
                    <th>Prix unitaire</th>
                    <th>Quantité</th>
                    <th>Prix total</th>
                </tr>
            </thead>
            <tbody>'
;
        $total=0;
        while ( $data = $res->fetch(PDO::FETCH_OBJ)) {
            $p = $data->prix * $_SESSION['panier'][ $data->id ];
            echo '<tr>
                    <td>'
,$data->id,'</td>
                    <td>'
,$data->description,'</td>
                    <td>'
,$data->prix,'</td>
                    <td>'
,$_SESSION['panier'][ $data->id ],'</td>
                    <td>'
,$p,'</td>
                </tr>'
;
            $total += $p;
        }
        echo '</tbody>
            <tfoot>
            <tr>
            <td colspan="4" style="text-align:right;paddind-right:20px;">Total :</td>
            <td>'
,$total,'</td>
            </tr>
            </tfoot>'
;
        $res->closeCursor();
}

catch(Exception $e){
        echo 'Erreur : '.$e->getMessage().'<br />';
        echo 'N° : '.$e->getCode();
}
$bdd = null; // "déconnection" du sgbd, c'est crado je trouve ça !
?>

La table utiliser pour le test


CREATE TABLE `catalogue` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`prix` float NOT NULL,
`description` tinytext NOT NULL,
PRIMARY KEY (`id`)
ENGINE=MyISAM;

#Données de test
insert into catalogue (prix,description) values(28.2,'prems'),(50.0,'a 50'),(21,'test);

voila commetnnt je ferais avec une table minimaliste a toi d'adapter.

@+

Ps : j'ai utiliser PDO pour tester mais tu fait comme tu veut hein :d

#105 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

pour le caractère foireux c'est clairement un soucis d'encodage (utf-8 VS iso-machin smile ) vérifie ce que tu utilise sur ton éditeur, ce que tu met dans l’entête du mail etc). le plus simple est surement de le remplacer par un é je pense !

Pour les sessions le plus simples c'est d'ingurgiter le tuto http://phpdebutant.org/article69.php (indispensable pour bien piger la suite wink).

Tu va avoir "besoin" de base de donnée pour gérer le catalogue (faut bien mettre ce que tu vend quelque part). Pour cela on utilise la base de donnée, mais pourquoi pas des fichiers (le 1er est "plus simple").

donc dans la session (la variable $_SESSION qui est un tableau) on met un tableau php ( qui va contenir lui même un tableau, ben oui un tableau de tableau de tableau smile ).
ça parait compliqué mais c'est simple :
- $_SESSION : variable globale qui contient tous ce que tu veut mettre en session
- $_SESSION['panier'] contient tous ce client achete
$_SESSION['panier'] contient un tableau indexé par la clef primaire de la table des produits (la clef primaire est un identifiant unique). la valeur sera la quantité que le client acheté.

imagine que tu soit marchand de primeur, tu aura dans la table mysql (ou autre) des pommes des poires etc
par exemple
clef    |   fruit
1       |   Pomme
2       |   Poire
3       |   banne
4       |   clémentine
5       |   raisin

si le client achète 28 poires et 4 clémentines et 75 bannes le tableau sera

array
  'panier' =>
    array
      2 => int 28
      4 => int 4
      3 => int 75

lorsque tu arrive sur la page de récapitulatif du panier il te faut récupérer les prix des éléments choisis par le client (les clefs du dernier tableau) et faire le calcul de chaque produit.

Ça peut  paraitre compliqué mais si tu suis les tutos tu devrais comprendre wink

@+

#106 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

heu tu sais utiliser tous ça ?

il te suffit de faire une concaténation de la pile d'information que tu sort du formulaire (lignes 67 à 75). idem avec les articles du panier qui sont en session et de tout mettre dans la variable $message, avant envoie du mail.

pour info str_replace accepte des tableaux en paramètre (exemple deux de la doc).

pourquoi remplacer une quote par une quote ? (ligne 86).
je pense qu'un htmlspecialchars_decode serait,peut être, plus indiqué pour ce que tu fait ?

@+

#107 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

salut,

sur le principe, ça devrait être bon sauf :

- Pas de mailto dans l'action du formulaire, c'est une page php qui va envoyer l'email avec la fonction mail.
- pour le panier, soit tu met en session le panier soit tu créer une table mysql pour cela. en général la session suffit, il faut utiliser tableau du genre
$_SESSION['panier']['code article'] = quantité.

dans ce cas l'affichage se fait à partir du tableau de session et le calcul du prix avec mysql ou php comme tu veut.

ensuite il "suffit" d'envoyer le mail avec les info et les coordonnées du client.

@+

#108 Re : Forum Général PHP » Comment Instaurer une pause avec sleep() toutes les 10 lignes » 08-11-2010 12:58:34

Salut
Il faut que tu test si le modulo 10 de i est egale a zero to test a toi est toujours vrai !
If ( ($i%10)==0) sleep(2);

Attetion tu risque de te retrouver en timeout si tu a un gros jeux de données (30s).

@+

#109 Re : Forum Général PHP » Gros problème d'affichage de mes pages » 08-11-2010 13:01:41

salut,

tu fait de l'url rewrting ?

ton formulaire indique une méthode"post" ton code de pseudo-frame indique une méthode get,ce qui me fait poser la première question ? de plus ton switch affiche des lies vers pages/xx.php le dossier "pages" existe il ?

peut tu nous faire un wall du code source html que tu récupère lors des deux affichages (avec et sans l'erreur) ?

@+

#110 Re : Forum Général PHP » Besoin d'aide pour un regex » 28-10-2010 10:34:14

pour répondre
la solution du $chaine[0] permet de savoir s'il y a un / au début de la chaine.
si c'est le cas substr et strpos te permet de finir ce que tu souhaites au final

donc la solution en 3 lignes


<?php
if ($chaine[0]=='/') {
$mot = substr($chaine,1,strpos($chaine,' '));
}
?>
 

plus qu'a tester !

ps : je suis d'accord avec JC il (et les autres) ont répondu à la question posée tu n'as simplement pas su la poser !

@+

#111 Re : Forum Général PHP » Formulaire mail php : bouton radio se décoche » 28-10-2010 10:09:29

ou alors tu fait comme pour les autres en vérifiant la valeur dans le tableaux avant d'ajouter checked="checked" pour l'élément choché.

pour info un très bon site sur html (entre autre) http://fr.selfhtml.org

@+

#112 Re : Forum Général PHP » Récupérer Checkbox PHP » 26-10-2010 20:03:21

utilise un nom precis pour le champ texte et si dans $_POST['Ques7'][] tu a pour valeur 'Autre....' tu exploite la valeur de $_POST['champtext'].

oublie le JS c'est pas certain !

@+

#113 Re : Forum Général PHP » Problème de requête » 30-10-2010 11:20:39

salut,

heu c'est quoi qui va pas en fait ?

a vue de nez ce que tu nous montre n'est pas le bon code, c'est la page contenue.php complète ça ?

(tu dois avoir une erreur d'aiguillage quelque part)

@+

#114 Re : Forum Général PHP » Affichage d'un tableau pour 2 tables différentes » 26-10-2010 13:15:02

hum donc jointure sur id destinataire si tu souhaite son non une simple requete sélect

select marche_mvt.heure_arrivee as hmarche, pet_mvt.heure_arrive as hpet, action from marche_mvt,pet_mvt where marche_mvt.id_pseudo=pet_mvt.id_pseudo and pet_mvt='.$_SESSION['id'];

tru regarde si la valeur de action est null tu affiche transport.
quand a tes requete précédente, si tu met le id pet ça va pas être simple vue qu'il n'existe pas sur la table marche !

@+

#115 Re : Forum Général PHP » Affichage d'un tableau pour 2 tables différentes » 26-10-2010 13:15:02

je crois que le plus simple serais que tu monter les tables et que tu nous indique ce que tu veut et s'il existe des liaisons entre les deux tables.

si il y a liaison il y aura jointure !

@+

#116 Re : Forum Général PHP » Besoin d'aide pour un regex » 28-10-2010 10:34:14

heu t'a un peu cherché ?

il suffit d'ajouter un truc "simple" dans la regexp
pour l'apprentissage des expression régulière => http:/www.expreg.com
pour tester tes regexp http://lumadis.be/regex/test_regex.php?lang=fr

@+

#118 Re : Forum Général PHP » Session » 23-10-2010 04:23:18

salut,

Avant toute chose, il faut vérifier que le ref existe bien dans l'url (avec empty par exemple). ensuite c'est un peu le foutoire dans ton code la!

première page


<?php
session_start();
if (!empty($_GET['ref'])) {
$_SESSION['referant'] = $_GET['ref'];
}
?>

la seconde page


<?php
session_start();
echo $_SESSION['referant'];
?>

que te donne juste ce code ?

@+

#123 Re : Forum Général PHP » faire la statistique des éléments d'un tableau » 21-10-2010 22:57:22

Après décorticage de neurones j'en conclus que :
- tu souhaites un tableau contenant toute les valeurs retournées par la requete SQL.
- je suppose qu'il y a plus d'une colonne ?
- je propose une solution !

Dans le while au lieu de mettre une colonne tu mets direct $rowE dans $test[]

Ou alors créer des tableaux de tableaux de tableaux indexés par le nom de la colonne

<?php
While (....){
$test['colonne1'] [] = $row[0];
$test['colonne2'] [] = $row[1];
//idem pour les autres
?>

Voila comment réaliser ce que je pense avoir compris que tu souhaites !

@+

#124 Re : Forum Général PHP » faire la statistique des éléments d'un tableau » 21-10-2010 22:57:22

salut,

explique nous plus clairement ce que tu veut faire par ce que sans vouloir te vexer => avoir un tableau de plusieurs element apres ma sélection que je veux comparer ensuite faire le statistique
ça ne veut rien dire hmm

@+

#125 Re : Forum Général PHP » Comment faire la somme et la moyenne des valeurs saisies dans un formu » 01-11-2010 13:58:58

a savoir quand tu utilise des " il s'agit d'une chaine de caractère et non d'un chiffre.
la bonne syntaxe est donc : $tab_chiffres[0] = 33;

Les données provenant d'un formulaire sont aussi des chaines de caractères. Il serais intéressant de savoir si le champ ne contient que des chiffres (pour ne pas avoir des choses exubérantes). Pour cela tu peut utiliser une expression régulière avec simplement la classe [0-9] ou utiliser simplement la fonction is_numeric.

une fois que tu a la somme avec array_sum il "suffit" de diviser par le nombre d'élement du tableau (fonction count()) pour avoir la moyenne arithmétique simple sans aucune pondération (la c'est plus complexe).

pour vérifier tous les élément d'un tableau en une seul fois la fonction array_walk te sera utile smile

@+

Pied de page des forums

Propulsé par FluxBB