Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: tontontony13 le le 04-08-2013 a 01:21:58

Titre: PDO et FREE
Posté par: tontontony13 le le 04-08-2013 a 01:21:58

Bonsoir

Voila j'ai codé une page php avec une base de donnée MySQL dont mon code est le suivant

<?php
include('connect_bdd.php');
$nom=$_GET['nom'];
$articles=$bdd->query("SELECT * FROM articles WHERE nom='$nom'");
$donnees_articles=$articles->fetch();
$articles->closeCursor();
?>

Le soucis c'est que free n'est pas configuré pour ces nouvelle syntaxes (PDO::). Donc j'essaye d'adapter avec les vieilles syntaxes.

<?php
include('connect_bdd.php');
$nom=$_GET['nom'];
$articles=$bdd=mysql_query("SELECT * FROM articles WHERE nom='$nom'");
$donnees_articles= $articles->fetch();
$articles->closeCursor();
?>

Je suis débutant et je ne vois pas comment faire pour les lignes suivantes:

$donnees_articles= $articles->fetch();
$articles->closeCursor();


Si quelqu'un peut m'aider merci beaucoup !





Titre: Re:PDO et FREE
Posté par: tontontony13 le le 05-08-2013 a 11:47:40

Bon j'ai essayé plusieurs choses et j'ai écrit ceci :

<?php
include('connect_bdd.php');
$nom=$_GET['nom'];
$articles= mysql_query("SELECT * FROM articles WHERE nom='$nom'");
$donnees_articles= mysql_fetch_array($articles);
mysql_close();
?>

pour remplacer ceci :

<?php
include('connect_bdd.php');
$nom=$_GET['nom'];
$articles=$bdd->query("SELECT * FROM articles WHERE nom='$nom'");
$donnees_articles=$articles->fetch();
$articles->closeCursor();
?>

et voila le message d'erreur :

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\Boutique\article.php on line 5

quelqu'un à une idée SVP ?

Titre: Re:PDO et FREE
Posté par: pppplus le le 05-08-2013 a 14:08:44

Qu'y a-t-il dans : include('connect_bdd.php');

Car à priori, vous n'êtes pas connecté à la bdd.

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 05-08-2013 a 22:13:25

<?php
try
{
$bdd=new PDO('mysql:host=localhost;dbname=boutique','root','')or die(print_r($bdd->errorInfo()));
$bdd->exec('SET NAMES utf8');   
}
catch(Exeption $e)
{
die('Erreur:'.$e->getMessage());   
}
?>


Mais il faudra aussi que je change les syntaxes, mais ça devrai être pas trop dur.
j'ai écrit ceci:

<?php
$DB_HOST = "localhost";
$DB_LOGIN = "root";
$DB_PASS = "";
$DB_DATA = "nomdemabdd";

mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASS)or die ("Erreur de connexion à la Base de Donnee !");
mysql_select_db($DB_DATA)or die ("Database introuvable");

?>

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 07-08-2013 a 10:46:48

merci pppplus pour ta réponse mais quelqu'un pourrai t il au moins me guider ? j'ai testé plusieurs syntaxes mais toujours un warnning et free n'est pas passé a la nouvelle version php donc je suis bloqué !!

Titre: Re:PDO et FREE
Posté par: pppplus le le 07-08-2013 a 14:13:11

Ce que vous avez mis est bon
<?php
$DB_HOST = "localhost";
$DB_LOGIN = "root";
$DB_PASS = "";
$DB_DATA = "nomdemabdd";

mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASS)or die ("Erreur de connexion à la Base de Donnee !");
mysql_select_db($DB_DATA)or die ("Database introuvable");

?>

Quel est le message d'erreur ?

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 07-08-2013 a 16:11:34

Bonjour

J'ai le wanning suivant:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\Boutique\article.php on line 5

voila mon code php de la page :


<?php
$bdd = mysql_connect('localhost', 'root', '');
$nom=$_GET['nom'];
$articles=mysql_query("SELECT * FROM articles WHERE nom='$nom'");
$donnees_articles=mysql_fetch_array($articles);
mysql_close();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="zoombox.js"></script>
<link href="zoombox.css" rel="stylesheet" type="text/css" media="screen" />

<script type="text/javascript">
jQuery(function($){
$('a.zoombox').zoombox({
         theme:'prettyphoto'
         });
});
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title><?php echo $donnees_articles['nom']; ?></title>

<link rel="stylesheet" href="style.css"/>
</head>
<body>

<div class="entete"><p><?php echo $donnees_articles['nom']; ?></p></div>
   <div class="page">
      <a class="zoombox zgallery1" href="<?php echo $donnees_articles['image']; ?>"><img src="images2/<?php echo $donnees_articles['image']; ?>" style="width:300px;margin-top:30px;margin-left:30px;margin-bottom:30px;"/></a>
<div class="fiche">
      <a href="index.php">Retour à la boutique</a> | Catégorie:<a href=""><?php echo $donnees_articles['categorie']; ?></a>
<br/>
<br/>

Résumé : <?php echo $donnees_articles['resume']; ?>

<br />
<br />

         <span style="font-size:20px;color:#039;">Prix:<strong><?php echo $donnees_articles['prix']; ?>€</strong></span>
<br />
         <span style="font-size:14px;color:#000;">Ref:<strong><?php echo $donnees_articles['reference']; ?></strong></span>
<br />
<br />

      <a class="zoombox zgallery1" href="<?php echo $donnees_articles['photo1']; ?>"><img src="photo/<?php echo $donnees_articles['photo1']; ?>" style="width:100px;"/></a>
      <a class="zoombox zgallery1" href="<?php echo $donnees_articles['photo2']; ?>"><img src="photo/<?php echo $donnees_articles['photo2']; ?>" style="width:100px;"/></a>

<form method="post" action="panier.php?nom=<?php echo $donnees_articles['nom']; ?>">
   <input type="image" src="images/ajouter.png"/>
</form>
</div>
   </div>

</body>
</html>

A mon avis c'est la requête avec fetch qui j'ai mal écrit !


Titre: Re:PDO et FREE
Posté par: pppplus le le 07-08-2013 a 16:20:43

Remplacez :

Code:
<?php
$bdd = mysql_connect('localhost', 'root', '');
$nom=$_GET['nom'];
$articles=mysql_query("SELECT * FROM articles WHERE nom='$nom'");
$donnees_articles=mysql_fetch_array($articles);
mysql_close();
?>


par :

Code:
<?php
mysql_connect('localhost', 'root', '')or die ("Erreur de connexion à la Base de Donnee !");
mysql_select_db($DB_DATA)or die ("Database introuvable");
$nom=$_GET['nom'];
$articles=mysql_query("SELECT * FROM articles WHERE nom='$nom'");
$donnees_articles=mysql_fetch_assoc($articles);

//et pour voir les infos dans un tableau, par exemple :
print_r($donnees_articles);

// si jamais vous pouvez avoir plusieurs réponses, il faut faire :
while($donnees_articles=mysql_fetch_assoc($articles))
{
print_r($donnees_articles);
}
?>

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 07-08-2013 a 16:50:54

j'ai mis ceci :


<?php
include('connect_bdd.php');
$nom=$_GET['nom'];
$articles=mysql_query("SELECT * FROM articles WHERE nom='$nom'");
$donnees_articles=mysql_fetch_assoc($articles);

while($donnees_articles=mysql_fetch_assoc($articles))
{
print_r($donnees_articles);
}
?>

plusieurs réponses car je dois afficher le prix, l'image, la description et la ref de mon produit et en incluant donc "connect_bdd.php" ou on trouve ceci:

<?php
$DB_HOST = "localhost";
$DB_LOGIN = "root";
$DB_PASS = "";
$DB_DATA = "boutique";

mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASS)or die ("Erreur de connexion à la Base de Donnee !");
mysql_select_db($DB_DATA)or die ("Database introuvable");

?>

Et j'ai 2 wanning de nouveau :

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\Boutique\article.php on line 6

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\Boutique\article.php on line 9

Merci de votre aide !




Titre: Re:PDO et FREE
Posté par: pppplus le le 07-08-2013 a 18:33:48

Bonjour

Pour faire simple, SVP, mettez exactement le code que je vous donne.

On va essayer de trouver qq chose qui marche, ensuite, vous pourrez essayer vos variantes.

Donc, le code :

Code:
<?php
mysql_connect('localhost', 'root', '')or die ("Erreur de connexion à la Base de Donnee !");
mysql_select_db($DB_DATA)or die ("Database introuvable");
$nom=$_GET['nom'];
$rq="SELECT * FROM articles WHERE nom='".$nom."'";
$articles=mysql_query($rq) or die("Erreur requête $rq ".mysql_error());
$donnees_articles=mysql_fetch_assoc($articles); //une seule ligne en réponse

//et pour voir les infos dans un tableau, par exemple :
print_r($donnees_articles);


?>

Et bien sûr il faut appeler votre script, avec qq chose dans l'url du type :

http://mon_url/fichier.php?nom=xyz

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 07-08-2013 a 21:48:03

j'ai mis le code que vous m'avais écrit et j'ai un warnning de nouveau :

Notice: Undefined variable: boutique in C:\wamp\www\Boutique\article.php on line 3

Database introuvable


Titre: Re:PDO et FREE
Posté par: pppplus le le 07-08-2013 a 21:53:23

Il n'y a pas de variable boutique dans mon code, donc ça vient de ce que vous avez mis.

Ligne 3 :
mysql_select_db($DB_DATA)or die ("Database introuvable");

Il faut mettre le nom de votre base de données à la place de $DB_DATA

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 07-08-2013 a 22:05:03

oui ce que j'ai fait également mais j'ai le même warnning !

j'ai une bdd nommée "boutique" avec une table "articles" avec 9 champs

Titre: Re:PDO et FREE
Posté par: pppplus le le 07-08-2013 a 22:06:11

copiez le code complet ici SVP

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 07-08-2013 a 22:07:34

<?php
mysql_connect('localhost', 'root', '')or die ("Erreur de connexion à la Base de Donnee !");
mysql_select_db($boutique)or die ("Database introuvable");
$nom=$_GET['nom'];
$rq="SELECT * FROM articles WHERE nom='".$nom."'";
$articles=mysql_query($rq) or die("Erreur requête $rq ".mysql_error());
$donnees_articles=mysql_fetch_assoc($articles); //une seule ligne en réponse

//et pour voir les infos dans un tableau, par exemple :
print_r($donnees_articles);


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="zoombox.js"></script>
<link href="zoombox.css" rel="stylesheet" type="text/css" media="screen" />

<script type="text/javascript">
jQuery(function($){
$('a.zoombox').zoombox({
         theme:'prettyphoto'
         });
});
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title><?php echo $donnees_articles['nom']; ?></title>

<link rel="stylesheet" href="style.css"/>
</head>
<body>

<div class="entete"><p><?php echo $donnees_articles['nom']; ?></p></div>
   <div class="page">
      <a class="zoombox zgallery1" href="<?php echo $donnees_articles['image']; ?>"><img src="images2/<?php echo $donnees_articles['image']; ?>" style="width:300px;margin-top:30px;margin-left:30px;margin-bottom:30px;"/></a>
<div class="fiche">
      <a href="index.php">Retour à la boutique</a> | Catégorie:<a href=""><?php echo $donnees_articles['categorie']; ?></a>
<br/>
<br/>

Résumé : <?php echo $donnees_articles['resume']; ?>

<br />
<br />

         <span style="font-size:20px;color:#039;">Prix:<strong><?php echo $donnees_articles['prix']; ?>€</strong></span>
<br />
         <span style="font-size:14px;color:#000;">Ref:<strong><?php echo $donnees_articles['reference']; ?></strong></span>
<br />
<br />

      <a class="zoombox zgallery1" href="<?php echo $donnees_articles['photo1']; ?>"><img src="photo/<?php echo $donnees_articles['photo1']; ?>" style="width:100px;"/></a>
      <a class="zoombox zgallery1" href="<?php echo $donnees_articles['photo2']; ?>"><img src="photo/<?php echo $donnees_articles['photo2']; ?>" style="width:100px;"/></a>

<form method="post" action="panier.php?nom=<?php echo $donnees_articles['nom']; ?>">
   <input type="image" src="images/ajouter.png"/>
</form>
</div>
   </div>

</body>
</html>

Titre: Re:PDO et FREE
Posté par: pppplus le le 07-08-2013 a 22:10:37

$boutique n'existe pas !

Le code :

Code:
<?php
mysql_connect('localhost', 'root', '')or die ("Erreur de connexion à la Base de Donnee !");
mysql_select_db("boutique")or die ("Database introuvable");
$nom=$_GET['nom'];
$rq="SELECT * FROM articles WHERE nom='".$nom."'";
$articles=mysql_query($rq) or die("Erreur requête $rq ".mysql_error());
$donnees_articles=mysql_fetch_assoc($articles); //une seule ligne en réponse

//et pour voir les infos dans un tableau, par exemple :
print_r($donnees_articles);


?>

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 07-08-2013 a 22:20:17

oufff désolé je commence juste les bdd :), mais ça fonctionne parfaitement, ça a mis un temps pour s'affiché mais c'est bon! par conte j'ai des caractères spéciaux qui s'affiche a la place des accent "?" . Il me semble que ceci pourra faire l'affaire :

Content-type: text/html; charset=ISO-8859-1

??

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 07-08-2013 a 22:25:15

et les titres composé comme par exemple : d'ancien livres avec l'accent n'est pas pris en compte par msql et plante lors de la requête .

Erreur requête SELECT * FROM articles WHERE nom='d'ancien livres' 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 'ancien livres'' at line 1

Titre: Re:PDO et FREE
Posté par: pppplus le le 07-08-2013 a 22:48:37

Pour les accents, ça dépendra de ce que vous avez dans votre table.
Mais vous pouvez essayer ce que vous avez mis (ou utf-8 à la place de iso)

=> pour améliorer la requête, et tenir compte des caractères spéciaux :

$rq="SELECT * FROM articles WHERE nom='".mysql_real_escape_string($nom)."'";

Mais selon l'encodage en base de données, ça ne permettra peut-être pas de passer les accents.

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 07-08-2013 a 22:58:24

Ok en tout cas merci de votre aide précieuse.

Problème résolu :)

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 08-08-2013 a 12:12:12

re

Alors problème résolu oui mais que en local sur wamp car quand je met tout ça sur le serveur free, je n'est aucun warnning, mais il me retourne aucune info, c'est à dire pas de photo ni de texte et pourtant la bdd est identique à celle sur wamp !! ?

La connection a la bdd est faite je ne comprend plus rien !

Titre: Re:PDO et FREE
Posté par: pppplus le le 08-08-2013 a 14:03:45

créez un document .htaccess à la racine de votre hébergement sur free et mettez dedans :
php_flag display_errors On
php_value error_reporting 2047

Ca permettra d'afficher les erreurs sur votre site.

Pensez éventuellement à passer chez un hébergeur pour votre site web

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 08-08-2013 a 14:40:33

j'obtiens le message suivant :

Erreur 500 - Erreur interne du serveur

Mais je pensai aussi changer de fournisseur parce-que là aucune mise à jour et les syntaxes comme celle que j'utilise vont disparaître. Beaucoup plus simple pour moi aussi !



Titre: Re:PDO et FREE
Posté par: pppplus le le 08-08-2013 a 14:43:37

arf, erreur 500, ça veut dire que le fichier htaccess n'est pas bon.
Il faut rechercher sur google, la syntaxe exacte pour free.

Titre: Re:PDO et FREE
Posté par: tontontony13 le le 08-08-2013 a 15:12:53

ok super encore merci pour toute votre aide je pense qu'un serveur OVH sera très bien !


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.