Requête SQL débutant
14 messages
• Page 1 sur 1
-

webac - WRInaute occasionnel

- Messages: 373
- Inscription: 4 Mar 2005
Requête SQL débutant
j'ai un soucis sur cette requete
la requête est-elle correcte ou avez-vous trouvé une erreur j'avoue que je ne comprends pas trop je débute en la matière.
- Code: Tout sélectionner
$req = "SELECT qte FROM matable WHERE typetiq = $typetiq";
$quantite = mysql_query ($req) ;
$sql = "UPDATE matable SET qte = $quantite + $qte WHERE typetiq = $typetiq";
la requête est-elle correcte ou avez-vous trouvé une erreur j'avoue que je ne comprends pas trop je débute en la matière.
-

biscuit - WRInaute impliqué

- Messages: 519
- Inscription: 5 Juin 2006
Salut il te manque le traitement de la requête.
Dans ta 2e requete $qte est définit ? Ou est-ce qu'il s'agit de la valeur dans ta table ? Pour le 2e cas, il ne faut pas mettre le $ devant:
Pour finir est-ce que $typetiq est numérique? Si ce n'est pas le cas, il faut le mettre entre guillemets
-- EDIT:
En fait j'suis allé vite, si tu veux seulement mettre à jour le champ 'qte' en ajoutant $quantite, tu n'as pas besoin de ta première requête...
- Code: Tout sélectionner
$requete = mysql_query($req);
$quantite = mysql_result($requete,0,'qte');
Dans ta 2e requete $qte est définit ? Ou est-ce qu'il s'agit de la valeur dans ta table ? Pour le 2e cas, il ne faut pas mettre le $ devant:
- Code: Tout sélectionner
$sql = "UPDATE matable SET qte = qte + $quantite WHERE typetiq = $typetiq";
Pour finir est-ce que $typetiq est numérique? Si ce n'est pas le cas, il faut le mettre entre guillemets
-- EDIT:
En fait j'suis allé vite, si tu veux seulement mettre à jour le champ 'qte' en ajoutant $quantite, tu n'as pas besoin de ta première requête...
-

webac - WRInaute occasionnel

- Messages: 373
- Inscription: 4 Mar 2005
tout dabord merci pour ton aide biscuit mais voila ce que j'obtiens :
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in........
j'ai oublié de signaler que j'avais modifié ma premiere requete en :
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in........
j'ai oublié de signaler que j'avais modifié ma premiere requete en :
- Code: Tout sélectionner
$req = "SELECT (SUM)qte FROM matable WHERE typetiq= $typetiq";
-

e-kiwi - Modérateur

- Messages: 15543
- Inscription: 23 Déc 2003
comment debugguer une requete :
=> faire des echos
$req = "SELECT qte FROM matable WHERE typetiq = $typetiq";
echo $requete
$quantite = mysql_query ($req) or die("c'est balo, ta requete est fausse");
echo $quantite
$sql = "UPDATE matable SET qte = $quantite + $qte WHERE typetiq = $typetiq";
echo $sql
=> faire des echos
$req = "SELECT qte FROM matable WHERE typetiq = $typetiq";
echo $requete
$quantite = mysql_query ($req) or die("c'est balo, ta requete est fausse");
echo $quantite
$sql = "UPDATE matable SET qte = $quantite + $qte WHERE typetiq = $typetiq";
echo $sql
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
webac a écrit:j'ai oublié de signaler que j'avais modifié ma premiere requete en :
Code:
$req = "SELECT (SUM)qte FROM matable WHERE typetiq= $typetiq";
C'est SUM(qte) et non (SUM) qte
donc:
- Code: Tout sélectionner
$req = "SELECT SUM(qte) FROM matable WHERE typetiq= '$typetiq'";
$quantite = mysql_query($req) or die("quantite failed");
$quantite = mysql_fetch_array($quantite);
$quantite = $quantite[0];
$sql = "UPDATE matable SET qte = $quantite + $qte WHERE typetiq = '$typetiq'";
$res = mysql_query($sql) or die("update failed");
Le or die() permet également de savoir quelle requête foire.
Je dois avouer que je ne vois pas bien ou tu veux en venir avec ces requête, mais bon
En voyant ta réponse après moi, j'ai vu que $typeiq n'était pas numérique, donc guillemets
Dernière édition par DomicilePC le Mar Jan 23, 2007 14:18, édité 4 fois.
-

webac - WRInaute occasionnel

- Messages: 373
- Inscription: 4 Mar 2005
j'ai bien fait des echo partout mais comment interpreter ces messages d'erreur :
- Code: Tout sélectionner
SELECT (SUM)qte FROM matable WHERE typetiq= HN
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in .......... on line 33
UPDATE matable SET qte = + 2000 WHERE typetiq = 'HN'
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
e-kiwi a écrit:SELECT (SUM)qte FROM matable WHERE typetiq= HN
des ' manquants
Ca marche chez vous (SUM)qlqechose?
Je suis étonné, chez moi c'est SUM(qlqechose) qui marche
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
Ouf.
Toute façon, son problème est résolu on dirait
Toute façon, son problème est résolu on dirait
-

nickargall - WRInaute accro

- Messages: 6339
- Inscription: 13 Juin 2005
Un conseil, utilise des ' ' pour encadrer tes valeurs, et des ` ` pour encadrer le nom de tes colonnes SQL, ça peut éviter des soucis si tu utilises par mégarde des noms de champs qui correspondent à des termes SQL
Si je te dis ça, c'est parce que ça m'est arrivé lorsque mon hébergeur est passé à une version supérieure de je sais pas quoi (sql ou php je sais plus). Et c'était pas cool de revoir toutes mes requêtes pour qu'elles refonctionnent à nouveau
- Code: Tout sélectionner
$query=" SELECT `champ1`, `champ2` FROM `table1` WHERE `champ1`='valeur1' AND `champ2`='valeur2' ";
Si je te dis ça, c'est parce que ça m'est arrivé lorsque mon hébergeur est passé à une version supérieure de je sais pas quoi (sql ou php je sais plus). Et c'était pas cool de revoir toutes mes requêtes pour qu'elles refonctionnent à nouveau
-

webac - WRInaute occasionnel

- Messages: 373
- Inscription: 4 Mar 2005
je continue sur ce post car j'ai un autre soucis similaire.
voici comment se présente ma table "matable"
id, typetiq, qte, destinataire
pour le moment j'aI un enregistrement avec les données suivantes :
1,HN,5000,STOCK
je souhaite pouvoir affecter une certaine quantité a un utilisateur, que cette quantité se déduise du stock initiale et apparaisse chez cet utilisateur.
La page d'affectation étant déja crée il ne me manque que les requêtes avec lesquelles je patauge depuis pas mal d'heures.
Pouvez vous m'éclairer?
voici comment se présente ma table "matable"
id, typetiq, qte, destinataire
pour le moment j'aI un enregistrement avec les données suivantes :
1,HN,5000,STOCK
je souhaite pouvoir affecter une certaine quantité a un utilisateur, que cette quantité se déduise du stock initiale et apparaisse chez cet utilisateur.
La page d'affectation étant déja crée il ne me manque que les requêtes avec lesquelles je patauge depuis pas mal d'heures.
Pouvez vous m'éclairer?
- DomicilePC
- WRInaute discret

- Messages: 210
- Inscription: 17 Jan 2005
Comme tu dis, c'est similaire:
Enfin si j'ai compris ce que tu veux faire
- Code: Tout sélectionner
$quantite = 20;//pourquoi pas
$sql = "UPDATE matable SET qte = qte - $quantite WHERE typetiq = '$typetiq'";
$res = mysql_query($sql);
echo $quantite;
Enfin si j'ai compris ce que tu veux faire
14 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Google API : guide de développement de l'API Google - 20-09-2002
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- PDF Quick View : l'outil de Google pour voir les PDF - 08-10-2009
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Informations sur l'infrastructure technique de Google - 01-11-2004
- Google indexe le Flash - 28-04-2004
- + de résultats pour un même site sur Google - 23-08-2010
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
