Php/mysql evenement au clic sur une image bdd

Fermé
lionel - 11 mai 2009 à 11:15
 lionel - 11 mai 2009 à 13:56
Bonjour,
je veux pouvoir cliquer sur une image de ma galerie et que cela maffiche un tableau comme cela



<table>
<tr><td>image selectionner en grand</td>
<td><tr>image 2</tr><tr>image3</tr><tr>image4</tr><tr>image5</tr></td>
</tr></table>

//avec par exemple l'image en grand en width="500" et les autre en width="150" comme cela à chaque fois que l'on clique sur une image elle remplace celle en grand.



voila comment je vois les chose mais après beaucoup de test je ne trouve aucune solution et s'achant que je stocke tous sur une base de donnée quand je clique sur une image je n'arrive pas à prendre que l'id de mon image mais je renvoie tout les id dans j'ai toutes ma galerie qui s'affiche alors que pour chaque élément de ma galerie, je voudrai avoir 5 image et le détaille de mes véhicules.

voici mes script:

script pour entree et traiter les nouveau véhicules à rentrer:
<head>
<title>Envoyer une image</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
label {
display:block;
width:150px;
float:left;
}
</style>
<!-- page de style CSS -->
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="../style/designformulaire.css" />
</head>
<body>

<?php
if(isset($_POST['validation'])) {

//Indique si le fichier a été téléchargé
if(!is_uploaded_file($_FILES['image']['tmp_name']))
echo 'Un problme est survenu durant l opration. Veuillez ressayer !';
else {
//liste des extensions possibles
$extensions = array('/png', '/gif', '/jpg', '/jpeg', '');

//rcupre la chane partir du dernier / pour connatre l'extension
$extension = strrchr($_FILES['image']['type'], '/');
$extension2 = strrchr($_FILES['image2']['type'], '/');
$extension3 = strrchr($_FILES['image3']['type'], '/');
$extension4 = strrchr($_FILES['image4']['type'], '/');
$extension5 = strrchr($_FILES['image5']['type'], '/');

//vrifie si l'extension est dans notre tableau
if((!in_array($extension, $extensions)) || (!in_array($extension2, $extensions)) || (!in_array($extension3, $extensions)) || (!in_array($extension4, $extensions)) || (!in_array($extension5, $extensions))){
echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';}
else {

//on dfinit la taille maximale
define('MAXSIZE', 1000000);
if(($_FILES['image']['size'] > MAXSIZE) || ($_FILES['image2']['size'] > MAXSIZE) || ($_FILES['image3']['size'] > MAXSIZE) || ($_FILES['image4']['size'] > MAXSIZE) || ($_FILES['image5']['size'] > MAXSIZE)){
echo 'Votre image est suprieure la taille maximale de '.MAXSIZE.' octets';}
else {
//on se connecte (remplacer les paramtres de connexion)
$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
$database = mysql_select_db("vehicules_neufs") or exit (mysql_error());

//rcupration des infos saisies
$nom = mysql_escape_string($_POST['nom']);
$carrosserie = mysql_escape_string($_POST['carrosserie']);
$version = mysql_escape_string($_POST['version']);
$description = mysql_escape_string($_POST['description']);

//Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les donnes binaires contiennent des caractres spciaux.
$image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name']));
if(!empty($_FILES["image2"]["name"]))
$image2 = mysql_escape_string(file_get_contents($_FILES['image2']['tmp_name']));
if(!empty($_FILES["image3"]["name"]))
$image3 = mysql_escape_string(file_get_contents($_FILES['image3']['tmp_name']));
if(!empty($_FILES["image4"]["name"]))
$image4 = mysql_escape_string(file_get_contents($_FILES['image4']['tmp_name']));
if(!empty($_FILES["image5"]["name"]))
$image5 = mysql_escape_string(file_get_contents($_FILES['image5']['tmp_name']));

//Il ne reste qu' insrer tout a dans notre table.
mysql_query("INSERT INTO vehicules(nom, carrosserie, version, description, image, extension, image2, extension2, image3, extension3, image4, extension4, image5, extension5) VALUES('".$nom."', '".$carrosserie."', '".$version."', '".$description."', '".$image."', '".$_FILES['image']['type']."', '".$image2."', '".$_FILES['image2']['type']."', '".$image3."', '".$_FILES['image3']['type']."', '".$image4."', '".$_FILES['image4']['type']."', '".$image5."', '".$_FILES['image5']['type']."')") or exit (mysql_error());
mysql_close();
echo '<h3>L insertion s est bien déroulé !</h3>';
}
}
}
}
?>

<!-- logo -->
<div class="logo">
<img src="../image/logo.png" alt="logo renault" title="logo renault" />
</div>

<!-- création de l'entête ( barre grise de fond) -->
<div class="entete">
<p>Entrer ici la liste des nouveaux véhicules<br /></p>
</div>

<h1>Formulaire de saisie:</h1>
<form enctype="multipart/form-data" action="../php/entree_nouveau_vehicule.php" method="post">
<p>
<label for="nom">Nom : </label><input type="text" name="nom" id="nom" size="20" maxlength="40"/><br /><br />
<label for="carrosserie">Carrosserie :</label>
<select name="carrosserie">
<option value="france">Berline</option>
<option value="espagne">Break</option>
<option value="italie">Cabriolet</option>
<option value="france">Citadine</option>
<option value="espagne">Coupé</option>
<option value="italie">Ludospace</option>
<option value="france">Monospace</option>
<option value="espagne">Préstige</option>
<option value="italie">Routière</option>
<option value="france">S.U.V</option>
<option value="espagne">Utilitaire</option>
</select><br /><br />
<label for="version">Version :</label><input type="text" name="version" id="version" size="35"/><br /><br />

<label for="description">Description : </label><textarea name="description" id="description" rows="10" cols="50"></textarea><br /><br />
<label for="image">Image obligatoire : </label><input type="file" name="image" id="image" /><br />
<label for="image2">Image 2: </label><input type="file" name="image2" id="image2" /><br />
<label for="image3">Image 3: </label><input type="file" name="image3" id="image3" /><br />
<label for="image4">Image 4: </label><input type="file" name="image4" id="image4" /><br />
<label for="image5">Image 5: </label><input type="file" name="image5" id="image5" /><br /><br /><br />

<input type="submit" name="validation" id="validation" value="Valider" />
</p>
</form>


</body>
</html>



script pour afficher ma galerie:
<html>
<head>
</head>
<body>
<div class="corps">

<h1>Véhicules Neufs</h1><br />

<?php
$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
$database = mysql_select_db("vehicules_neufs") or exit (mysql_error());
mysql_query('SET NAMES utf8');

$affichage = mysql_query("SELECT id_img, nom, description, image FROM vehicules") or exit (mysql_error());
while($result = mysql_fetch_assoc($affichage)) {

echo '<div class="int">';
echo '<a class="avn" href="apercu.php?id_img='.$result['id_img'].'"><img src="apercu.php?id_img='.$result['id_img'].'" alt="'.$result['nom'].'" title="'.$result['nom'].'" width="120"/></a>';
echo '<p class="pvn" style="text-align:center">'.$result["nom"].'</p>';
echo '</div>';

}
mysql_close();
?>




</div></body></html>

script apercu:
<?php
//si nous avons une image
if(!empty($_GET['id_img'])) {

//connexion à la base de données
$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
$database = mysql_select_db("vehicules_neufs")or exit (mysql_error());

//on sécurise notre donnée
$idImg = intval($_GET['id_img']);

//la requète qui récupère l'image à partir de l'identifiant
$apercu = mysql_query("SELECT extension, image FROM vehicules WHERE id_img = ".$idImg) or exit (mysql_error());

//si le résultat est différent de 1
if(mysql_num_rows($apercu) != 1)
echo 'L image n existe pas !';
else {
//on stocke les données dans un tableau
$reponse = mysql_fetch_assoc($apercu);
//on indique qu'on affiche une image
header ("Content-Type: ".$reponse['extension']);
//on affiche l'image en elle même
echo $reponse['image'];
}
mysql_close();
} else
echo 'Vous n avez pas sélectionné d image !';
?>


donc tous cela fonctionne pour créer ma galerie mais quand je clique sur une image elle s'affiche en grand sur une nouvelle page seulement je ne trouve pas la façon de faire.


ma base de donnée:
`id_img` :auto-increment : int
`nom` :text
`carrosserie` :varchar
`version` :varchar
`description` :varchar
`image` :longblob
`extension` :varchar
`image2` :longblob
`extension2` :varchar
'image3' :longblob
`extension3` :varchar
`image4` :longblob
`extension4` :varchar
`image5` :longblob
`extension5`:varchar
A voir également:

2 réponses

bg62 Messages postés 23598 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 11 mai 2024 2 364
11 mai 2009 à 12:09
bonjour,
ça faisait longtemps ... mais aujourd'hui je repique ma crise ....
ce forum est ouvert à tous, mais par respect pour ceux qui voudraient vous aider, pour ceux qui vous répondent,
pourquoi ne pas vous inscrire ?
c'est gratuit et sans risque (sauf celui de trouver des gens indésirables qui parcourent les forums pour polluer ...)
merci
0
comment sa je polue, je veux juste avoir une réponse alors je demande si quelqu'un pourrait m'aider merci
0