8792 sujets

Développement web côté serveur, CMS

Bonjour,

Voila j'apprends le PHP et j'essaie d'ecrire dans une base de donnée que j'ai créé.
J'utilise EasyPHP.

Lorsque je vais sur PHPMyAdmin je n'arrive pas a trouvé ce que je demande d'ecrire dans ma base :

Voici mon code:

<?
mysql_connect ("localhost","root","");

mysql_select_db("test"); //ma BDD s'appelle test

mysql_query("INSERT INTO news VALUES('', 'blallalalalala', 'bibibibibibibbi')"); // ma table s'appelle news


mysql_close();


Voila et lorsque je vais dans PHPmyadmin impossible de retrouver ces infos enregistrées quelques parts, comme si je ne pouvais pas ecrire dans ma BDD, a noter que j'arrive à y lire des infos !!!


Merci à ceux qui m'aideront
Qu'y a-t-il dans ta table NEWS ?

Sinon essaie ce script :
$idConnex=mysql_connect('localhost','root','');
mysql_select_db('news',$idConnex);
$requete='INSERT INTO news VALUES(\'\', \'blabla\', \'bibi\');';
mysql_query($requete,$idConnex);

Modifié par 84mickael (05 Aug 2005 - 12:38)
Imaginons que la table "news" contient 2 champs nommés "champ1" et "champ2".

Pour une insertion, j'écris :

INSERT INTO news (champ1, champ2) VALUES ('truc', 'machin');


En effet il faut spécifier à Mysql dans quels champs inscrire les données !

Et quand je voudrai récupérer ces données je demanderai :

SELECT champ1, champ2 FROM news WHERE .....


Le WHERE servant à spécifier une condition si nécessaire.

Donc dans tous les cas il faut expliquer à Mysql ce que l'on veut exactement obtenir, sinon il n'y aura aucun résultat !
Salut,
a écrit :
INSERT INTO news (champ1, champ2) VALUES ('truc', 'machin');


Et bien nan, justement, on n'est pas obligé de préciser où l'on veut écrire les données, mais dans ce cas il faut veiller à bien respecter le nombre de champs et l'ordre, sous peine d'avoir des problèmes.

Dans le cas de yaume, je suppose qu'il à un champ id (pour lequel il n'entre pas de valeurs, car il est probablement en auto_increment), un champ titre eu un champ contenu par exemple...si c'est bien le cas, qu'il n'y a que trois champ, je ne vois pas d'où peu venir le problème...

Yaume, tu n'as pas de message d'erreur ?
Peux tu essayer ce code en ligne (en modifier en conséquence les infos de connexion à la BDD) au cas où ce serait un problème de config de easyphp...(je ne sais pas si ça peut arriver...mais bon, je débute aussi alors je fais es propositions à mon niveau !! Smiley smile )

@+
Graph-Site a écrit :


Et bien nan, justement, on n'est pas obligé de préciser où l'on veut écrire les données, mais dans ce cas il faut veiller à bien respecter le nombre de champs et l'ordre, sous peine d'avoir des problèmes.

. . . .


Sûr de sûr ?

Je ne me souviens plus mais quoi qu'il en soit je précise toujours car il est très facile de faire un insert érroné si on ne précise pas.

Alors le script ne fonctionne pas et il est parfois long de retrouver une erreur bête dans un script un peu volumineux ...
jcm a écrit :


Sûr de sûr ?

Je ne me souviens plus mais quoi qu'il en soit je précise toujours car il est très facile de faire un insert érroné si on ne précise pas.



Je suis d'accord avec Serge... Euh, non Graph-Site Smiley cligne

J'ai ça dans mes pages de mises à jour de mes bases et ça marche très bien...

Le problème, c'est que le jour où tu n'as plus le bon nombre de colonnes l'enregistrement de la ligne ne se fait pas du tout (alors qu'en mettant explicitement le nom des colonnes, la ligne s'écrira mais avec la colonne oubliée vide ou à sa valeur par défaut)

Le code erreur retourné est toujours attendu pour nous faciliter la recherche de l'erreur...

    
$requete = "INSERT INTO news VALUES('', 'blallalalalala', 'bibibibibibibbi')";
echo $requete."<br />"; // en debug.
$resultat=mysql_query($requete);
   if (!$resultat) {
        echo mysql_errno()." : ".mysql_error()."<br />";
   } 
Smiley lol en lisant le poste de yaume, je comprend juste qu'il n'arrive pas à visualiser sa table news depuis phpmyadmin...
ça demande bien des éclaircissements
Je comprends plutôt qu'il écrit quelque chose et qu'il ne le trouve pas ensuite dans phpmyadmin...

Comme quoi avec une phrase et deux lecteurs on peut avoir deux lectures (voir plus Smiley cligne )

Avec mon petit bout de code, on saura déjà s'il écrit quelque chose dans la base
Bonjour,

Voila j'apprends le PHP et j'essaie d'ecrire dans une base de données que j'ai créée.
Je suis sous linux.

Lorsque je vais sur PHPMyAdmin je n'arrive pas à trouver ce que je demande d'écrire dans ma base :

Voici mon code:


$bd =mysql_connect ('localhost', 'root', '');

mysql_select_db('Test',$bd); //ma BDD s'appelle Test

$requete ='INSERT INTO HelloWorld (id,first_name,name,birth_date) VALUES(321,Mouse,Mouse,1-1-1)';

$result = mysql_query ($requete);

if ($result1 == NULL) {
echo ' requete insert echouee.';
}
else {
echo' requete insert reussi.';
}

mysql_close($bd);



Voila le if me renvoi que la requete a echoué, et lorsque je vais dans PHPmyadmin impossible de retrouver ces infos enregistrées quelques parts, comme si je ne pouvais pas ecrire dans ma BDD, a noter que les select marchent.


Merci à ceux qui m'aideront
Salut,

Si il te dit que ça a échoué forcément t'auras rien dedans ^^

Le mieux c'est quand même de récupérer l'erreur renvoyée par SQL avec mysql_error()

+
avec un peu de mise ne forme là ça devrait aller mieux...

VALUES(321,Mouse,Mouse,1-1-1)


devrait devenir un truc comme cela

VALUES(321,"Mouse","Mouse","1-1-1")


car ton programme SQL ne sait pas changer le type de donnée naturellement (en mettant des variables à la place des données en dur, si)

En supposant que 1-1-1 soit une date valide si tu as défini un champ de format date Smiley biggol
Merci beaucoup à Bob et SolarWeb :o)

Ca marche!

Et effectivement tu avais raison Bob, il fallait que je rajoute ces guillemets.
Desormais je vais faire afficher les erreurs SQL c'est vrai qu'elles sont plus comprehensibles que ce que moi je fais lol ... mais en fait c'est que je ne savais pas comment faire... Smiley confused now je sais et je le ferais.

c'est la première fois que je poste sur un forum et je suis agréablement ettonnée que ca marche. Ya des gens pour repondre Smiley langue

A ++

Camino
Salut Yaume.

Avant tout, un petit conseil, prend l'habitude de mettre tes fonctions dans des variables, c'est beaucoup plus pratique et clair, un peu comme ca..

<?php

$db = mysql_connect('localhost', 'login', 'password');

mysql_select_db('nom_de_la_base',$db);

$sql = 'INSERT INTO...';

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$res=mysql_query($req); 

$nombre = mysql_num_rows($res);

$data=mysql_fetch_object($res);


Maintenant, pour ton problème, il faudrait que tu nous en dises plus sur ta DB, au moins le nombre de champ et leur nom, parce que a, on se base sur des supositions.

Au vu de ton message, tu dois en effet avoir minimum 3 champ, un champ "ID", un champ "nom"(ou autres) et un champ "description"(ou autre).

EDIT : Je te conseil de faire un tour sur PHP Debutant, pour t'aider et apprendre les bases et plus en PHP.
Modifié par TheReverendEVIL (05 May 2006 - 09:50)