A voir également:
- PHP + MySQL (via easyphp)
- Easyphp - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Via michelin carte - Télécharger - Transports & Cartes
- Expert php pinterest - Télécharger - Langages
- Partager des photos via un lien - Guide
16 réponses
Oui je suis en local, je fais un double clik dessus et c'est l'explorateur qui l'ouvre naturellement
Quelle est l'adresse qui s'affiche dans la barre d'addresse de l'explorateur ? style C:\\qqchose\recherche.html ou style http://localhost/qqchose/recherche.html ?
Quelle est l'adresse qui s'affiche dans la barre d'addresse de l'explorateur ? style C:\\qqchose\recherche.html ou style http://localhost/qqchose/recherche.html ?
infor3lmd
Messages postés
111
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009
2
1 mai 2009 à 18:38
1 mai 2009 à 18:38
d'après le msg d'erreur
les variables que tu récupère de la base ne sont pas affiché.
la ou tu as des doutes : dans ton echo enlève les double quotte ""
essai sa et dis nous quesque sa donne
les variables que tu récupère de la base ne sont pas affiché.
la ou tu as des doutes : dans ton echo enlève les double quotte ""
essai sa et dis nous quesque sa donne
Bonjour
N'enlève pas de double-quotes juste pour voir, sans savoir pourquoi.
Par contre, comment fais-tu tes essais ? ce que tu appelles un message d'erreur n'en est pas un, il vient du fait que ton php n'est pas interpreté. le HTML te cache tout ce qu'il y a entre le <?php qu'il ne comprend pas, et le > suivant, qu'il prend pour la fin d'une balise. et il te montre la suite
Je suppose que tu es en local. comment ouvres-tu ton fichier recherche.html ? en double-cliquant dessus dans le fenêtre de l'explorateur ?
N'enlève pas de double-quotes juste pour voir, sans savoir pourquoi.
Par contre, comment fais-tu tes essais ? ce que tu appelles un message d'erreur n'en est pas un, il vient du fait que ton php n'est pas interpreté. le HTML te cache tout ce qu'il y a entre le <?php qu'il ne comprend pas, et le > suivant, qu'il prend pour la fin d'une balise. et il te montre la suite
Je suppose que tu es en local. comment ouvres-tu ton fichier recherche.html ? en double-cliquant dessus dans le fenêtre de l'explorateur ?
ejay03
Messages postés
20
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
2 mai 2009
1 mai 2009 à 18:58
1 mai 2009 à 18:58
les variables que tu récupère de la base ne sont pas affiché.
--> Pourquoi elles ne s'affichent pas ?
la ou tu as des doutes : dans ton echo enlève les double quotte ""
essai sa et dis nous quesque sa donne
--> j'ai essayé d'épurer la fin du programme ... mais le msg reste le même
--> Pourquoi elles ne s'affichent pas ?
la ou tu as des doutes : dans ton echo enlève les double quotte ""
essai sa et dis nous quesque sa donne
--> j'ai essayé d'épurer la fin du programme ... mais le msg reste le même
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ejay03
Messages postés
20
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
2 mai 2009
1 mai 2009 à 18:59
1 mai 2009 à 18:59
oui je suis en local, je fais un double clik dessus et c'est l'explorateur qui l'ouvre naturellement
ejay03
Messages postés
20
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
2 mai 2009
1 mai 2009 à 19:11
1 mai 2009 à 19:11
file:///C:/Program%20Files/EasyPHP%203.0/www/recherche%20personnes.html
je viens de le faire en passant par http://localhost/ ça marche mieux ;) MERCI
humm j'ai une autre erreur maintenant, je vous tiens au courant ^^
je viens de le faire en passant par http://localhost/ ça marche mieux ;) MERCI
humm j'ai une autre erreur maintenant, je vous tiens au courant ^^
ejay03
Messages postés
20
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
2 mai 2009
1 mai 2009 à 19:46
1 mai 2009 à 19:46
Error: Impossible de se connecter à la base de données
--> est ce qu'on peut regarder ensemble si j'ai bien renseigner les éléments de connexion à la base de données ?
@ $db = new mysqli('localhost', 'root', 'projet ing', 'personnes');
--> serveur, nom d'utilisateur, nom de la base de donnée, nom de la table, ::: c'est juste ?
--> est ce qu'on peut regarder ensemble si j'ai bien renseigner les éléments de connexion à la base de données ?
@ $db = new mysqli('localhost', 'root', 'projet ing', 'personnes');
--> serveur, nom d'utilisateur, nom de la base de donnée, nom de la table, ::: c'est juste ?
ejay03
Messages postés
20
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
2 mai 2009
1 mai 2009 à 19:54
1 mai 2009 à 19:54
Error: Impossible de se connecter à la base de données --> Résolu :)
Résultat de la recherhe de personnes dans la base
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 30
Notice: Trying to get property of non-object in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 32
Nombre de personnes trouvées:
Fatal error: Call to a member function free() on a non-object in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 49
Résultat de la recherhe de personnes dans la base
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 30
Notice: Trying to get property of non-object in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 32
Nombre de personnes trouvées:
Fatal error: Call to a member function free() on a non-object in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 49
Peux-tu redonner ton code dans son état actuel et préciser sur quelles lignes apparaissent les erreurs ?
ejay03
Messages postés
20
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
2 mai 2009
2 mai 2009 à 00:28
2 mai 2009 à 00:28
******************************************************************
Mon fichier "recherche personnes.html" ci-dessous:
<html>
<head>
<title>Recherche de personne dans la base chantier Sanofi-Aventis PROJET DI 50 </title>
</head>
<body>
<h1>Recherche de personne dans la base chantier Sanofi-Aventis PROJET DI 50</h1>
<form action="resultats.php" method="post">
Choisissez un type de recherche :<br />
<select name="type_recherche">
<option value="nom">Par nom</option>
<option value="prenom">Par prenom</option>
<option value="matricule">Par matricule</option>
</select>
<br />
Entrez le terme recherché; :<br />
<input name="terme_recherche" type="text" size="40" />
<br />
<input type="submit" value="Rechercher" />
</form>
</body>
</html>
***********************************************************************
Mon fichier "résultats.php" ci-dessous
<html>
<head>
<title>Résulat de la recherche de personnes dans la base du chantier Sanofi Aventis</title>
</head>
<body>
<h1>Résultat de la recherhe de personnes dans la base</h1>
<?php
// create short variable names
$type_recherche = $_POST['type_recherche'];
$terme_recherche = trim($_POST['terme_recherche']);
if (!$type_recherche || !$terme_recherche) {
echo 'vous navez pas saisi les détails de la recherche';
exit;
}
if (!get_magic_quotes_gpc()){
$type_recherche = addslashes($type_recherche);
$terme_recherche = addslashes($terme_recherche);
}
@ $db = new mysqli('localhost', 'root', '','projet ing', 'personnes');
if (mysqli_connect_errno()) {
echo 'Error: Impossible de se connecter à la base de données.';
exit;
}
$requete = "select * from personnes where ".$type_recherche." like '%".$terme_recherche."%'";
$resultat = $db->query($requete); // erreur ligne 30
$nb_lig_resultat = $resultat->num_rows; // erreur ligne 32
echo "<p>Nombre de personnes trouvées: ".$nb_lig_resultat."</p>";
for ($i=0; $i < $nb_lig_resultat; $i++) {
$ligne = $resultat->fetch_assoc();
echo "<p><strong>".($i+1).". nom : ";
echo htmlspecialchars(stripslashes($ligne['nom']));
echo "</strong><br />prenom : ";
echo stripslashes($ligne['prenom']);
echo "<br />matricule : ";
echo stripslashes($ligne['matricule']);
echo "</p>";
}
$resultat->free(); // erreur ligne 47
$db->close();
********************************************************************
Le message d'erreur:
Résultat de la recherhe de personnes dans la base
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 30
Notice: Trying to get property of non-object in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 32
Nombre de personnes trouvées:
Fatal error: Call to a member function free() on a non-object in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 47
Mon fichier "recherche personnes.html" ci-dessous:
<html>
<head>
<title>Recherche de personne dans la base chantier Sanofi-Aventis PROJET DI 50 </title>
</head>
<body>
<h1>Recherche de personne dans la base chantier Sanofi-Aventis PROJET DI 50</h1>
<form action="resultats.php" method="post">
Choisissez un type de recherche :<br />
<select name="type_recherche">
<option value="nom">Par nom</option>
<option value="prenom">Par prenom</option>
<option value="matricule">Par matricule</option>
</select>
<br />
Entrez le terme recherché; :<br />
<input name="terme_recherche" type="text" size="40" />
<br />
<input type="submit" value="Rechercher" />
</form>
</body>
</html>
***********************************************************************
Mon fichier "résultats.php" ci-dessous
<html>
<head>
<title>Résulat de la recherche de personnes dans la base du chantier Sanofi Aventis</title>
</head>
<body>
<h1>Résultat de la recherhe de personnes dans la base</h1>
<?php
// create short variable names
$type_recherche = $_POST['type_recherche'];
$terme_recherche = trim($_POST['terme_recherche']);
if (!$type_recherche || !$terme_recherche) {
echo 'vous navez pas saisi les détails de la recherche';
exit;
}
if (!get_magic_quotes_gpc()){
$type_recherche = addslashes($type_recherche);
$terme_recherche = addslashes($terme_recherche);
}
@ $db = new mysqli('localhost', 'root', '','projet ing', 'personnes');
if (mysqli_connect_errno()) {
echo 'Error: Impossible de se connecter à la base de données.';
exit;
}
$requete = "select * from personnes where ".$type_recherche." like '%".$terme_recherche."%'";
$resultat = $db->query($requete); // erreur ligne 30
$nb_lig_resultat = $resultat->num_rows; // erreur ligne 32
echo "<p>Nombre de personnes trouvées: ".$nb_lig_resultat."</p>";
for ($i=0; $i < $nb_lig_resultat; $i++) {
$ligne = $resultat->fetch_assoc();
echo "<p><strong>".($i+1).". nom : ";
echo htmlspecialchars(stripslashes($ligne['nom']));
echo "</strong><br />prenom : ";
echo stripslashes($ligne['prenom']);
echo "<br />matricule : ";
echo stripslashes($ligne['matricule']);
echo "</p>";
}
$resultat->free(); // erreur ligne 47
$db->close();
********************************************************************
Le message d'erreur:
Résultat de la recherhe de personnes dans la base
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 30
Notice: Trying to get property of non-object in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 32
Nombre de personnes trouvées:
Fatal error: Call to a member function free() on a non-object in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 47
Bonjour
La connexion se passe mal car tu passes des mauvais paramètres. Enlève le @, tu verras le message d'erreur : tu passes un paramètre de trop, ce qui introduit un décalage (le 5ème devrait être un numéro de port et chez toi c'est un texte)
Mais tu ne t'en rends pas compte car tu ouvres ta connexion en style objet et la fonction que tu utilises un test non objet. J'ai fait quelques essais et je n'ai pas encore trouvé comment faire un test propre en style objet (que je n'utilise jamais)
La connexion se passe mal car tu passes des mauvais paramètres. Enlève le @, tu verras le message d'erreur : tu passes un paramètre de trop, ce qui introduit un décalage (le 5ème devrait être un numéro de port et chez toi c'est un texte)
Mais tu ne t'en rends pas compte car tu ouvres ta connexion en style objet et la fonction que tu utilises un test non objet. J'ai fait quelques essais et je n'ai pas encore trouvé comment faire un test propre en style objet (que je n'utilise jamais)
dans le manuel de PHP
http://www.php.net/manual/fr/mysqli.connect.php
Ils parlent bien d'un bug autour de connect_error en style objet et ils préconisent de faire comme ce que tu as fait. Mais je constate comme toi que la solution n'est pas efficace, aucune erreur n'est détectée alors qu'il y en a une...
Il ne te reste qu'à repasser en procédural
http://www.php.net/manual/fr/mysqli.connect.php
Ils parlent bien d'un bug autour de connect_error en style objet et ils préconisent de faire comme ce que tu as fait. Mais je constate comme toi que la solution n'est pas efficace, aucune erreur n'est détectée alors qu'il y en a une...
Il ne te reste qu'à repasser en procédural
ejay03
Messages postés
20
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
2 mai 2009
2 mai 2009 à 09:28
2 mai 2009 à 09:28
ok je commence bien mon apprentissage de PHP + mySQL ^^
qu'est ce que tu appels le procédural ?
qu'est ce que tu appels le procédural ?
ejay03
Messages postés
20
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
2 mai 2009
2 mai 2009 à 09:33
2 mai 2009 à 09:33
Style orienté objet :
mysqli::__construct ([ string $host= ini_get("mysqli.default_host") [, string $username= ini_get("mysqli.default_user") [, string $passwd= ini_get("mysqli.default_pw") [, string $dbname= "" [, int $port= ini_get("mysqli.default_port") [, string $socket= ini_get("mysqli.default_socket") ]]]]]] )
Style procédural :
mysqli mysqli_connect ([ string $host= ini_get("mysqli.default_host") [, string $username= ini_get("mysqli.default_user") [, string $passwd= ini_get("mysqli.default_pw") [, string $dbname= "" [, int $port= ini_get("mysqli.default_port") [, string $socket= ini_get("mysqli.default_socket") ]]]]]]
je vais voir avec ça
mysqli::__construct ([ string $host= ini_get("mysqli.default_host") [, string $username= ini_get("mysqli.default_user") [, string $passwd= ini_get("mysqli.default_pw") [, string $dbname= "" [, int $port= ini_get("mysqli.default_port") [, string $socket= ini_get("mysqli.default_socket") ]]]]]] )
Style procédural :
mysqli mysqli_connect ([ string $host= ini_get("mysqli.default_host") [, string $username= ini_get("mysqli.default_user") [, string $passwd= ini_get("mysqli.default_pw") [, string $dbname= "" [, int $port= ini_get("mysqli.default_port") [, string $socket= ini_get("mysqli.default_socket") ]]]]]]
je vais voir avec ça
ejay03
Messages postés
20
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
2 mai 2009
2 mai 2009 à 09:46
2 mai 2009 à 09:46
Résultat.php ---> mode procédural sur quelques lignes
<html>
<head>
<title>Résulat de la recherche de personnes dans la base du chantier Sanofi Aventis</title>
</head>
<body>
<h1>Résultat de la recherhe de personnes dans la base</h1>
<?php
// create short variable names
$type_recherche = $_POST['type_recherche'];
$terme_recherche = trim($_POST['terme_recherche']);
if (!$type_recherche || !$terme_recherche) {
echo 'vous navez pas saisi les détails de la recherche';
exit;
}
if (!get_magic_quotes_gpc()){
$type_recherche = addslashes($type_recherche);
$terme_recherche = addslashes($terme_recherche);
}
// modification en style procédural
$link = mysqli_connect('localhost', 'root', '','projet ing', 'personnes'); // ligne 25
if (!$link) {
die( 'Erreur de connexion('.mysqli_connect_errno().')';
.mysqli_connect_error());
}
echo 'succes'.mysqli_get_host_info($link)."\n";
// fin de la modification en style procédural
$requete = "select * from personnes where ".$type_recherche." like '%".$terme_recherche."%'";
$resultat = $db->query($requete);
$nb_lig_resultat = $resultat->num_rows;
echo "<p>Nombre de personnes trouvées: ".$nb_lig_resultat."</p>";
for ($i=0; $i < $nb_lig_resultat; $i++) {
$ligne = $resultat->fetch_assoc();
echo "<p><strong>".($i+1).". nom : ";
echo htmlspecialchars(stripslashes($ligne['nom']));
echo "</strong><br />prenom : ";
echo stripslashes($ligne['prenom']);
echo "<br />matricule : ";
echo stripslashes($ligne['matricule']);
echo "</p>";
}
$resultat->free();
$mysqli_close($link); // passage de la ligne en procédural ?!
?>
</body>
</html>
********************************************
-->> Parse error: parse error in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 25
<html>
<head>
<title>Résulat de la recherche de personnes dans la base du chantier Sanofi Aventis</title>
</head>
<body>
<h1>Résultat de la recherhe de personnes dans la base</h1>
<?php
// create short variable names
$type_recherche = $_POST['type_recherche'];
$terme_recherche = trim($_POST['terme_recherche']);
if (!$type_recherche || !$terme_recherche) {
echo 'vous navez pas saisi les détails de la recherche';
exit;
}
if (!get_magic_quotes_gpc()){
$type_recherche = addslashes($type_recherche);
$terme_recherche = addslashes($terme_recherche);
}
// modification en style procédural
$link = mysqli_connect('localhost', 'root', '','projet ing', 'personnes'); // ligne 25
if (!$link) {
die( 'Erreur de connexion('.mysqli_connect_errno().')';
.mysqli_connect_error());
}
echo 'succes'.mysqli_get_host_info($link)."\n";
// fin de la modification en style procédural
$requete = "select * from personnes where ".$type_recherche." like '%".$terme_recherche."%'";
$resultat = $db->query($requete);
$nb_lig_resultat = $resultat->num_rows;
echo "<p>Nombre de personnes trouvées: ".$nb_lig_resultat."</p>";
for ($i=0; $i < $nb_lig_resultat; $i++) {
$ligne = $resultat->fetch_assoc();
echo "<p><strong>".($i+1).". nom : ";
echo htmlspecialchars(stripslashes($ligne['nom']));
echo "</strong><br />prenom : ";
echo stripslashes($ligne['prenom']);
echo "<br />matricule : ";
echo stripslashes($ligne['matricule']);
echo "</p>";
}
$resultat->free();
$mysqli_close($link); // passage de la ligne en procédural ?!
?>
</body>
</html>
********************************************
-->> Parse error: parse error in C:\Program Files\EasyPHP 3.0\www\resultats.php on line 25
Tu avais une erreur et un problème de détection d'erreur. Tu as commencé par corriger le problème de détection d'erreur, c'est très bien mais il faudrait peut-être corriger l'erreur aussi !
Car style objet ou procédural ta connexion est mauvaise, c'est elle le vrai problème. Vérifie la syntaxe dans le manuel PHP, tu ne la respectes pas.
Ça m'étonnerait bien que la ligne 25 soit celle que tu indiques, l'erreur parse error est dans la suite , il y a un .mysqli_connect_error()); qui se promène tout seul.
Enrin, si tu es passé en style procédural, il faut être logique te ne pas utiliser l'objet $db que tu n'as pas créé : le $resultat = $db->query($requete); ne te donnera rien de bon.
Et si tu débutes, sache que recopier des bouts de code sans les comprendre est la meilleure méthode pour ne pas apprendre.
Car style objet ou procédural ta connexion est mauvaise, c'est elle le vrai problème. Vérifie la syntaxe dans le manuel PHP, tu ne la respectes pas.
Ça m'étonnerait bien que la ligne 25 soit celle que tu indiques, l'erreur parse error est dans la suite , il y a un .mysqli_connect_error()); qui se promène tout seul.
Enrin, si tu es passé en style procédural, il faut être logique te ne pas utiliser l'objet $db que tu n'as pas créé : le $resultat = $db->query($requete); ne te donnera rien de bon.
Et si tu débutes, sache que recopier des bouts de code sans les comprendre est la meilleure méthode pour ne pas apprendre.