Page 1 sur 1

BDD,+PHP avec easyphp

Posté : 09 mai 2005, 16:27
par Invité
Bonjour a tous,

J'aurai voulu savoir si il y a qq chose de spécial à faire pour accéder à une bdd (créée en mysql sous easyphp) à partir d'une requête php.
En fait j'ai fait un script de recherche en php et le problème c'est que le résultat de ma recherche est toujours null.
je pense bien me connecter à la bdd en faisant
@ $db = mysql_pconnect("localhost","root","");
puis
mysql_select_db("sites");

Si jamais il y a qq chose de spécial a faire que j'ai oublié, dites le moi svp...je vous en serai très reconnaissant :cry: Merci bocou

++

Posté : 09 mai 2005, 16:51
par seayoung
je pense que ce qu il faut faire c'est :
mysql_connect("localhost", "user", "pw");
// plutot que mysql_pconnect("localhost", "user", "pw");


Posté : 09 mai 2005, 16:59
par zeus
Fait bien attention, mysql_pconnect() crée une connection persistante, c'est à dire qui ne se termine pas à la fin de ton script. Tu doit donc bien penser à fermer (mysql_close()) tes connections à la fin de chaque script PHP sinon, tu rique de blinder ton serveur de connections en attente !!!

Sinon, donne nous ton code qu'on puisse jeter un coup d'oeil

Posté : 09 mai 2005, 17:04
par seayoung
Merci zeus pour cette précision ou du moins ces précisions
que j avais oublier de préciser

Posté : 09 mai 2005, 17:11
par zeus
Mais de rien !!!

Tu as commencé le travail, je l'ai fini ... c'est du travail d'équipe !!!

Mais pour tout t'avouer, j'avais lu ton post mais pas le commentaire et j'avais pas vu que tu avais déjç déconseillé mysql_pconnect()

Posté : 11 mai 2005, 08:55
par Invité
Merci pour vos réponses...
En effet mon pb de connexion est résolu. Malheuresement, j'ai maintenant un pb sur l'accès à la bdd et l'extraction de résultats des requêtes...
Voici mon code et l'erreur retournée:
<?
trim($searchterm);
if(!$searchtype || !$searchterm)
{
echo "vous n'avez pas entré les détails de la recherche. Veuillez revenir à la page précédente pour les saisir à nouveau";
exit;
}

$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);

mysql_connect("localhost","root","") or die('Erreur de connexion à la base de données');

mysql_select_db("phpbb") or die ('Base inexistante');
$query = "select * from sites where ".$searchtype." like '%".$searchterm."%'";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);

echo "<p>Nombre de sites trouvés: ".$num_results."</p>";

for ($i=0; $i <$num_results; $i++)
{
$row = mysql_fetch_array($result);
echo "<p><strong>".($i+1).". Nom site: ";
echo htmlspecialchars (stripslashes($row["nom_site"]));
echo "</strong><br>adresse: ";
echo htmlspecialchars (stripslashes($row["adresse"]));
echo "<br>Synthèse: ";
echo htmlspecialchars (stripslashes($row["synthese"]));
echo "</p>";
}
?>

Parse error: parse error in h:\program files\easyphp1-8\www\resultat.php on line 49

Pour info, la ligne 49 correspond à la ligne $num_results = mysql_num_rows($result);

Voilà...si qqun pourrait m'éclairer ca serait vraiment génial! :cry:
Merci en tous cas pour l'aide sur la connection qui s'est révélée très efficace.

++

Posté : 11 mai 2005, 09:02
par Invité
Dernière petite précision sur searchtype et searchterm: ces deux éléments sont envoyés par une page contenant le code suivant:

<u><b>RECHERCHE D'UN SITE</u></b><br><br>

<form action="resultat.php" method="post">
Sélectionnez votre critère de recherche de site:<br>
<select name="searchtype">
<option value ="nom_site">Nom du site
<option value ="adresse">Fond cartographique
<option value ="synthese">Synthèse
</select>
<br>
Saisissez les pécisions sur le critère choisi:<br>
<input name="searchterm" type=text>
<br>

<input type=submit value="Rechercher">
</form>


Au moins vous avez devant vous tous mes ennuis là! lol
Merci d'avance pour votre aide!

++

Posté : 11 mai 2005, 10:34
par zeus
Ca peut venir du fait que ta requête SQL n'est pas valide

Essaye de l'afficher dans ta page et de l'exécuter depuis PHPMyAdmin (Si tu as EasyPHP)