Probléme requéte SQL

Eléphant du PHP | 101 Messages

15 nov. 2005, 23:32

Bonjour a tous voila mon script
if(isset($val)) // si l'adresse ip existe on met a jour les informations
	{
	mysql_query("UPDATE statistique SET parcours='$parcours', time='$time' WHERE adresse_ip='$adresse_ip'");
	}
sauf que la les informations sont remplacer moi ce que je voudrais
c'est ajouter les nouvelle informations a la suite de ceux qui sont deja présent dans la base de données

si quelqun a une idée.

merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 nov. 2005, 23:38

Salut,

ajout de données dans une table => requête INSERT

dans la doc officielle :
http://dev.mysql.com/doc/refman/5.0/fr/insert.html

tutoriels :
http://www.phpdebutant.org/article63.php
http://www.phpdebutant.org/article67.php

Mammouth du PHP | 19672 Messages

15 nov. 2005, 23:38

Si tu fais une requête UPDATE, ça va mettre à jour des données existantes: Pour ajouter de nouvelles données, c'est une requête INSERT qu'il faut faire:
if(isset($val)) // si l'adresse ip existe on met a jour les informations
    {
    mysql_query("INSERT INTO statistique (`parcours`, `time`, `adresse_ip`) VALUES('". $parcours ."', '". $time ."' '". $adresse_ip ."'");
    }
Mais en fait, ça ne sert pas à grand chose de faire ça si tu as une autre requête d'insertion ailleurs; Tu veux faire quoi exactement ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

15 nov. 2005, 23:42

merci pour vos reponse,
en faite jaimerai enregistré le parcours des visiteur dans mon site
donc a chaque foi q'il va dans une autre page je l'enregistre avec le timestamp.

Eléphant du PHP | 101 Messages

16 nov. 2005, 00:00

ca ne marche pas,

voila j'ai une table comme ceci

|-------parcours-----|
;aaa.html

|--------time---------|
;1546545

et je voudrai que les information s'ajoute a la suite comme ceci

|-------parcours-----|
;aaa.html
;bbb.php
;ccc.html

|--------time---------|
;15646466
;21524654
;12345654



a la suite

Eléphant du PHP | 101 Messages

16 nov. 2005, 00:03

la seule facon que javé trouver c'est de lire les info en premier les stoker dans une variable puis les concaténé avec les nouvelle
informations et réenregistré le tout
mais je trouve ca lourd et je pense qu'il doit yavoir plus simple

Mammouth du PHP | 19672 Messages

16 nov. 2005, 00:08

Ha ben ça, c'est faisable de la manière suivante:
if(isset($val)) // si l'adresse ip existe on met a jour les informations
{
    $sql = "UPDATE statistique ".
           "SET parcours = CONCAT(parcours, ';". $parcours ."'), 
                time = CONCAT(time, ';". $time ."') ".
           "WHERE adresse_ip='". $adresse_ip ."'";
    mysql_query($sql);
}
En clair, on utilise une fonction SQL CONCAT() reprenant la valeur existante et ajoutant un point-virgule et la nouvelle valeur. Libre à toi de remplacer le point-virgule par autre chose.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

16 nov. 2005, 00:15

Merci les gars ca marche
merci surtout a Cyrano :D

Eléphant du PHP | 101 Messages

16 nov. 2005, 00:23

dit moi Cyrano

je voi beaucoup de
$sql = "requéte sql"
    mysql_query($sql); 
pk ? c koi la difference avec
mysql_query("requéteé);

Mammouth du PHP | 19672 Messages

16 nov. 2005, 00:26

C'est plus propre d'une part, et plus pratique ensuite: tu pourrais stocker tes requêtes ailleurs, dans un fichier externe par exemple : si il y a plusieurs endroits dans ton code à travers ton site où tu utilises souvent la même requête, inutile de la ré-écrire autant de fois. Et puis si tu as une mise à jour à faire pour une raison quelconque, tu le fais dans un seul fichier au lieu de devoir fouiller tout le code à la recherche des éléments à modifier.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

16 nov. 2005, 00:34

a daccord c'est intelligent ça,

merci encor a toi Cyrano


a demain :sleeping: