Ecrire des données [phpmyadmin]

Fermé
jicé - 14 avril 2009 à 12:32
 Utilisateur anonyme - 14 avril 2009 à 18:12
Bonjour,

j'ai un soucis que je n arrive vraiment pas à resoudre

j ai fais un formulaire (pr ajouter une news.. peu importe) qui renvoie vers une page de confirmation avec un action="cible.php"

donc dans cetet page cible j ai ce code

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("smplfd1.1");
?>
<?php echo $_POST['titre']; ?> <br>
<?php echo $_POST['pays']; ?> <br>
<?php echo $_POST['type']; ?> <br>
<?php echo $_POST['corps']; ?> <br>

<?phpINSERT INTO news(id, date_ajout, type, pays, titre, corps, rider) VALUES('', '2009-04-14', '$_POST['type'];', '$_POST['pays'];', '$_POST['titre'];', '$_POST['corps'];', '22')
?>
<?php
mysql_close();
?>


l affichage des variables envoyées me sert juste de vérification.
j'aurais voulu savoir pk ces variables s affichent toutes biens mais rien n'est enregistré dans ma table

(je precise que j ai tt vérifié le nom de la table est ok, ainsi que ses attributs

merci,

jicé
A voir également:

9 réponses

Utilisateur anonyme
14 avril 2009 à 12:41
Bonjour,
C'est normal que <?php est collé avec insert ?
<?php
mysql_query("INSERT INTO news (date_ajout, type, pays, titre, corps, rider) VALUES('2009-04-14', '$_POST[\'type\']', '$_POST[\'pays\']', '$_POST[\'titre\']', '$_POST[\'corps\']', '22')")
mysql_close();
?> 


ou (avec vérification)
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("smplfd1.1");
if (!empty($_POST['type']) && !empty($_POST['pays']) && !empty($_POST['titre']) && !empty($_POST['corps'])) {
         $type=$_POST['type'];
         $pays=$_POST['pays'];
         $titre=$_POST['titre'];
         $corps=$_POST['corps'];
         mysql_query("INSERT INTO news (date_ajout, type, pays, titre, corps, rider) VALUES ('2009-04-14', '$type', '$pays', '$titre', '$corps', 22)");
}
else { echo "Vous n'avez pas rempli tous les champs du formulaire"; }
mysql_close();
?> 
1
Utilisateur anonyme
14 avril 2009 à 12:56
Prend ma deuxième solution, car je suis pas trop douée avec les antislash (\) ^^

Edit : je crois savoir d'où viens l'erreur, il faut pas mettre de guillemets autour d'un nombre (ici 22).
1
ah merci! bien vu

maintenant j ai un soucis de guillemet
car j ai cette erreur
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\simplified\news_envoyee.php on line 110

j ai bien enlevé les points virgules et mis des \ mais ca me remet encore une fois l erreur.
0
mince, j avais pas vu le "ou avec verification"

celui la ne me mets plus de message d erreur, c est une bonne chose mais rien n est enregistré dans la table.

je vais re tout vérifier mais je pense pas que ce soit un soucis de nom incorrect
0

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

Posez votre question
j ai tenté sans les guillemets du 22 mais pareil, ca me mets aucun message d erreur mais ca n enregistre pas

j ai vu que tu avais enlevé le id
c est parce qu'il est en auto increment ou c'est juste un oubli?
0
Utilisateur anonyme
14 avril 2009 à 13:17
Oui, l'id est en auto-increment, si bien sûr dans phpMyAdmin il est en auto-increment.
Je re-vérifie mon code, car il y a peut-être une petite erreur que je n'ai pas vu.

Edit : J'ai testé le code, et ça fonctionne.
C'est peut-être ton formulaire qui n'est pas bon.
0
en effet ca a lair d etre mon formulaire

avec un autre script qui rapporte les erreurs j ai eu cette erreur

Error :/ on line 109:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'une nouvelle pièce chez FIT, mettez Etats-Unis par exemple.', '22')' at line 1

donc en gros je dois comprendre que mon formulaire contient une erreur

le voilà:

<form name="creer_news" method="post" action="news_envoyee.php">
<tr>
<td colspan="2" class="news_titre">
> ECRIRE UNE NEWS
</td>
</tr>
<tr>
<td class="creer_news_titre" width="330" align="center" colspan="2">
<input type="text" name="titre" value=" Titre de votre news" size="92%" class="champ" onfocus="this.value='';"/>
</td>
</tr>
<tr>
<td class="creer_news_pays" align="center" width="50%">
Pays (de la news):
<select name="pays" size="1">
<option>France</option>
<option>Etats-unis</option>
<option>Russie</option>
<option>Allemagne</option>
<option>Espagne</option>
<option>Pologne</option>
<option>Autre</option>
</select>
</td>
<td class="creer_news_type" align="center" width="50%">
Type :
<select name="type" size="1">
<option>Video</option>
<option>Pièce/cadre</option>
<option>Photo</option>
<option>Autre</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" class="creer_news_contenu" align="center">
<textarea name="corps" rows="10" cols="90%" class="champ" onfocus="this.value='';"> Ici, vous écrivez le contenu de la news. Pensez à faire le moins de faute possible, les news seront soumises à la modération avant toute mise en ligne. Précision: Le pays demandé est celui de la news (si la news parle d'une nouvelle pièce chez FIT, mettez Etats-Unis par exemple.</textarea>
</td>
</tr>
<tr>
<td colspan="2" class="creer_news_contenu" align="center">
<textarea name="video" rows="4" cols="90%" class="champ" onfocus="this.value='';"> Insérer le code Embed d'une éventuelle vidéo ici.</textarea>
</td>
</tr>
<tr>
<td colspan="2" class="creer_news_poster" align="center">
<input type="submit" name="poster" value="Poster." class="champ" />
</td>
</tr>
</form>


les "textarea" ne fonctionne pas comme des champs normaux au niveau de l ecriture dans la bdd?
0
Utilisateur anonyme
14 avril 2009 à 14:33
Il faut que tu mettes dans les balises <option>, par exemple :
<option value="France">France</option>

Maintenant, ça doit fonctionner.

Sinon, ton deuxième champ texte, tu l'insères pas dans la base de données ?
0
merci!
ca marche desormais, j ai changé le texte dans le textarea et ca a fonctionné... pk j en sais rien, peut etre qu'il etait trop gros

sinon pr integrer un embed code c est pareil?
0
Utilisateur anonyme
14 avril 2009 à 18:12
Tu l'insères comme un texte normal.
Je viens de le faire avec une vidéo quelconque.
Puis avec un autre fichier, j'ai affiché ce qu'il y avait dans la table et la vidéo s'est bien affichée.
0