probleme d'insertion dans Mysql avec easyphp - PHP - Programmation
Marsh Posté le 16-02-2005 à 14:18:28
et l'erreur retournée c'est quoi ?.
Marsh Posté le 16-02-2005 à 14:20:02
Problème de Sql,
Tu essaye d'insérer 5 champs alors que tu en a 7
dans la table...
Dans ce cas on précise le nom des champs...
Marsh Posté le 16-02-2005 à 17:05:28
meme si on met une valeur par defaut ?
sinon quelqu'un connais une fonction php qui me permetterai de rentrai la date courante dans la base ?
merci beaucoup pour votre aide
Marsh Posté le 16-02-2005 à 17:22:55
jj59 a écrit : meme si on met une valeur par defaut ? |
strftime(); ets une fonction php qui capture la date courante sous différents formats
Marsh Posté le 16-02-2005 à 17:59:31
j'ai essayé en mettant des valeurs par defaut et rien ne s'ecrit dans la base
voici mon code :
$requet = 'INSERT INTO uploader VALUES ("'.$_POST['pwdcreateur'].'", "'.$_POST['logincreateur'].'", "'.$_POST['nomcreateur'].'", "'.$_POST['prenomcreateur'].'", "'.$_POST['mailcreateur'].'", 0 , 0000-00-01"'.'" )';
mysql_query($requet);
j'ai rien changé a ma table
PS : aucune erreur ne s'affiche lorsque je test
Marsh Posté le 16-02-2005 à 18:07:13
un petit mysql_error pourrait aider
sinon ya des trucs bizarres dans ta façon d'utiliser les quotes
Marsh Posté le 16-02-2005 à 18:41:10
je sais pas moi je fais comme sa, maintenant si tu as une autre methode , je suis preneur parce que c'est vrai , c'est le bordel
merci pour ton aide
Marsh Posté le 16-02-2005 à 18:45:36
jj59 a écrit : bonjour a tous |
Clique sur afficher en haut dans le menu.
Marsh Posté le 16-02-2005 à 18:47:56
marche pas justement, il est grisé et inactif
c qu'il y a rien d'entré dans la base
Marsh Posté le 16-02-2005 à 18:49:13
jj59 a écrit : marche pas justement, il est grisé et inactif |
F5
Marsh Posté le 16-02-2005 à 18:53:11
jj59 a écrit : meme avec F5 sa marche pas |
Rajoute un champ id int avec auto-incrément et recommence ton insert depuis PHP.
Marsh Posté le 16-02-2005 à 18:57:03
non comprend pas le but de cette manoeuvre
en fait au debut dans ma table , il n'y avait pas les champs :
niv_banni
date_banni
et avec le php je fesait
$requet = 'INSERT INTO uploader VALUES ("'.$_POST['pwdcreateur'].'", "'.$_POST['logincreateur'].'", "'.$_POST['nomcreateur'].'", "'.$_POST['prenomcreateur'].'", "'.$_POST['mailcreateur'].'" )';
et sa marchais nikel.
c'est depuis que j'ai rajouté ces deux champs dans ma table que sa ne marche plus et je sais vraiment pas pourquoi
Marsh Posté le 16-02-2005 à 19:03:27
jj59 a écrit : non comprend pas le but de cette manoeuvre |
ET tu n'as aucun message d'erreur à l'insert ?
Montre ton code PHP exact, la page entière...
Marsh Posté le 16-02-2005 à 19:12:37
aucun message d'erreur
voici le code
$host = "localhost";
$user = "moi";
$bdd = "bdd";
$passwd = "mon code";
mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur" );
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees" );
$requet = 'INSERT INTO uploader VALUES ("'.$_POST['pwdcreateur'].'", "'.$_POST['logincreateur'].'", "'.$_POST['nomcreateur'].'", "'.$_POST['prenomcreateur'].'", "'.$_POST['mailcreateur'].'", 0 , NULL "' . '" )';
mysql_query($requet);
Marsh Posté le 16-02-2005 à 23:21:34
c bon sa marche, le probleme venait de ma base et de guillemets mal placées
je vous remerci quand meme pour votre aide, elle me fut tres utile. c vraiment sympa
Marsh Posté le 16-02-2005 à 23:31:59
j'ai encore un leger probleme, tout bete a mon avi, mais que j'arrive pas a resoudre
voici le code
Marsh Posté le 16-02-2005 à 23:32:57
j'ai encore un leger probleme, tout bete a mon avi, mais que j'arrive pas a resoudre
voici le code
$query = "UPDATE uploader SET niv_banni = niv_banni+1 WHERE uploader_id = $cpt";
$result = mysql_query($query);
$query = "SELECT niv_banni WHERE uploader_id = $cpt";
$result = mysql_query($query);
if($result == 1)
{
echo "je suis a 1";
}
if($result == 2)
{
echo "je suis a 2";
}
if($result == 3)
{
echo "je suis a 3";
}
=> aucun echo ne se fait, et je ne comprend pas pourquoi
merci d'avance
Marsh Posté le 16-02-2005 à 23:37:55
jj59 a écrit : j'ai encore un leger probleme, tout bete a mon avi, mais que j'arrive pas a resoudre |
si tu collait le bout de code entier peut etre, j'ai deja mon idée mais sans la fin du code je te dirait peut etre une connerie...
par contre easyphp comme serveur
franchement ya mieu avec la meme facilitée d'utilisation que easy php
Marsh Posté le 16-02-2005 à 23:58:54
merci pour l'aide, voici mon code entier
<?php
include("../ressources/fonction.php" );
connexion();
$query = "SELECT * FROM uploader";
$result = mysql_query($query);
$max = mysql_num_rows($result);
for($cpt=1 ; $cpt <= $max ; $cpt++)
{
$nom_case = "choix".$cpt;
if(isset($_POST[$nom_case]))
{
$query = "UPDATE uploader SET niv_banni = niv_banni+1 WHERE uploader_id = $cpt";
$result = mysql_query($query);
$query2 = "SELECT niv_banni WHERE uploader_id = $cpt";
$result2 = mysql_query($query);
echo mysql_result($result2,$cpt);
if(mysql_result($result2,$cpt) == "1" )
{
echo "je suis a 1";
}
if(mysql_result($result2,$cpt) == "2" )
{
echo "je suis a 2";
}
if(mysql_result($result2,$cpt) == "3" )
{
echo "je suis a 3";
}
}
}
echo "Tout c'est bien passé";
echo "<div id="."bouton-retour".">".
"<form methode="."post"." action="."gbdd-uploader.php"."><input type="."submit"." value="."Retour"." /></form>".
"</div>";
mysql_close();
?>
par contre j'ai pris easyphp parce que c'est le 1er foi que je developpe un site en php
je ne connaissais pas ce language
mais bon si tu connais autre chose , dit toujours sa m'interesse parce que c vrai que pour la gestion de la base de donnée c pas terrible
Marsh Posté le 17-02-2005 à 00:18:06
jj59 a écrit : merci pour l'aide, voici mon code entier |
Marsh Posté le 17-02-2005 à 10:04:10
Citation : $query2 = "SELECT niv_banni WHERE uploader_id = $cpt"; |
t'a prévu de filer un nom de table dans ta requete SELECT ???
et ensuite quand tu veux savoir ce qu'il y a dans $result2, c'est pas mal de parcourir les enregistrement avec un fetch_object, fetch_array, fetch_assoc, enfin tu choisi quoi...
ensuite, pour le test, if =1 ou 2 ou 3..etc... c'est des elsif qui serait plus approprié vu qu'il y en qu'un seul de vrai à chaque fois, ou alors meme un case ça peux le faire
PS: Pour répondre à ooterreuroo, pkoi un if aurait tjs un else !!! si la condition est vrai je fais un truc, sinon je fais rien, je vais pas écrire un else dans lequel je vais lui dire de rien faire quand meme !!!
Marsh Posté le 17-02-2005 à 11:28:26
ca dépends, si sa condition est tout le temps repmplie ok, mais si la condition n'est pas remplie, on peux afficher ou faire qqe chose...
j'ai un script php et si le nom d'utilisateur n'est pas bon, au lieu de s'arreter ca affiche que le nom d'utilisateur est pas bon et ca reviens a la page précédente...
pour les elseif c'est plus adapté certes...
et faut quand meme qu'il fasse gaffe aux ; parce que si il se plante ou les oublie ca marchera pas ;/
Marsh Posté le 17-02-2005 à 11:56:35
merci pour l'aide les gars, c'est vraiment sympa
j'ai presque resolu le probleme mais sa ne marche toujours pas
Xav pourquoi je doit utiliser un fetch_object, fetch_array, fetch_assoc ?? vu que ma requet SQL ne va renvoyer qu'un seul enregistrement (une seul ligne de la table)
voici mon code actuel
<?php
include("../ressources/fonction.php" );
connexion();
$query = "SELECT * FROM uploader";
$result = mysql_query($query);
$max = mysql_num_rows($result);
for($cpt=1 ; $cpt <= $max ; $cpt++)
{
$nom_case = "choix".$cpt;
if(isset($_POST[$nom_case]))
{
$query = "UPDATE uploader SET niv_banni = niv_banni+1 WHERE uploader_id = $cpt";
$result = mysql_query($query);
$query2 = "SELECT niv_banni FROM uploader WHERE uploader_id = $cpt";
$result2 = mysql_query($query2);
echo $result2; // renvoi tout le temps Resource id # 5
if($result2 == "1" )
{
echo "je suis a 1";
}
else if($result2 == "2" )
{
echo "je suis a 2";
}
else if($result2 == "3" )
{
echo "je suis a 3";
}
}
}
echo "Tout c'est bien passé";
echo "<div id="."bouton-retour".">".
"<form methode="."post"." action="."gbdd-uploader.php"."><input type="."submit"." value="."Retour"." /></form>".
"</div>";
mysql_close();
?>
Par contre desole pour le FROM c'été une erreur d'inatention
Marsh Posté le 17-02-2005 à 13:09:05
ooterreuroo a écrit : ca dépends, si sa condition est tout le temps repmplie ok, mais si la condition n'est pas remplie, on peux afficher ou faire qqe chose... |
si la condition est tout le temps rempli, ça n'est pas une condition, donc tu teste pas, tu fait...
ensuite je suis d'accord avec toi, que " en général" ya un else, mais ça n'a rien d'obligatoire comme tu semblais vouloir l'affirmer.
Dans l'exemple que tu donne, il est évident que soit on identifie, soit on affiche "identification incorrecte", mais c'est n'est pas tjs le cas.
Par exemple si un user est loggé en admin, ben tu lui affiche le menu d'administration en plus, sinon, ben tu affiche rien, dans ce cas pas de else
Marsh Posté le 17-02-2005 à 13:14:13
Citation : Xav pourquoi je doit utiliser un fetch_object, fetch_array, fetch_assoc ?? vu que ma requet SQL ne va renvoyer qu'un seul enregistrement (une seul ligne de la table) |
ben la doc elle te dis quoi ???
http://fr.php.net/manual/fr/function.mysql-query.php
Citation : Pour les commandes SELECT , mysql_query() retourne un identifiant de résultat que vous pouvez passer à mysql_fetch_array(), ou n'importe quelle autre fonction de lecture de résultat. Lorsque vous avez terminé avec le résultat, libérez la mémoire avec mysql_free_result(). |
ça te retourne bien un identifiant de résultat que je sache
Citation : Resource id # 5 |
Je veux bien aider, mais quand il s'agit de lire la doc, je vais quand meme pas le faire à ta place (quoique, en fait je viens de le faire )
Marsh Posté le 17-02-2005 à 14:27:14
c bon j'ai reussi en fesant un
$row = mysql_fetch_row($result2);
puis en utilisant $row[0]
personnelement, je trouve cette methode un peu barbare (fair un tableau pour stocké une variable, c pas terrible)
mais bon sa marche , c l'essentiel merci pour votre aide
Marsh Posté le 16-02-2005 à 14:14:30
bonjour a tous
j'ai un petit probleme d'insertion dans une base MYSQL
j'ai pas d'erreur de connection à celle ci (de se coté la tout va bien)
quand je fais mon insertion, pas de probleme, mais apres quand je vais dans PHPMYadmin et que je fait afficher ma table, rien n'est rentré
voici ma table :
Champ Type Null Défaut
uploader_pwd varchar(30) Non
uploader_login varchar(30) Non
uploader_nom varchar(30) Non
uploader_prenom varchar(30) Non
uploader_mail varchar(50) Non
niv_banni int(11) Oui 0
date_banni date Oui 0000-00-00
et voici mon code php :
$requet = 'INSERT INTO uploader VALUES ("'.$_POST['pwdcreateur'].'", "'.$_POST['logincreateur'].'", "'.$_POST['nomcreateur'].'", "'.$_POST['prenomcreateur'].'", "'.$_POST['mailcreateur'].'" )';
mysql_query($requet);
merci beaucoup pour l'aide