Page 1 sur 1
Probléme requéte SQL
Posté : 15 nov. 2005, 23:32
par brani
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
Posté : 15 nov. 2005, 23:38
par ouckileou
Posté : 15 nov. 2005, 23:38
par Cyrano
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 ?
Posté : 15 nov. 2005, 23:42
par brani
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.
Posté : 16 nov. 2005, 00:00
par brani
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
Posté : 16 nov. 2005, 00:03
par brani
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
Posté : 16 nov. 2005, 00:08
par Cyrano
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.
Posté : 16 nov. 2005, 00:15
par brani
Merci les gars ca marche
merci surtout a Cyrano

Posté : 16 nov. 2005, 00:23
par brani
dit moi Cyrano
je voi beaucoup de
$sql = "requéte sql"
mysql_query($sql);
pk ? c koi la difference avec
mysql_query("requéteé);
Posté : 16 nov. 2005, 00:26
par Cyrano
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.
Posté : 16 nov. 2005, 00:34
par brani
a daccord c'est intelligent ça,
merci encor a toi Cyrano
a demain
