Pourquoi effectuer une extraction du chemin

mamou -  
Skeletyon Messages postés 1622 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

lors de l'ajout d'un enregistrement à une base de donnée, on lui donne le chemin absolu et on extrait le chemin relatif. en indiquant que mon exercice utilise le code php.

je voulais connaitre pourquoi on effectue cette extraction??
merci d'avance

5 réponses

Skeletyon Messages postés 1622 Date d'inscription   Statut Membre Dernière intervention   156
 
Je ne comprend pas trop ta question...

Que souhaite-tu savoir et dans quelle organisation?
Affichage d'image à partir d'une BDD? Stockage de liens externes?

Dis-nous en plus, c'est trop vague :=)
0
mamou
 
j'ai un exercice qui dispose d'un stockage dans la BD d'une table image contenant une ligne nommé source et dans la 2éme colonne le chemin absolu du fichier qu'on voulait ajouter et a coté de ce tableau on a une zone de texte cachée qui va afficher le chemin relatif de ce fichier à ajouter
j'ai pas compris l'utilité de cette zone.

le code est le suivant:

<script language="JavaScript" type="text/JavaScript">
function tester(s,d,b,i)
{ if (s.value =='') {
alert('saisie incorrecte'); s.focus();}
else if (d.value =='') {alert('saisie incorrecte'); d.focus();}

else
{
var ch=s.value;
var sch="\\";
var pos=ch.lastIndexOf(sch);
var fin = ch.length;
var ch1 = ch.substring(pos+1,fin);
i.value ="../images/" + ch1;
b.disabled=false;
}
}
</script>

<body>
<form action="ajout.php" method="post" name="form1">
<table width="70%" border="1" align="center" bgcolor="#FFFFCC">
<tr>
<td>Code</td>
<td><p> <strong>Le code sera ajouté d'une manière
automatique.</strong></p></td>
</tr>
<tr>
<td>Source</td>
<td><input name="fichier" type="file" size="60">
<input type="hidden" name="nomFichier"></td>
</tr>
<tr>
<td>Description</td>
<td><input name="txtDescription" type="text" id="txtDescription"></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input name="test" type="button" id="test" value="Tester"
onClick="tester(fichier,txtDescription,Envoyer,nomFichier)">

<input name="Envoyer" type="submit" id="Envoyer" value="Envoyer" disabled="true" >
<input name="Effacer" type="reset" id="Effacer" value="Rétablir">
</div></td>
</tr>
</table> </form> </body>

Ajout.php

<?php
$dbhost = "localhost";
$user = "root";
$password = "";
$usebdd = "images";
$connexion = mysql_connect("$dbhost","$user","$password");

if (!$connexion)
{
echo "Impossible d'effectuer la connexion";
exit;
}
else {
echo "Connexion Effectueé <br>";

if( mysql_select_db( $usebdd ) == True )
echo "Sélection de la base réussie.<br>" ;
else
die("Echec de connexion à la base. <br>");
}

$nomFichier=$_POST['nomFichier'];
$Description=$_POST['txtDescription'];

echo "<strong>Ajout d'un enregistrement à la table images </strong><br>";
mysql_query("INSERT INTO image VALUES ('', '$nomFichier','$Description')");
echo "<strong>Enregistrement ajouté!</strong><br>" ;
echo "Votre numéro d'identifiant est : " .mysql_insert_id() . "<br>";

$requete = "SELECT * FROM image" ;
$result = mysql_query($requete);
if (!$result)
{
die('Requête invalide : ' . mysql_error());
}
else
{
echo "Maintenant il y a " .mysql_num_rows($result) ." image(s)<br>";
echo "<table border=1>"; echo "<tr>"; echo "<th>Code</th> ";
echo "<th>Image</th> "; echo "<th>Description</th> "; echo "</tr>";

while($enregistrement = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td> $enregistrement[0] </td> ";
echo "<td align=center> <img src=$enregistrement[1]> </td> ";
echo "<td> $enregistrement[2] </td> "; echo "</tr>";
}
echo "</table>";
}
mysql_close();
?>
0
Skeletyon Messages postés 1622 Date d'inscription   Statut Membre Dernière intervention   156
 
Je ne comprend toujours pas ce que tu veux.

Ton code affiche normalement les infos de la table
echo "<td> $enregistrement[0] </td> ";
echo "<td align=center> <img src=$enregistrement[1]> </td> ";
echo "<td> $enregistrement[2] </td> "; echo "</tr>"; 


Je ne pense pas que ça va répondre à ta question mais le chemin absolu de ton image, qui est stocké dans ta bdd, est ce que tu devrais taper dans ton poste de travail pour l'ouvrir.
Ex: C:\images
Lorsque tu fais un
echo "<td align=center> <img src=$enregistrement[1]> </td> "; 
cela va t'afficher l'images qui est à l'adresse contenue dans $enregistrement[1]...

L'adresse relative c'est aussi celle qui est contenue dans $enreistrement[1] mais qui change a chaque passage de ta boucle.

Le chemin d'une image fixe est absolu, l'affichage du lien d'une image est relatif (à ce qui est dans la ligne de ta base de données).

2 images: 1 et 2, qui sont dans c:\images
Le chemin absolu de 1 est : C:\images\1.png
Le chemin absolu de 2 est : C:\images\2.png

$enregistrement[1] va afficher, en fonction de la ligne sur laquelle il se situe, soit C:\images\1.png soit C:\images\1.png. C'est donc "relatif".

Pour ce qui est de ton tableau, je ne comprend pas ce que tu souhaite savoir.

En espérant que ça t'aide
0
mamou
 
je voulais savoir pourquoi on aura besoin du chemin relatif tant qu'on a le chemin absolu??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Skeletyon Messages postés 1622 Date d'inscription   Statut Membre Dernière intervention   156
 
On a besoin du relatif car par définition c'est relatif à quelque chose.
Ici à la ligne que tu souhaites afficher.

En fonction de si tu préfère.
Chaque url qui sera affichée sera le chemin absolu de l'image, mais qui aura été affiché de façon relative à ta requête.

J'espère que c'est un peu plus clair.
0