Problème: une base de données et deux tables

Mammouth du PHP | 1776 Messages

10 juin 2005, 22:24

Pourquoi ne pas faire dans ce cas:
- id_gen
- id_lang_1 (nombre ou 0 si pas dans cette langue)
- id_lang_2 (nombre ou 0 si pas dans cette langue)
- id_lang_3 (nombre ou 0 si pas dans cette langue)

et une autre avec:
- id_article
- description
- article
Et si demain, il bosse avec 4 langues ?
Il est obligé de revoir tout son code ?

Perso, je ne ferais pas celà mais :
- une table langue avec un id_langue
- une table article avec les éléments communs indépendant de la langue (image, etc) avec un id_article
- une table description avec comme clef la combinaison id_langue-id_article et les élèment spécifique à la langue(description, etc).
SOrry :oops:
J'avais pas grillé ca :roll:
Je soutiens aussi ta méthode :wink:

Eléphant du PHP | 172 Messages

10 juin 2005, 22:30

Salut pjl et PRoGRaFLaSH !

Si ça vous intéresse, vous pouvez essayer la page ici:


Je pense que ça peut vous aider à comprendre mon problème.

.
Modifié en dernier par PhilFree le 15 juin 2005, 23:15, modifié 1 fois.

Eléphant du PHP | 172 Messages

11 juin 2005, 09:02

Si vous avez une idée concernant mon problème, je suis preneur.

Je ne sais vraiment plus quoi faire :?: :?: :?:

Mammouth du PHP | 19672 Messages

11 juin 2005, 09:18

if(mysql_num_rows($result2) > 0)
{
    $i = 1;
    while($val2    = mysql_fetch_array($result2))
    {
        echo "<br>image: " . $val2['picture'] . " " . $i;
        $i++;
    }
}
Affiche:

image: picture 1

alors que ça devrait afficher:

image: th_1107.gif 1

Est-ce que ça te serait utile de voir la page en fonction ?
Ce serait intéressant de voir d'une part la structure de la table et à coté la requête que tu fais : ce n'est pas tout à fait normal comme sortie ce que tu nous montres.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 172 Messages

11 juin 2005, 09:42

Structure de la table models:

model - varchar(20) clé primaire
picture - varchar(30)

La requête est dans mon post, mais je répète:
$query   = "SELECT * FROM dl WHERE `nom` LIKE '".$_POST['nom']."%' AND `langue` LIKE '".$_POST['langue']."' ORDER BY 'nom' ASC";
$result  = mysql_query($query);
$nbrfich = mysql_numrows($result);

$query2 = "SELECT 'picture' FROM models WHERE `model` = '" . $_POST['nom'] .  "'";
$result2= mysql_query($query2);                                     
$val2   = mysql_fetch_array($result2);
$image  = $val2["picture"]; 

if(mysql_num_rows($result2) > 0)
{
    $i = 1;
    while($val2    = mysql_fetch_array($result2))
    {
        echo "<br>image: " . $val2['picture'] . " " . $i;
        $i++;
    }
}
Résultat:

voir ici: http://www.gomaro.ch/asp/fichier2tables.php

Tu peux choisir 1107 comme Modèle :arrow:

Mammouth du PHP | 19672 Messages

11 juin 2005, 09:45

Ok, j'avais pas vu un détail, tu fais un SELECT non sur un champ mais sur une valeur:
$query2 = "SELECT 'picture' FROM models WHERE `model` = '" . $_POST['nom'] .  "'";
Devrait être:
$query2 = "SELECT picture FROM models WHERE `model` = '" . $_POST['nom'] .  "'";
Ou encore
$query2 = "SELECT `picture` FROM models WHERE `model` = '" . $_POST['nom'] .  "'";
l'apostrophe est un délimiteur de chaine de caractère en SQL, donc soit tu ne mets rien au tour du nom du champ, soit tu utilises l'accent grave `
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 172 Messages

11 juin 2005, 09:54

Cyrano,

Chapeau bas ! =D>

Monsieur, vous êtes le Phénix des hôtes du PHP.

un grand MERCI

Question subsidiaire, existe-t-il un correcteur syntaxique pour PHP ?
:idea:

Mammouth du PHP | 19672 Messages

11 juin 2005, 10:15

Un couple très pratique: des yeux agiles et un cerveau fonctionnel, sinon, un bon outil d'édition en PHP avec une coloration syntaxique personalisable et un système d'indentation automatique, le tout couplé avec une grande rigueur et de la discipline pour écrire du code proprement et l'habitude de commenter son code :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 172 Messages

11 juin 2005, 10:21

Un couple très pratique: des yeux agiles et un cerveau fonctionnel
C'est le seul logiciel qui n'est pas en download sur le Net si je comprends bien.
(je me demande encore comment tu as pu voir ' au lieu de ` :?: )

Heureusement qu'il y a PHP France et surtout Cyrano.

Merci encore Cyrano.

Post RESOLU

Mammouth du PHP | 19672 Messages

11 juin 2005, 10:29

...je me demande encore comment tu as pu voir ' au lieu de ` :?:
C'est une question de méthode de travail: j'ai des habitudes de codage systématiques tant au niveau de l'écriture elle-même que de la présentation. En général quand je corrige un code, la première chose que je fais avant même d'essayer de comprendre quoique ce soit, c'est de remettre le code en forme "lisible", c'est à dire que je fais les retours à la ligne, l'ajout au besoin des accolades manquantes (même quand elles ne sont pas obligatoires) et une indentation de l'ensemble du code. Après, je regarde si mon éditeur (Zend Studio) détecte des erreurs de syntaxe. Enfin, je cherche le raisonnement suivi par le codeur et je compare par rapport au résultat recherché pour comprendre s'il y a des chances d'arriver au but.

Après, c'est de l'habitude, mais ce qui précède représente déjà 90% du travail à mon avis.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: