PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#76 Re : Forum Général PHP » Récupérer identifiant image pour suppression » 01-11-2009 10:20:06

t14
xTG a écrit :

$row2['idpj'] ?

Mais là, je n'affiche plus mon image. Car elle est affichée grâce à $row2['lien_fichier'].
Le lien_fichier est le chemein qui mène à elle !
Je pourrais peut-être retrouver mon identifiant image (idpj) avec le lien_fichier ? Mais comment ?

#77 Forum Général PHP » Récupérer identifiant image pour suppression » 01-11-2009 10:20:06

t14
Réponses : 14

Bonjour,

J'affiche un texte et les images associées issues d'une table php. En cliquant sur une des images, je veux la supprimer dans le dossier. Mais là où j'en suis, je supprime toutes les images affichées !!!!!
J'ai une table pour le texte (manifestations), une table pour les liens images (upload), et les images se trouvent dan le dossier (dossier_upload).

J'affiche le texte + les images associées (id = identifiant unique du texte, id_liaison= identifiant de l'image identique à l'id du texte associé, idpj = identifiant unique du lien image, lien_fichier = chemin permettant l'affichage de l'image) :

$select2 = "SELECT * FROM upload where id_liaison='$id'"; //je sélectionne les images associées au texte
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );

while($row2 = mysql_fetch_array($result2))
{
echo '<a href="./supp_ok_pj.php?mode=suppression&id='.$id.'"><img border=0 height="50" src="http://127.0.0.1/kotoka/gestion/manifestations/test ' . $row2['lien_fichier'] . '"></a>  ';  // affichage des images associés au texte
}

Ainsi, je supprime toutes les images associées au texte, et moi je veux supprimer que celle sélectionnée !
Dans <ital>mode=suppression&id='.$id.</ital>, j'ai essayé de remplacer id par idpj pour récupérer l'identifiant unique de l'image, mais ça marche pô non plus !!!!
Le script de suppression de l'image :

$id = $_GET['id'];

// ---------- suppression fichier image/document -----------------

$select = "SELECT * FROM upload where id_liaison='$id'";

$image_doc = "./dossier_upload";

$ouverture = opendir ($image_doc);
$lecture = readdir($ouverture);
while (false !== ($fichier = readdir($ouverture)))
{
$chemin = $image_doc."/".$fichier;

//si le fichier n'est pas un répertoire
if ($fichier != ".." AND $fichier != "." AND !is_dir($fichier))
{
unlink($chemin);
}

En fait, comment récupérer l'identifiant unique de l'image affichée (idpj) ?

Merci

#78 Re : MySQL, PostgreSQL, etc... » requête "LEFT JOIN" » 23-10-2009 12:42:08

t14
Maljuna Kris a écrit :

Saluton,

t14 a écrit :

Que faut-il rajouter dans la requête pour que le contenu de la table "manifestation"s s'affiche même si il n'y a pas de correspondance dans la table "upload" ?

Rien.

Dans ce cas, je vais m'exprimer un peu plus meilleur :

Que faut-il modifier dans la requête pour que le contenu de la table "manifestations" s'affiche même si il n'y a pas de correspondance dans la table "upload" ?

smile

#79 MySQL, PostgreSQL, etc... » requête "LEFT JOIN" » 23-10-2009 12:42:08

t14
Réponses : 3

Bonjour,

Dans mon script de lecture de base, je lis 2 tables avec jointure. Si un enregistrement de la 1° table (manifestations) n'a pas de correspondance dans la 2° table (upload), cet enregistrement ne s'affichera pas.

Que faut-il rajouter dans la requête pour que le contenu de la table "manifestation"s s'affiche même si il n'y a pas de correspondance dans la table "upload" ? J'ai essayé en posant deux requête, mais ça ne fonctionne pas .... hmm

Voici mon code :


$req="SELECT manifestations.id, upload.id_liaison FROM manifestations LEFT JOIN upload ON manifestations.id=upload.id_liaison";
$res = mysql_query($req,$link) or exit ('Erreur : '.mysql_error() );
if(!empty($res)) 
 {
$requete="SELECT manifestations.id, manifestations.jour , manifestations.heure ,manifestations.datefr ,manifestations.titre ,manifestations.texte , upload.id_liaison, upload.lien_fichier, upload.fichier, upload.extension
FROM manifestations LEFT JOIN upload ON manifestations.id=upload.id_liaison
ORDER BY manifestations.date ASC"
;
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );

$idEnCours = 0;
while($row = mysql_fetch_array($result))
{
if( $idEnCours != $row['id_liaison'] )
{
if ($idEnCours = $row['id_liaison']);

// "trim" enlève les espaces pouvant être contenu dans le champs "datefr"
$tmp = trim($row['datefr']);
$tmp2 = trim($row['heure']);
if(empty($tmp))
{
echo '<b><u>'.$row['titre'].'</u></b><p>';
}
elseif(empty($tmp2))
{
echo '<b><u>'.$row['jour'].' '.$row['datefr'].' : '.$row['titre'].'</u></b><p>';
}
else
{
echo '<b><u>'.$row['jour'].' '.$row['datefr'].' à '.$row['heure'].' : '.$row['titre'].'</u></b><p>';
}
echo nl2br($row['texte']);
echo '<p>';
//---------affichage de lélément upload---------
echo '<div class="centrer">';
}
if (in_array($row['extension'], array( '.jpg', '.JPG', '.png', '.PNG', '.jpeg', '.JPEG', '.gif', '.GIF')))
{
echo '<a href ="http://xxxxx ' . $row['lien_fichier'] . '"><img src="http://xxxxxx' . $row['lien_fichier'] . '" /></a>';
echo '  ';
}
elseif (in_array($row['extension'], array( '.doc', '.DOC', '.pdf', '.PDF', '.txt', '.TXT')))
{
echo '<a href ="http://xxxxx' . $row['lien_fichier'] . '"><img src="../../../images/commande.gif" /></a>';
}
} }

else
{
while($row = mysql_fetch_array($res))
{      
// "trim" enlève les espaces pouvant être contenu dans le champs "datefr"
$tmp = trim($row['datefr']);
$tmp2 = trim($row['heure']);
if(empty($tmp))
{
echo '<b><u>'.$row['titre'].'</u></b><p>';
}
elseif(empty($tmp2))
{
echo '<b><u>'.$row['jour'].' '.$row['datefr'].' : '.$row['titre'].'</u></b><p>';
}
else
{
echo '<b><u>'.$row['jour'].' '.$row['datefr'].' à '.$row['heure'].' : '.$row['titre'].'</u></b><p>';
}      
        echo nl2br($row['texte']);    
}
}
 

#80 Re : Forum Général PHP » lecture sur 2 tables et affichage » 15-10-2009 08:31:23

t14

Merciiiii ......  big_smile J'ai trouvé ! OU presque !!!!! Il me reste un 'tit problème d'affichage .....
Suite à l'affichage du texte, le premier élément de la table upload affilié au texte de la table manifestation s'affiche en dessous, le tableau se ferme, et les autres éléments de upload affiliés au texte s'affichent également mais en dehors du tableau.

Je n'arrive pas à rentrer "les autres éléments" dans le tableau, et à les afficher l'un à côté de l'autre.  sad

Voici mon code :

$requete="SELECT manifestations.id, manifestations.jour , manifestations.heure ,manifestations.datefr ,manifestations.titre ,manifestations.texte , upload.id_liaison, upload.lien_fichier, upload.fichier, upload.extension
FROM manifestations LEFT JOIN upload ON manifestations.id=upload.id_liaison
ORDER BY manifestations.date ASC"
;
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );

$idEncours = 0;
while($row = mysql_fetch_array($result))
{
if( $idEnCours != $row['id'] )
{
echo '<table width="800px" border="1">';
echo '<tr>';
echo '<td align="center">'.nl2br($row['texte']).'<p>';
}
if ($idEnCours = $row['id_liaison']);

if (in_array($row['extension'], array( ".jpg", ".JPG", ".png", ".PNG", ".jpeg", ".JPEG", ".gif", ".GIF")))
{
echo '<center><a href ="http://xxxxxxx ' . $row['lien_fichier'] . '"><img src="http://xxxxxxx ' . $row['lien_fichier'] . '"></a></center>';
}
elseif (in_array($row['extension'], array( ".doc", ".DOC", ".pdf", ".PDF")))
{
echo '<center><a href ="http://xxxxx ' . $row['lien_fichier'] . '">Télécharger ou afficher le document<br><img src="../../../images/commande.gif"></a></center>';
}
echo '</td></tr></table><p>';
}
 

Merci

#81 Re : Forum Général PHP » lecture sur 2 tables et affichage » 15-10-2009 08:31:23

t14

Merci Alnoss pour ton aide !!!! smile

J'ai testé ce que tu me proposes ! Malheureusement, il n'y a que les enhjregistrements de la table manifestation ayant une liaison avec la table upload qui s'affichent ....  hmm sad
Alors je cherche , je cherche .....

#82 Forum Général PHP » lecture sur 2 tables et affichage » 15-10-2009 08:31:23

t14
Réponses : 5

Bonjour,

Je souhaite afficher des éléments issues de 2 tables différentes. La première s'appelle "manifestation" et comporte un champ id qui est unique à chaque enregistrement. La deuxième s'appelle "upload" et comporte un champ id_liaison. Il peut y avaoir plusieurs champs id_liaison identique, et un id_liaison se rapporte automatiquement à un id de la table manifestation.
Donc, si j'affiche un enregistrement de "manifestation", je vais voir si il existe un id_liaison = à id. Dans ce cas, j'affiche aussi l'enregistrement de l'id_liaison.

Ce que j'ai écrit affiche les enregistrements de "manifestation" avec les enregistrements de "upload", autant de fois qu'il y a des enregistrements dans "upload". sad

$requete = 'SELECT * FROM manifestations, upload ORDER BY date ASC';     //--- le ORDER uniquement valable pour la table manifestation---
$result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result))
{
        echo .nl2br($row['texte']).;  //---données venant de la table manifestation---
if ($id == $id_liaison) //---id venant de la table manifestation, id_liaison venant de la table upload---
  if (in_array($row['extension'], array( ".jpg", ".JPG", ".png", ".PNG", ".jpeg", ".JPEG", ".gif", ".GIF")))
    {
        echo '<a href ="http://xxxxxxxxxxx ' . $row['lien_fichier'] . '"><img src="http://xxxxxxxxxxxxxxxx ' . $row['lien_fichier'] . '"></a>'; //données venant de la table upload
    }
  else if (in_array($row['extension'], array( ".doc", ".DOC", ".pdf", ".PDF", ".txt", ".TXT")))
    {
      echo '<center><a href ="http://xxxxxxxxxxxx ' . $row['lien_fichier'] . '">Télécharger<br><img src="../../../commande.gif"></a>';
    }  
}
mysql_free_result($result);
exit;
?>

Je suis conscient que mon $requete est plutôt général, mais je ne sais pas comment l'écrire ????

Merci pour le coup de main .... neutral

#83 HTML, xHTML CSS » fonction mailto » 02-10-2009 18:38:16

t14
Réponses : 2

Bonjour,

Sur mon site (hébergé chez Free), je suis actuellement embêté avec la boîte de contact qui me met des erreurs
"Warning: mail() [function.mail]: Trop de spam. Fonction mail() bloque. in /mnt/104/sdb/d/3/kotoka/contact.php on line 17" lors de tentattive d'envoie de message.

J'ai donc pensé à une parade avec la fonction "maito". Mais là où je bloque, c'est que je voudrais déclarer une variable en php avec plusieurs destinataires, et qu'apparaisse dans la zone "A" du mail un nom générique (AAA) remplaçant tous les destinataires (toto@fai.fr, tata@fai2.fr sont compris dans le nom AAA).

Je voudrais écrire un genre :

echo '<a href="mailto:AAA?subject=contact ...... en affectant la valeur AAA à plusieurs adresses email afin d'éviter de voir toutes les adresses dans le mail.

Comment faire ? Merci !

#84 Re : MySQL, PostgreSQL, etc... » Clause WHERE dans PHP » 27-09-2009 19:32:45

t14

Effectivement ! J'ai essayé avec POST, et le résultat est le même qu'avec GET !!!!!! Même message d'erreur ..... hmm

#85 Re : MySQL, PostgreSQL, etc... » Clause WHERE dans PHP » 27-09-2009 19:32:45

t14

Merci morgan47 ! Mais ça ne fonctionne pas, je me mélange les pinceaux et j'y comprends plus rien !!!!!!!! Je n'arrive toujours pas à récupérer mon "id":mad:

Voici ma boîte d'upload (j'ai mis la ligne "<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />" en commentaire car sinon ça me fait deux lignes de type="hidden", et je ne pense pas que ce soit correct :

<form enctype="multipart/form-data" method="POST" action="add-manif-pj_4.php" value="envoyer" name="soumettre">
<!--<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />-->
<input type="hidden" name="id" value="<? echo $_GET['id']; ?>" />
<input type="file" name="monfichier" size="51" /><p>
<input type="reset" value="Effacer">
<input type="submit" name="preview" value="Valider">
</form>

ensuite, l'upload de fichier s'effectue correctement dans le répertoire désigné, mais par contre, la base n'est pas mise à jour vu que je ne récupère pas mon id :

$id = $_POST["id"];
echo 'L\'id est ';
echo $id;

// --------------------Upload fichier------------------------------
$dossier = './dossier_upload/';
$fichier = basename($_FILES['monfichier']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['monfichier']['tmp_name']);
$extensions = array('.gif', '.jpg', '.jpeg', '.doc', '.pdf', '.PDF', '.png', '.PNG', '.GIF', '.JPG', '.JPEG', '.DOC');
$extension = strrchr($_FILES['monfichier']['name'], '.');

if(move_uploaded_file($_FILES['monfichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
          {
          echo 'Chargement effectué avec succès !';
        }
$requete_update = "UPDATE manifestations SET lien_fichier='".$lien_fichier."' , fichier='".$fichier."' , extension='".$extension."' WHERE id=".$_GET['id']."";

    // on insère les informations du formulaire dans la table
    mysql_query($requete_update) or die('Erreur SQL !'.$sql.mysql_error());

Et voici mon message d'erreur  : L'id est Chargement effectué avec succès !Erreur SQL !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 '' at line 1 :(

Qu'est-ce qu'il faut faire ?

#86 Re : MySQL, PostgreSQL, etc... » Clause WHERE dans PHP » 27-09-2009 19:32:45

t14

En fait, mon premier problème est que je n'arrive pas à récupérer mon ID. Car je commence par afficher un tableau (aff_manif.php) où je sélectionne l'enregistrement à modifier. Puis j'affiche une fenêtre d'upload de fichier (upload.htm). Et enfin je mets à jour la base (add-manif-pj). C'est dans cette dernière partie où je fais mon $_GET["id"]. Et en fait, il faudrait soit que je le récupère dans mon upload.htm, et que je le promène de script en script (mais comment le récupère t'on dans l'upload pour ensuite le passer au add-manif ?), soit je mets le script add-manif-pj.php dans l'upload, mais que devient

<form enctype="multipart/form-data" method="POST" action="add-manif-pj.php" value="envoyer" name="soumettre">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="file" name="monfichier" size="51" /><p>
<input type="reset" value="Effacer">
<input type="submit" name="preview" value="Valider">

de l'upload ? Comment l'écrire ?

#87 Re : MySQL, PostgreSQL, etc... » Clause WHERE dans PHP » 27-09-2009 19:32:45

t14

Ben non ! Là, je n'ai plus de message d'erreur, mais rien n'est uploadé, rien ne s'affiche. C'est comme si il ne se passait rien ..... sad

#88 MySQL, PostgreSQL, etc... » Clause WHERE dans PHP » 27-09-2009 19:32:45

t14
Réponses : 12

Bonjour,

J'ai une base Mysql, et je souhaite mettre à jour des champs via un formulaire. Sélection de l'enregistrement à mettre à jour, upload d'un fichier (image, doc ou autre), et écriture du lien, du nom et de l'extension du fichier dans la base. Voilà ce que j'ai écris :

$id = $_GET["id"];
     ..............................
// on écrit la requête sql
$sql = "UPDATE manifestations SET(lien_fichier, fichier, extension) VALUES('$dossier$fichier', '$fichier', '$extension') where id='$id'";

Et voici le message en retour :

Chargement effectué avec succès !Erreur SQL !UPDATE manifestations SET(lien_fichier, fichier, extension) VALUES('./dossier_upload/toto.doc', 'toto.doc', '.doc') where id=''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 '(lien_fichier, fichier, extension) VALUES('./dossier_upload/toto.doc' at line 1

Pourriez-vous m'aider ? Merci.

#89 Re : Forum Général PHP » inclure présentation html dans boucle php » 13-09-2009 04:50:15

t14
mcAllan a écrit :

Salut,

Au hasard...


echo '<a href ="http://127.0.0.1/kotoka/gestion/manifestations/test/dossier_upload/' . $row['lien_fichier'] . '"><img src="entrer.gif"></a>';
 

Mais alors vraiment au hasard.. smile

Merci mcAllan !!!! Le hasard fait bien les choses ..... wink big_smile

#90 Re : Forum Général PHP » inclure présentation html dans boucle php » 13-09-2009 04:50:15

t14
Maljuna Kris a écrit :

D'autant que je ne vois pas, non plus, en quoi cela constitue une requête.

T'es pas breton pour rien ........ big_smile

#91 Re : Forum Général PHP » inclure présentation html dans boucle php » 13-09-2009 04:50:15

t14

OK !!!! Je me suis mal exprimé et en plus je mélange tout !!!!!!

La requête echo '<a href ="http://127.0.0.1/kotoka/gestion/manifestations/test/dossier_upload/.$row['lien_fichier']."><img src="entrer.gif"></a>'; fait partie de ma boucle !!!!!!

Et ce que je cherche, c'est intégrer la commande php .$row['lien_fichier']. dans une requête html.

Je peux pas dire mieux ...... !!!!

#92 Re : Forum Général PHP » inclure présentation html dans boucle php » 13-09-2009 04:50:15

t14
Maljuna Kris a écrit :

Rien compris.

Je voudrais insérer la boucle php .$row['lien_fichier']. dans la ligne html echo '<a href ="http://127.0.0.1/kotoka/gestion/manifestations/test/dossier_upload/.$row['lien_fichier']."><img src="entrer.gif"></a>';

Mais là, y'a un problème de syntaxe que je n'arrive pas à résoudre .....

#93 Re : Forum Général PHP » inclure présentation html dans boucle php » 13-09-2009 04:50:15

t14

Effectivement !!!! Désolé d'avoir laissé le code surchargé ainsi !
Si je réduit à la partie qui nous intéresse :

echo '<a href ="http://127.0.0.1/kotoka/gestion/manifestations/test/dossier_upload/">'.$row['lien_fichier'].'<img src="entrer.gif"></a>';

En fait, il faudrait que je déclare la boucle php à effectuer directement directement dans le "href" :  [b]...estations/test/dossier_upload/_boucle_php_[/b]
Etlà, j'y arrive pô !!!!!! sad
C'est pourquoi je demande votre aide !!!!!!!! hmm

#94 Forum Général PHP » inclure présentation html dans boucle php » 13-09-2009 04:50:15

t14
Réponses : 11

Bonjour,

J'ai une boucle php qui lit une BD, et affiche les champs dans un tableau. J'ai rajouté un champ (lien_fichier) qui comporte un ou des liens pointant vers un fichier (doc, img, ....) situé sur un serveur annexe.

Je n'arrive pas à intégrer le formatage html avec le php !!!!

Voici ce que j'ai écrit :

//affichage des résultats
while($row = mysql_fetch_array($result))
{
echo '<table width="700px" border="1">';
echo '<tr>';
echo '<th rowspan="2" bgcolor="#ffe4c4" width="70px" align="center"><a href="modif-manif.php?mode=modif&id='.$row['id'].'">Modifier</a><p>
<a href="suppression.php?mode=suppression&id='.$row['id'].'">Supprimer</a><p>
<a href="modif-manif.php?mode=modif&id='.$row['id'].'">Ajout document</a></th>';
echo '<td bgcolor="#669988" width="230px" align="left">'.$row['date'].'</td>';
echo '<td bgcolor="#669999" width="400px" align="left"><span style="font-weight: 400"> '.$row['titre'].' </span></td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2" bgcolor="#FFFFCC" width="100%" align="left"><span style="font-weight: 400"> '.nl2br($row['texte']).' </span><p>';

//------------- C'est à partir de là où y'a des problèmes. Je n'arrive pas à faire une boucle sur le champ "lien_fichier", en la faisant précéder d'un formatage html ---------


echo '<a href="http://..................../selection_gd.jpg" target="wclose" onclick="window.open('http://........................./selection_gd.jpg,'wclose','width=425,height=365,toolbar=no,status=no,left=20,top=20')"><img src="http://................................../selection.jpg" border=no></a>'.$row['lien_fichier'].'</td>';
echo '</tr></table><p>';
}

Merci pour votre aide !

Pied de page des forums

Propulsé par FluxBB