FLASH PHP insertion dans la base de donnée

Fermé
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012 - 15 avril 2008 à 10:36
 guilty90 - 7 mai 2008 à 16:34
Bonjour,
etant en developpement , j'ai voulu crer un site internet en flash et donc un site avec base de donnée.

donc voila mon probleme : dans un fichier flash , je charge un base de donnée , jusque la rien de difficile mais ce qui m arrive est bizard : pendant mon insertion j'ai deux probleme :

- apres des longue recherche sur les site / forum et tout j ai tester plusieur methode pour ajouter des donnée dans une base de donnée avec easyphp.Et a force de tester j'en ai trouver une qui marchais mais les donnée je les metai directement dans flash ( on ne pouvais donc pas les modifier) la premiere fois cela ma fait un boucle ( 127 enregistrements) et depuis que je met ma requete directement dans easyphp il me met l erreur :

requête SQL:

INSERT INTO CLIENT VALUES (
'', 'test', 'test', 'test', 'test', 'test'
)

MySQL a répondu:
#1136 - Column count doesn't match value count at row 1

mais a la limite je peut le faire en manuel c est pas vraiement le probleme.


- voila se qui m amene vraiment : quan j insert ( enfin j essai) aucune reponse de la base de donnée , je ne sais meme pas si les donnée sont bien envoyer, flash est bien codé.
je vous met mon code car je ne comprend plus donc aider moi svp.


PHP:
<?php
/***************************************************************************/
// Parse les var. pour flash afin de lui envoyer dans le bon format
function parse($variable,$valeur)
{
echo "&$variable=$valeur";
}
/***************************************************************************/


// Connexion
mysql_connect("localhost", "root", "");
mysql_select_db(flashphp);
$SQLQuery = "INSERT INTO client (typeM, tailleM, descriptionM, poidM, prixM) VALUES ('$typeM', '$tailleM','$descriptionM','$poidM','$prixM') ";
$result = mysql_query($SQLQuery);

mysql_close();
// ----- traitement termine
parse("done",1);

?>


FLASH: ma page de formulaire est a la sequence 4 et ce code est a la sequence 5, donc apres j ecri sur la 4 et avec un "ok" , je met sa sur la 5.

loadVariablesNum ("insert.php", 0, "POST");
gotoAndPlay(4); <- cela revien à ma page de remplissage




sinon j utilise aussi celle la ( c'est pour mes test):
FLASH: pour l instant j essay juste de l enregistrer dans la base

var monLv = new LoadVars();
monLv.typeM = "vfd"; //vous vous rappelez ce qu'on trouvait dans le $_POST ? bah c'est nommé la
monLv.tailleM = "vfd";
monLv.descriptionM = "vfd";
monLv.poidM = "vfd";
monLv.prixM = "vfd";
//monLv.prixM=prixM; // mon code réel mai deja j essay d enregistrer
monLv.sendAndLoad("insert.php",monLv);
gotoAndPlay(4);

PHP:il y a un numero mais je le gere en autoincremente ( peut etre le problem viendrais de la)

<?php
/***************************************************************************/
// Parse les var. pour flash afin de lui envoyer dans le bon format
function parse($variable,$valeur)
{
echo "&$variable=$valeur";
}
/***************************************************************************/


$typeM = $_POST['typeM']; //utilisation de post pour recupere les valeur de flash dans un bon format.
$tailleM = $_POST['tailleM'];
$descriptionM = $_POST['descriptionM'];
$poidM = $_POST['poidM'];
$prixM = $_POST['prixM'];

// Connexion
mysql_connect("localhost", "root", "");
mysql_select_db(flashphp);
$SQLQuery = "INSERT INTO client (typeM, tailleM, descriptionM, poidM, prixM) VALUES ('$typeM', '$tailleM','$descriptionM','$poidM','$prixM') ";
$result = mysql_query($SQLQuery);

mysql_close();
// ----- traitement termine
parse("done",1);

?>


Mes variable sont les meme partout : flash ( les .text) et easyphp
ma base c est : flashphp
nom de table : matiere
nom des champs : numero(autoincrement)/typeM/tailleM/descriptionM/poidM/prixM.

voila mon probleme :( , je vous remercie deja de vos futurs reponses que j atten comme un fou car je galere depuis 2semaines a cause d'une insertion -_-
A voir également:

9 réponses

alors pour l'autoincrement, il me semble qu'il faut tout de même mettre le champ, et il faut mettre la valeur NULL ou bien un champ vide ( '' ). Mais je ne suis pas spécialiste de SQL.

et quand tu dis aucune reponse de la base de donnée, tu as bien vérifié que les lignes ne sont pas insérées ?

Le serveur est chez toi ou bien hébergé ? S'il est chez toi, mets dans le php.ini la valeur show_errors=On pour voir l'erreur qui se passe.
1
alors concernant l'erreur :
MySQL a répondu:

#1062 - Duplicata du champ '127' pour la clef 1

c'est bien ce que je disais avant. Ta clef pour le champ numero est déjà prise. Une clef est evidement unique. Or ici il nous dit qu'il essaie d'ajouter un enregsitrement avec la valeur "127", et que cette valeur est déjà prise. Essaies donc avec cette requête :

INSERT INTO matiere( numero, typeM, tailleM, descriptionM, poidM, prixM )
VALUES (

NULL, 'test', 'test', 'test', 'test', 'test'
) ;


pour le php.ini, fais une recherche du fichier. Je ne sais pas où il se trouve avec easyphp. Ouvre-le avec le bloc-note, recherche show_error, et mets le à "On".

ensuite recherche error_reporting, et met "E_ALL" après le "=". Comme cela il affichera toutes les erreurs. enregistre le php.ini et redémarre le serveur Web.

j'espère avoir été clair.
1
Bonjour,

pour la première erreur :
INSERT INTO CLIENT VALUES (
'', 'test', 'test', 'test', 'test', 'test'
)

MySQL a répondu:
#1136 - Column count doesn't match value count at row 1


le problème vient du fait que tu essaies d'ajouter un enregistrement avec 5 valeurs alors que la table contient 6 champs. Evidemment cela pose problème.

Sinon, je ne sais pas si c'est une faute de frappe, mais tu as écrit lors de la connexion à la bdd :

mysql_select_db(flashphp);

ce serait plutot :

mysql_select_db("flashphp");
0
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012
15 avril 2008 à 10:52
merci de ta reponse aussi rapide : ce n'etait pas une faute de frappe , j avai pas vu ( j espere c'est cela)
et pour les 6 champs, je ne pense pas cela vien de la car a l origine je fesai comme sa et sa marche en faite vu que mon numero est en auto increment est donc quand je met rien sa met le numero suivant ( normalement lol car la cela ne marche pas donc je pense je vais le faire a la main : numA = .... select max(numero) from matiere et comme sa je lui met un numE= numA+1;
je v tester ta solution des "" tout de suite.


edit : je vien de le tester ca ne change rien.
tu as une autre solution?
0
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012 > guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012
15 avril 2008 à 11:03
voila exactement le probleme de l insertion direct en entrant directement la requete dans easyphp:
Erreur
requête SQL:

INSERT INTO matiere( typeM, tailleM, descriptionM, poidM, prixM )
VALUES (

'test', 'test', 'test', 'test', 'test'
)

MySQL a répondu:

#1062 - Duplicata du champ '127' pour la clef 1

mais j'ai toujours mon probleme de l insertion dans la base depouis flash
0
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012
15 avril 2008 à 11:11
oui j'ai regarder dans la base il ni a rien mais c'est bizard car avant j avais reussi a inserer.
le serveur c easyphp et il est chez moi : donc je peut modifier mais comment je fait pour faire : mets dans le php.ini la valeur show_errors=On pour voir l'erreur qui se passe.
0
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012
15 avril 2008 à 11:24
j'ai tester d inserer la requete directement dans easyphp elle marche donc j en conclu que flash ne fait pas le lien avec le php.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
As-tu tester un :
echo $SQLQuery;

pour vérifier que la requête est correcte, et qu'elle se construit bien ?
0
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012
15 avril 2008 à 11:31
no dans easyph j ai directement mis a requete lol ( pas de pitier mdr)
et pour php.in j en et 2 mdr dans apache et conf_files : je met dans lequel? j'ai regarder dedans c les memes vu tout se quil a dedans je dirais enfin peut etre
0
alors pour le
echo $SQLQuery;
tu peux le faire quand même ? Tu rajoutes cette ligne dans ton script php, afin de voir si elle est bonne ou non.

Pour le php.ini, modifies les deux, comme ça on sera sur ^^
0
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012
15 avril 2008 à 11:48
lol super dur a trouver surtout que j avais oublier qu'il avait une recherche auto :) , a pas de show erroe ( g rechercher avec "show "/ error" et "show_error" a pas de sa et report etait deja sur all.
0
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012
15 avril 2008 à 11:58
g mis echo mais quand je lance mon application, il n y a rien qui bouge enfin a par se qui marche cad l afficher , modifier / inserer et supprimer ne marche pas donc je pense que sa vien bien de flash le probleme car l otre fois g essayer de metre directement des valeur dans php comme sa flash a juste a activer le php mais sa ne marche po .

var monLv = new LoadVars();
monLv.numero ="5";
monLv.typeM = "aaa"; //vous vous rappelez ce qu'on trouvait dans le $_POST ? bah c'est nommé la
monLv.tailleM = "aaa";
monLv.descriptionM = "aaa";
monLv.poidM = "aaa";
monLv.prixM = "aaa";
monLv.sendAndLoad("insert.php",monLv);
gotoAndPlay(4);

mais je ne pig pas le problem :
flash et dans le www de easys php et insert / modifier / suppri aussi / select
mon select marche
je ne comprend pas
0
guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012
16 avril 2008 à 10:27
voila j'ai reussi a regler le probleme de l insertion, mais le bleme vien en faite de la ligne 127 :
si a po de ligne 127 la ligne que j insert va a la ligne 127 et si en a une aucun enregistrement.
0
guilty90 > guilty90 Messages postés 29 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 30 octobre 2012
7 mai 2008 à 16:34
Bon voila j'ai trouver l erreur etait toute bete :
en faite mysql recoit les donnée mais les utilise mal, dans mysql suffit de mettre les variables en text et sa marche malgres que les donnée dans la base son toujours mal saisie mais cela marche donc c'est bon.
0