Communication PHP MySQL [Résolu]

Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
- - Dernière réponse : kohntark
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
- 20 juil. 2011 à 16:57
Salut,

J'ai un problème de communication entre PHP et MySQL. En fait, j'ai réalisé une petite application avec Macromedia Flash 8 et j'ai voulu enregistrer les données entrées dedans. Pour la communication Flash PHP, tout va bien j'arrive à faire communiquer les données (réception et envoi). Par contre, et ce qui est le plus bizarre car je pensais que c'était facile, je n'arrive pas à insérer mes données dans ma table de ma base de données MySQL. Depuis deux jours, je fais le tour des forums mais sans succès. C'est vrai que je n'ai pas l'habitude de programmer en PHP et d'utiliser phpMyAdmin mais je pense avoir un code cohérent (après il se peut que je ne l'ai pas mis au bon endroit ou que j'ai un autre problème ailleurs que dans le code lui-même). Voici mon code :
<?php
$link = mysql_connect("localhost", "root", "******") 
     or die("Impossible de se connecter à MySQL"); 
echo 'Connexion réussie';
if ( !(mysql_select_db("test_moha", $link)) ) 
    {
    die ("Impossible d'utiliser la base"); 
    }
$requete = "INSERT INTO test_flash_data (id_user, type_transport, distance, duree, type_voiture, type_carburant, nb_jours) VALUES('','voiture','12','30','petite','diesel','2')"; 
mysql_query($requete) or die ('Erreur '.mysql_errno().' : ' . mysql_error()); 

?>


Please de l'aide car malgré une dizaine de tuto qui reprennent tous le même concept (mysql_connect, mysql_select_db, mysql_query ...) je n'arrive pas à à voir mes données
dans phpMyAdmin pour pouvoir les administrer.

Merci

Forza Taraji!!
Afficher la suite 

20/25 réponses

Meilleure réponse
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
3
Merci
oui
je panse pas que soit le code vu qu'il fonctionne chez moi
en local comme en distant
bizarre, relance voir ton ordi ...
si tu prend mon code tu le copie dans un fichier test.php
et tu le mets dans www/ de wamp
tu appeles http://localhost/test.php
ça dit quoi ...



Bonne programmation !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 218 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cod57
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
Il se peut que ce soit à cause d'un mauvais paramétrage de phpMyAdmin ou de WAMPServer
(j'ai le wamp pour php 5.3.0 et mysql 5.1.36). Ma base est sur le serveur localhost et j'ai WampServer en ligne (dans le quick admin, il y a "Passer en ligne" ou "Passer hors ligne").
Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
Autre détail : je viens de vérifier que mon root a bien tout les privilèges et c'est bien le cas.


Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Salut,

Et si tu donnais l'erreur qui t'est retournée ?

PHPMyAdmin lui même fonctionne t il bien ?


malgré une dizaine de tuto qui reprennent tous le même concept

Tu es malheureusement tombé sur de mauvais tutos ... les fonctions mysql_* de nos jours sont fortement obsolètes (cf PDO, éventuellement mysqli)

Cordialement,

Kohntark -
Commenter la réponse de kohntark
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
En fait, si je fait directement l'insert du côté de phpMyAdmin avec une requête SQL, ça marche sans problème. Par contre, si je lance mon application qui doit exécuter un code (plus bas) lorsque j'appuie (ou plutôt relâche) un bouton l'application marche normalement mais il n'y a pas d'insertion dans ma base.

Le code Flash :


on (release) { 
typetransport = "voiture"; 
var PhpObject = new LoadVars(); 
PhpObject.id_user = 2; 
PhpObject.type_transport = typetransport; 
PhpObject.distance = 20; 
PhpObject.duree = 25; 
PhpObject.type_voiture = "petite"; 
PhpObject.type_carburant = "diesel"; 
PhpObject.nb_jours = 3; 
PhpObject.onLoad = function(success) { 
if (success) { 
//recupere variablePhp2 du script php 
_root.variableFlash = this.variablePhp2; 
trace(_root.variableFlash); 
} else { 
trace("erreur"); 
} 
}; 
PhpObject.sendAndLoad("test_moha.php", PhpObject, "POST"); 
gotoAndPlay(3); 
} 


Donc pour répondre à ta deuxième réponse, il n'y pas de message d'erreur, seulement la base qui reste inchangée. Sinon, j'ai essayé avec mysqli_* mais sans succès non plus et j'ai décidé de retenter ma chance avec mysql_*.

Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
Je penche de plus en plus pour un problème de réglage avec phpMyAdmin. Je travaille en localhost : est-ce que je dois nécessairement héberger quelque part ma base ou mon appli pour que ça fonctionne? Avec DotNet (j'ai plus d'expérience avec), on pouvait bosser en localhost sans problème.

Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
Je vais essayer avec le PDO, mais si ça ne marche pas, je serai vraiment bloqué à mort.
(je vous tiens au courant)


Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
niente (rien) :
j'ai utilisé le PDO mais toujours le même résultat : l'application marche bien (avec une communication correcte entre le Flash et le PHP) mais aucun changement dans la base. Voici le code PHP :

<?php 
try 
{ 
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; 
$bdd = new PDO('mysql:host=localhost;dbname=test_moha', 'root', '*****', $pdo_options); 

// On ajoute une entrée dans la table jeux_video 
$bdd->exec('INSERT INTO 'test_flash_data' ('id_user', 'type_transport', 'distance', 'duree', 'type_voiture', 'type_carburant', 'nb_jours') VALUES(\'\',\'voiture\',12,30,\'petite\',\'diesel\',2)'); 

echo 'OK !'; 
} 
catch(Exception $e) 
{ 
die('Erreur : '.$e->getMessage()); 
} 
?>


Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Re,

NB : mysql_* est dépassé, mais fonctionne encore, il y a de fortes chances que PDO et mysqli ne change rien.

Question bête : es tu certain que ton code PHP est appelé ?
Y a t il d'autres lignes de code dans le script PHP que tu fournis ?
Que se passe t-il si tu appelle directement, via la barre d'adresse du navigateur, le fichier PHP ? une erreur ?



Cordialement,



Kohntark -
Commenter la réponse de kohntark
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
Sinon, Macromedia Flash 8 me génère un fichier html avec mon application dedans. Est-ce que je dois le modifier ?
Voici son code :

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>EssaiAppli</title>
</head>

<!--url's used in the movie-->
<!--text used in the movie-->
<!--

-->
<!-- saved from url=(0013)about:internet -->
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="EssaiAppli" align="middle">


</object>

</html>



Encore merci pour votre aide.

Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
En fait, il est appelé (le fichier php) car l'application m'affiche un "ok" que je mets dans la variable variablePhp2 du script PHP grâce à echo et qui est affiché grâce à trace(_root.variableFlash);. J'ai changé le "ok" par autre chose et le changement est pris en compte.

En essayant de l'ouvrir avec le navigateur (chrome et IE), il me le télécharge !!! Bizarre


Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
et lorsque je l'ai mis dans une page html (un bouton qui appelle une fonction lors du onclick, cette fonction contient le script php vu en haut) eh bien, ça fait rien du tout. Là, je bloque.

Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
0
Merci
bonjour

je suis sur que ta requete est pas juste
si tu dis que direct elle marche par la fenetre sql de phpmyadmin
ecrit ta requete copier coller phpmyadmin dans la variable $requete de ton script est essaie tu dois avoir un prob au niveau de la requete un champs mal rernseigné ...

essaie
 <?php
$link = mysql_connect("localhost", "root", "******") 
or die("Impossible de se connecter à MySQL"); 

echo 'Connexion réussie';

if ( !(mysql_select_db("test_moha", $link)) ){
die ("Impossible d'utiliser la base"); 
}

echo $requete = "INSERT INTO 
            
            test_flash_data
             
            (
            id_user,
            type_transport,
            distance,
            duree,
            type_voiture,
            type_carburant,
            nb_jours
            )
            
            VALUES
            (
            NULL,
            'voiture',
            '12',
            '30',
            'petite',
            'diesel',
            '2'
            )
            
            "; 

if(mysql_query($requete)){
echo 'insert ok';
}else(
echo 'y a un prob';
die ('Erreur '.mysql_errno().' : ' . mysql_error());
)   

?>



Bonne programmation !
Commenter la réponse de cod57
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
Essai non concluant. Toujours rien de changé avec ton code (merci quand même de vouloir m'aider). Pour la requête, j'ai fait un truc simple : j'ai écrit en sql ma requête dans phpMyAdmin (ce qui m'a donné un bon résultat) puis je lui ai dit de me la convertir en php (bouton "créer source php").Voici le résultat :

$sql = "INSERT INTO test_flash_data (id_user, type_transport, distance, duree, type_voiture, type_carburant, nb_jours) VALUES(\'\',\'voiture\',12,30,\'petite\',\'diesel\',2);";




Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
Peut-être que le problème se pose du côté du"sendAndLoad" (dans le code Flash) qui ne reprend que la valeur de la variable variablePhp2 et n'exécute pas tout le fichier php? C'est possible?(je ne sais pas trop, en me documentant je n'ai pas trouvé de réponse).

Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
0
Merci
re
voila jai remarqué une erreur sur une parenthése

voilà ce code marche chez moi jai fait une table bidon ... attention change "a" par ta base ... dans ce code

<?php
$link = mysql_connect("localhost", "root", "") 
or die("Impossible de se connecter à MySQL"); 

echo 'Connexion réussie';

if ( !(mysql_select_db("a", $link)) ){
die ("Impossible d'utiliser la base"); 
}

echo $requete = "INSERT INTO test_flash_data            
            (
            id_user,
            type_transport,
            distance,
            duree,
            type_voiture,
            type_carburant,
            nb_jours
            )
            
            VALUES
            (
            NULL,
            'voiture',
            '12',
            '30',
            'petite',
            'diesel',
            '2'
            )
            
            "; 

if(mysql_query($requete)){
echo '<HR>insert ok';
}else{
echo 'y a un prob';
die ('Erreur '.mysql_errno().' : ' . mysql_error());
}   

?>




-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
Commenter la réponse de cod57
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
En essayant de l'ouvrir avec le navigateur (chrome et IE), il me le télécharge !!! Bizarre

Comme tu dis ... bizarre, et pas normal du tout.
Tu rencontre le même soucis avec d'autres pages php ?
Quel type de fichier détecte le navigateur lorsqu'il te demande d'enregistrer ?


@Cod57
voila jai remarqué une erreur sur une parenthése

où ça ?

Je venais de voir l'id_user, si il est en AUTOINCREMENT mieux vaut ne pas le préciser, ou alors mettre null comme Cod57
Menfin n'ayant pas la structure de la base il peut y avoir des erreurs partout.
Le plus rapide reste sans aucun doute l'affichage direct dans un navigateur, histoire d'avoir l'intitulé exact de l'erreur.

Cordialement,


Kohntark -
Commenter la réponse de kohntark
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
Toujours rien. Mais rien que pour savoir : pour pouvoir interagir avec ta base de données MySQL grâce aux fichiers php, qu'est ce que t'as fait?Ou plutôt, qu'est ce qu'on doit faire?(je suis sur que j'ai sauté un truc). Pour ce qui est des extensions, ça va j'ai php_mysql (et php_pdo_mysql pour le PDO). J'ai mis le WAMPServer "en ligne" --passer en ligne--.En utilisant la console de MySQL, ça marche aussi. Je ne vois pas ce que j'ai raté mais je suis de plus en plus sûr que c'est pas à cause du code (la preuve, j'ai essayé le code de plusieurs personnes).

Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
Tu rencontre le même soucis avec d'autres pages php ?


oui, avec toutes les pages php et ceci même avec FireFox. Et le type de ficher est le .php.

La structure de la base, la voici, même si je ne pense pas que c'est là le problème, vu que mes requêtes marchent bien sur la console MySQL :

id_user int(99) auto-increment
type_transport varchar(7)
distance float
duree int(3)
type_voiture varchar(7)
type_carburant varchar(10)
nb_jours int(1)

Sinon, je ne saisis pas ce qu'est l'affichage direct du navigateur? Tu veux dire que lorsque j'ouvre mon fichier avec le navigateur?


Forza Taraji!!
Commenter la réponse de mrassaa
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
0
Merci
Un très grand grand grand mais très grand merci cod57 !!! En fait le truc était de mettre le fichier php dans le dossier www/ (quand je te disais qu'il y a un truc qui m'échappait).

C'est cool de ta part d'avoir perdu du temps pour m'aider. Et c'est cool pour les autres aussi qui ont essayé de m'aider aujourd'hui (j'ai posté ce pb dans plusieurs forums).

Merci beaucoup

A un nouveau problème!!

Forza Taraji!!
Commenter la réponse de mrassaa