Début en php/mysql : dialogue avec mysql

F-MATH
Invité n'ayant pas de compte PHPfrance

21 févr. 2005, 22:07

Salut a tous

Je suis totalement débutant en php et je désir construire mon site en php. J'ai donc pour cela acheter un livre appelle "Php et MySQL pour les nuls". J'ai commencer a suivre ce livre qui nous fait d'abors faire un plan du site que l'on veut créer, avec un plan de la base de donné MySQL. Maintenand, je suis arriver a l'etape ou on commence a contruire une base de donné SQL avec les tables ect ... Pour cela, l'auteur du bouquin nous fait créer une page en PHP qui permettra de dialoguer avec MySQL. Mais voila, la page ne marche pas chez moi. J'ai vérifié plusieurs foi mais rien, ca ne marche pas.

J'aimerais savoir si quelqu'un pourrais m'aider.

Merci

@+

F-MATH
www.f-math.fr.st

PS : j'oubliai, j'utilise (et dans le bouquin aussi) Easy PHP.

ViPHP
ViPHP | 2144 Messages

21 févr. 2005, 22:10

Tiens, on a déja dû se croiser quelque part, sur un autre forum, et en plus, on ne peut pas ne pas reconaitre le screen montrant l'ébauche d'un avion dans Gmax. :D :D :D :D (Surtout un Jodel)

Bienvenue sur le forum.

Il faudrait que tu nous en dise plus sur ton ton problême, les messages d'erreurs que tu obtiens, et surtout poster nous ton code, en utilisant les balises php pour qu'on ait la coloration synthaxique...

Eléphanteau du PHP | 11 Messages

22 févr. 2005, 18:51

Salut

Merci de ta réponse. On a peut etre du ce voir sur un forum de simulation de vol. Francesim par exemple. Je faisais beaucoup de flightsimulator mais depuis peu je suis passer a X-Plane.
Sinon pour ce qui est le la page, il doit avoir normalement 2 zones de texte dont une ou on rentre la requette SQL . Pour tester si ca marche, il nous dise de rentre "SHOW DATABASE". Mais quand je rentre ca, rien ne se passe.
Dans la deusieme boite de texte, on doit rentre le nom de la base de donne dans laquel il faut executer la requette (mais c'est facultatif).

Merci pour ton aide.

@+

F-MATH

Voici le code de la page :

<! - - Nom du programme : mysql_envoi.php
Description : envoi d'une requête SQL au serveur SQL et affiche les résultats.
- ->
<html>
<head>
<title>Envoi de requêtes SQL</title>
</head><body>
<?php
$host="hostname";
$user="mysqlaccountname";
$password="mysqlpassword";

/* Section d' exécution de la requête */
if(@$_GET['form'] == "yes")
{
mysql_connect($host,$user,$password);
mysql_select_db($_POST['database']);
$query = stripSlashes($_POST['query']);
$result = mysql_query($query);
echo "Base de données séléctionnée : <b>{$_POST['database']}</b><br>
Requête : <b>$query</b><h3>Résultat</h3><hr>";
if($result == 0)
echo "<b>Erreur ".mysql_errno().": ".mysql_error()."</b>";
elseif (@mysql_num_rows($result) == 0)
echo("<b>Requête exécutée. Aucun résultat envoyé.
</b><br>");
else
{
echo "<table border='1'>
<thead>
<tr>";
for($i = 0;$i < mysql_num_fields($result);$i++)
{
echo "<th>".mysql_field_name($result.$i). "</th>";
}
echo " </tr>
</thead>
<tbody>";
for ($i = 0; $i < mysql_num_rows($result); $i++)
{
echo "<tr>";
$row = mysql_fetch_row($result);
for($j = 0;$j<mysql_num_fields($result);$j++)
{
echo("<td>" . $row[$j] . "</td>");
}
echo "</tr>";
}
echo"</tbody>
</table>";
} //end else
echo "
<hr><br>
<form action=\"{$_SEVER['PHP_SELF']}\" method=\"POST\">
<input type='hidden' name='query' value='$qyery'>
<input type='hidden' name='database' value={$_POST['database']}>
<input type='submit' name=\"queryBoutton\" value=\"Nouvelle Requête\">
<input type='submit' name=\"queryBoutton\" value=\"Editer la requête\">
</form>";
unset($form);
exit();
} // endif form=yes

/* Section that requests user input of query */
@$query=stripSlashes($_POST['query']);
if (@$_POST['queryButton'] != "Editer la requête")
{
$query =" ";
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>?form=yes method="POST">
<table>
<tr>
<td align=right><b>Indiquez le nom<br>de la base de données</b></td>
<td><input type="text" name="database" value=<?php echo @$_POST['database'] ?> ></td>
</tr>
<tr>
<td align="right" valign="top"><b>Saisissez la requête SQL</b></td>
<td><textarea name="query" cols="60" rows="10"><?php echo $query ?></textarea>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Envoyez la requête"></td>
</tr>
</table>
</form>
</body></html>

Eléphant du PHP | 61 Messages

22 févr. 2005, 19:03

Salut,

essaye de faire echo $_POST['database']; et echo $_POST['query']; voir si ca te retourne quelques choses.
A mon avis viens du fait que c'est variable sont vides.

Autres choses evites d'utiliser @ ex :
if(@$_GET['form'] == "yes")

ce n'est pas très optimisé, ca cache juste tes erreurs. Tu peux donc les retirer

Invité
Invité n'ayant pas de compte PHPfrance

22 févr. 2005, 20:46

Salut
essaye de faire echo $_POST['database']; et echo $_POST['query']; voir si ca te retourne quelques choses.
Je vien d'essayer mais ca n'a rien donner.
Autres choses evites d'utiliser @ ex :
if(@$_GET['form'] == "yes")
Je vien de les enlever et maintenand j'ai pleins d'erreures du style "Notice: Undefined index: form in c:\utilitaires\easy php\www\www.f-math.fr.st\mysql_envoi_2.php on line 14"
Il faut que j'essais de les corriger. Mais le problème, c'est que j'en suit au début du livre a l'etape création de la base de donner. On a donc pas encore vue ce qu'est php et il nous donne cette page a taper qui va nous permettre de dialoguer avec MySQL en attendant de voir php et de faire autre chose pour dialoguer avec MySQL. En fait je tape ce code mais je sais pas ce qu'il veux dire car dans le livre on vois php après avoir fini la base de donner.
A mon avis viens du fait que c'est variable sont vides.
Peux tu m'en dire un peu plus ?

Merci

@+

F-MATH

Eléphanteau du PHP | 11 Messages

22 févr. 2005, 22:17

Salut

Je me suis appercu que tout les méssage du genre "Notice: Undefined index: form in c:\utilitaires\easy php\www\www.f-math.fr.st\mysql_envoi_2.php on line 14" me renvois au lignes ou j'ai supprimer les "@". Je pense que ca vien pas de la.

Une autre idée ?

Merci

@+

F-MATH

Eléphanteau du PHP | 11 Messages

24 févr. 2005, 22:15

Salut

Il y a personne pour m'aider ?

Merci

@+

F-MATH

Eléphant du PHP | 102 Messages

24 févr. 2005, 23:58

Il faut que tu testes si les variables existent ou sont remplies avec isset() ou empty() avant de les remplir ou de faire toute autre opération avec :wink:

Eléphanteau du PHP | 11 Messages

25 févr. 2005, 22:27

Salut
Il faut que tu testes si les variables existent ou sont remplies avec isset() ou empty() avant de les remplir ou de faire toute autre opération avec
Est ce que tu pourrais m'expliquer un peux plus pasque la je comprend pas.

Merci

@+

F-MATH

ViPHP
ViPHP | 2144 Messages

25 févr. 2005, 22:56

Lorsque tu récupère des variables,il faut vérifier qu'elles sont bien remplies. la fonction "isset()" te reverra vrai si la variable est bien définie.
if ( isset($_POST['database']) {

// ici on peut utiliser le contenu de la variable database, provenant d'une   requête "post"
}
else
{
// on se retrouvera ici, si cette variable n'est pas définie
}

Eléphanteau du PHP | 11 Messages

26 févr. 2005, 00:06

Salut

Voici le code que j'ai taper dans une nouvelle page php :

<html>
<head>
<title>Test MySQL</title>
</head><body>
<?php
if ( isset($_POST['database']) {

// ici on peut utiliser le contenu de la variable database, provenant d'une requête "post"
}
else
{
// on se retrouvera ici, si cette variable n'est pas définie
}
?>
</body>
</html>

Et voici la réponse que j'obtien :
Parse error: parse error, unexpected '{' in c:\utilitaires\easy php\www\www.f-math.fr.st\test.php on line 6

Je n'y comprend rien. Ce livre est fait pour les débutants mais rien ne marche. Ou alors c'est moi qui déconne.

@+

F-MATH

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 févr. 2005, 00:12

ici il manque déjà une parenthèse fermante :
if ( isset($_POST['database'])) { 
courage, recopier des exemples c'est ça le plus dur :)

mais ce genre d'erreur

Code : Tout sélectionner

Parse error: parse error, unexpected '{' in c:\utilitaires\easy php\www\www.f-math.fr.st\test.php on line 6
c'est soit y'a une { en trop, soit y'a un problème de syntaxe qqpart

Eléphanteau du PHP | 11 Messages

27 févr. 2005, 18:21

Salut a tous

Bon finalement, j'ai tous repris a 0. J'ai d'abort tester PHP avec une page en php qui est donner dans le livre. Résultat : PHP marche.
Après, j'ai tester MySQL avec une page en php qui est donner dans le livre. Résultat : MySQL marche.
Le problème vien donc pas de Easy PHP

J'ai donc retaper toute ma page PHP donner dans le livre et qui me servira a dialoguer avec MySQL dans la suite du livre.
Mantenand ca marche (ou presque !!). Je lance ma page, je fait une requête SQL comme show databases, j'obtien une page d'erreur avec marqué :
Forbidden
You don't have permission to access /www.f-math.fr.st/<br /><b>Notice</b>: Undefined variable: _server in <b>c:\utilitaires\easy php\www\www.f-math.fr.st\mysql_envoi.php</b> on line <b>62</b><br /> on this server.
Apache/1.3.27 Server at ordienfant Port 80
Est ce que vous avez une idée de quoi ca peut venir ?

Merci

@+

F-MATH

ViPHP
ViPHP | 60 Messages

27 févr. 2005, 18:25

Hello,

Manipules-tu $_SERVER ou bien $_server ? ;)

/Flood

Eléphanteau du PHP | 11 Messages

27 févr. 2005, 18:59

Salut

Merci, je vien de corriger ca. J'ai refait un éssais avec show databases. J'obtien un méssage d'érreur alors que dans le livre il me marque que je devrait voir 2 base de données qui sont déja présentes sous MySQL.

Voici le méssage d'erreur :
Notice: Undefined variable: query in c:\utilitaires\easy php\www\www.f-math.fr.st\mysql_envoi.php on line 19

Notice: Undefined variable: query in c:\utilitaires\easy php\www\www.f-math.fr.st\mysql_envoi.php on line 20
Base de données sélectionnée :
Requête :
Résultats
Erreur 1065: Query est vide
Notice: Undefined variable: query in c:\utilitaires\easy php\www\www.f-math.fr.st\mysql_envoi.php on line 46
J'ai vérifié les lignes concerné, mais le code est bon.

Est ce que vous avez un idée ?

Merci

F-MATH