# PHP > PHP & Base de donnes > [MySQL] Requte UPDATE aucun rsultat

## CaNiBaLe

Bonjour,

Je poste dans le forum car je bloque sur quelque chose de stupide o je ne trouve pas l'erreur.
Dans la page php que je suis en train de crer on peut modifier les champs d'une table dans une BDD MySQL hberge sous free. Rien de bien extraordinaire.
Le principe est le suivant, une page qui afficher les donnes de la table dans un tableau html avec un bouton "modifier" pour chaque ligne si jamais on veut modifier un enregistrement de la table. Bref. Quand on clique sur le bouton, l'ID de la ligne  modifier en envoyer en GET.
Quand on appelle la page de modification, je rcupre le paramtre URL en GET et je remplis pralablement les champs du formulaire avec les donnes dans la table.
J'ai dj procd de cette manire pour modifier d'autres tables et a marche trs bien.
Donc j'ai refait un copier/coller du code en adaptant les requtes et tout ce qu'il fallait modifier.
Seulement cette fois-ci a ne marche pas  :8O: 
Les champs sont bien remplis avec les donnes de la table donc le paramtre GET est bien rcupr. Mais quand on modifie un champs et qu'on clique sur le bouton, les donnes ne sont pas enregistres dans la BDD et le header location ne fonctionne pas  ::cry:: 
J'en dduis donc que c'est ma requte UPDATE qui ne passe pas alors qu'elle est toute bte...
Vous trouverez srement trs rapidement o a bloque car a ne doit pas tre un gros problme...  ::ccool:: 
Je vous poste le code de la page qui modifie:


```

```

Merci beaucoup pour votre aide  ::D:

----------


## rawsrc

Salut,

dj tu devrais scuriser le $id_tournee = $_GET['tournee']; ainsi $id_tournee = (isset($_GET['tournee'])) ? (int)$_GET['tournee'] : 0;.
Ensuite, tu dois intercepter le cas o $id_tournee vaut 0.

Tu n'as absolument aucune assurance d'avoir tes tableaux super-globaux rempli comme tu te l'imagine, c'est pour a qu'il faut toujours s'assurer de l'existence des cls avec isset().

Pour dboguer, pose des echo pour s'avoir par o ton code passe. Je parie que tu n'arrive pas jusqu' l'UPDATE car dans ta cascade de if imbriqus, y'en a un qui renvoie false.

EDIT : 
Pense aussi  afficher toutes les erreurs quand tu codes en rajoutant ceci au dbut du script : 


```

```

Code  rajouter uniquement sur le serveur de dveloppement et une fois que tout est bon, tu publies sur le serveur de production sans ce paramtrage.

----------


## CaNiBaLe

Merci pour ta rponse, j'ai appliqu les modifications que tu m'as suggr.

J'ai plac des "cho" un peu partout entre mes "if" et en fait je ne rentre mme pas dans le "if" qui dtermine si j'ai bien appuy sur le bouton modifier.

Celui-ci:



```

```

Donc j'ai regard la syntaxe de mes noms et l'orthographe mais tout est identique. Donc je ne comprends pas pourquoi je ne rentre pas dans ce "if".  ::roll::

----------


## rawsrc

J'ai repris ton code, complte les blancs et essaie avec a : 


```

```

EDIT : J'ai fait un essai chez moi et a roule.
Par ailleurs, les fonctions mysql_xxx sont obsoltes, tu dois passer soit sur PDO soit sur les fonction mysqli_xxx

----------


## CaNiBaLe

Merci beaucoup pour ton aide.

J'ai repris le code que tu m'as envoy en compltant les blancs et cette erreur survient:



> Parse error: syntax error, unexpected T_FUNCTION in /mnt/159/sdb/b/b/a.j.transports/modifier_tnt.php on line 22


La ligne 22 correspond  :



```

```

Comme je ne suis pas du tout familier avec ce code "volu" pour moi je ne peux pas dterminer comment la corriger. J'ai regard un peu sur le net mais sans rsultat  ::?:

----------


## rawsrc

Quelle version de php tu utilises ? 
Pour que ce code fonctionne tu dois tourner au minimum sur php 5.3

----------


## CaNiBaLe

Donc c'est pour a, je suis en PHP Version 4.4.3-dev.

Que dois-je faire ?

Si je passe  une version suprieure je devrais remanier tout mon code antcdent ?

En regardant sur le net j'ai vu comment changer de version.

Donc j'ai cr un fichier .htaccess avec ce code dedans:
SetEnv PHP_VER 5.4

Je l'ai upload sur le serveur  la racine de mes fichiers php mais a ne change pas ma version.

----------


## rawsrc

> Je l'ai upload sur le serveur  la racine de mes fichiers php mais a ne change pas ma version.


T'es sr de toi ?
Fais un 

```
<?php phpinfo() ?>
```

----------


## CaNiBaLe

Oui j'ai fait un phpinfo() comme il faut et a m'affiche que je suis en PHP Version 5.1.3RC4-dev.

Dans le .htaccess j'ai ce code: php 5.

J'ai lu que c'est ce qu'il faut mettre quand on est hberg chez free.

Seulement cette version l n'est pas suffisante non plus...

----------


## rawsrc

Ok, c'est free qui n'a aucune intention de proposer mieux... Vu que c'est gratuit, c'est  prendre ou  laisser.
Je vais adapter mon code.

EDIT : Code modifi : 


```

```

----------


## CaNiBaLe

Il va peut-tre falloir que je rflchisse  un nouvel hbergeur un de ces jours...

En tout cas merci pour l'aide que tu m'apportes.

----------


## rawsrc

Est ce que ce code passe sans soucis ?

----------


## CaNiBaLe

Je viens de le tester. Alors je n'ai pas d'erreur mais les champs ne sont pas pralablement remplis avec les donnes de la BDD et la requte de modification ne passe pas.

----------


## rawsrc

Pure, ils abusent quand mme free.
Rajoute aprs : 

```
$data = mysql_fetch_assoc($req);
```



```
print_r($data);
```

et reessaie

----------


## CaNiBaLe

Le rsultat :
Array ( [Numero] => 155 [Nb_pt_liv] => 15 [Pickup] => 3 [Nb_km] => 500 [Chauffeur] => ALDANA Antony [Date_liv] => 2013-06-05 ).

----------


## rawsrc

je suis une chvre, aprs avoir rempli $data avec les donnes de la base (ligne 23), je le vide ligne 27  ::sm:: 

vire la ligne 27, stp


```
$data = array();
```

----------


## CaNiBaLe

Les champs s'affichent dsormais mais je ne peux toujours pas excuter la requte. Lorsque je modifie une champs et que je clique sur le bouton "Modifier" rien ne se passe et jQuery me renvoie une "error loading page"  ::?:

----------


## rawsrc

C'est un problme que j'avais dj vu avec jQueryMobile. C'est cette lib qui cause souci.
Il faut vrifier si jquery-1.9.1.min.js est bien compatible avec jquery.mobile-1.3.1.min.js

----------


## CaNiBaLe

Je vois... C'est bien dommage car il faut que j'utilise jQueryMobile.
Je vais essayer de me dbrouiller pour le reste je te remercie de ton aide, vraiment  ::ccool:: 

Passe une bonne journe  ::mrgreen::

----------

