Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/06/2007, 13h00   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 54
Points : 10
Points : 10
Par défaut [SQL] Question sur requête SQL

Bonjour,

Avez vous une idée du problème dans ma syntaxe ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
$jour=date("Y-m-d");
$db = mysql_connect('127.0.0.1', 'root','')  or die('Erreur de connexion '.mysql_error());
//echo "Connexion OK !!";
//echo "<br>";
mysql_select_db('info_printer',$db)  or die('Erreur de selection '.mysql_error()); 
$query = "SELECT * FROM `count`";
$result = mysql_query($query, $db) or die($query . " - " . mysql_error());
$tab = mysql_fetch_array($result);
 
if ($tab['day']==$jour) {
$sql1 = "update `count` set `countpm`=130 where `day`=`$jour`";
mysql_query($sql1) or die('Erreur SQL !'.$sql1.'<br>'.mysql_error()); 
}
Je souhaite faire l'update si $tab[day] est egal à la date du jour.
Et cela ne fonctionne pas... Auriez-vous une idée ?
Cheeper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 13h37   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451


Tu as mis des die(mysql_error()) partout : c'est bien
Tu dis "cela ne fonctionne pas" sans donner de précisions sur l'erreur : c'est moins bien

Je crois que tu t'es pris la tête : pourquoi faire un if tab['day']=$jour, alors que c'est précisement ce que fait le where de ton update ?
Code :
1
2
3
4
5
6
7
8
$jour=date("Y-m-d");
$db = mysql_connect('127.0.0.1', 'root','')  or die('Erreur de connexion '.mysql_error());
//echo "Connexion OK !!";
//echo "<br>";
mysql_select_db('info_printer',$db)  or die('Erreur de selection '.mysql_error()); 
 
$sql1 = "update `count` set `countpm`=130 where `day`=`$jour`";
mysql_query($sql1) or die('Erreur SQL ! '.$sql1.'<br>'.mysql_error());
Ensuite j'ai un doute : que contient le champ day ? une date au format année-mois-jour ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 14h22   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 54
Points : 10
Points : 10
en fait, il m'ajoute toujours une ligne dans ma base même si j'ai une entrée sur $jour au format "2007-06-27", impossible de lui faire faire mon update...
Je ne sais pas si cela est plus clair...
Cheeper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 16h15   #4
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
salut

Je crois que tu as une erreur dans ton code, pour moi il faut mettre la variable $jour entre quote

Code :
1
2
 
$sql1 = "update `count` set `countpm`=130 where `day`= '$jour' ";
essay comme ca.
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 16h58   #5
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 54
Points : 10
Points : 10
En fait, malgrès la mise de $jour entre ', il m'insère une ligne et ne met pas à jour mon enregistrement...
Code :
$sql1 = "update `count` set `countpm`=130 where `day`='$jour'";
Je me retrouve avec un nouvel enregistrement sur la date du jour à chaque appel à mon script
Cheeper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 17h19   #6
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
est tu sur qu'il y as un enregistre dans ta table qui correspond à la date d'aujourd'hui

Code :
$jour=date("Y-m-d"); // récupère la date d'aujourd'hui
si tu veut etre sur que ta requete fonctionne prend une date qui ce trouve dans ta table et met la directement dans la requete.

Code :
1
2
 
$sql1 = "update `count` set `countpm`=130 where `day`= 2007-06-20";
une autre solution est d'afficher la requete que tu as et voir si elle a la bonne stucture par exemple en la recopiant tel quel dans phpmyadmin et voir le résultat.

par contre en ce qui conterne l'insertion tu doit avoir une requet insert dans ton code sinon je ne comprend pas? peut etre essayer de mettre ce code dans une nouvelle page sans rien dautre et tester
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 17h56   #7
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 54
Points : 10
Points : 10
En fait dans ma boucle je passais directement sur mon else.
Car mon test de boucle IF n'était pas valide.
Suite à la suppression d'un des deux signes "=", fonctionnement ok.

Merci à vous tous pour vos réponses.
Cheeper est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h38.


 
 
 
 
Partenaires

Hébergement Web