Mise à jour base mysql

t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -  
 t671 -
Bonjour,

Suite à un upload de fichier, je veux mettre un champ d'une base mysql à jour (adresse du fichier uploadé). Ce champ comporte déjà un enregistrement (adresse d'une image ou doc existante). Ce ne serait juste qu'une complémentation.
L'upload se passe bien, mais apparemment, la requête ne s'éxécute pas. Voilà ce que j'ai écrit :

$requete_update = "UPDATE manifestations SET lien_fichier='$lien_fichier' , fichier='$fichier' , extension='$extension' WHERE id='$id'";

J'ai l'impression que ce n'est pas la bonne requête !!!! ???

Quelle est celle que je dois utiliser pour complémenter un champ texte d'une base de donnée ?

Merci
A voir également:

23 réponses

t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
Merci P@t@ch0n ... ;o))

Maintenant, si je veux associé plusieurs éléments de la table upload à un unique enregistrement de la table manifestation (donc ces éléments de upload ont le même id_liaison qui font référence au même enregistrement de manifestation), à l'affichage, j'ai l'élément de manifestation qui s'affiche autant de fois qu'il a d'élément de upload associé.
Comment faire pour qu'à l'affichage, l'élément de manifestation s'affiche une seule fois avec tous les éléments de upload associés ?

J'espère avoir été assez clair ..... :o))
Merci ....
0
P@t@ch0n Messages postés 565 Date d'inscription   Statut Membre Dernière intervention   85
 
Je te l'ai expliqué plus haut comment il faut faire.

Le LEFT JOIN permettra de retourner tous les enregistrements de ta table manifestation, mais s'il n'y a pas de lignes affiliées à elles dans la table upload, les colonnes sélectionnées de la table upload auront pour valeur NULL.

Ensuite pour la non-répétitions de chaque colonnes sélectionnées de la table manifestation qu'il y a de lignes dans la table upload, il suffit de stocker l'id précédent dans une variable, de comparer avec l'id actuel du tour de boucle et si différent, on affiche les colonnes de manifestation, et on change la valeur de cette variable par l'id courant.

Donc niveau code, cela donne.

// Ordonnancement par les ids en premiers et date en second ESSENTIEL POUR GÉNÉRER L'AFFICHAGE ORDONNÉ
$requete = 'SELECT id, texte, id_liaison, extension, lien_fichier FROM manifestations
LEFT JOIN upload ON id = id_liaison
ORDER BY id, date';
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );

$idEnCours = 0; // On déclare cette variable de stockage avec une valeur ne pouvant être un id de la table, 0 donc.
while($row = mysql_fetch_array($result))
{
    // Si la valeur de l'id de la table manifestation est différent de la valeur de $idEnCours 
    // (ce qui sera forcément le cas lors du 1er tour de boucle)
    // On affiche les colonnes de la table manifestation, et on modifie la valeur de $idEnCours par la valeur de l'id de manifestation
    if( $idEnCours != $row['id'] )
    {
        $idEnCours = $row['id_liaison'];
        echo nl2br($row['texte']);
    }
    
    // Pour savoir s'il y a des lignes correspondantes dans la table upload et le cas échéant les afficher, l'id_relation 
    // (ou n'importe quelle autre colonne de la table upload) ne doit pas valoir NULL
    if( $row['id_liaison'] !== null )
    {
       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>';
       }
       elseif (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>';
       }
    }
    else
    {
        echo '<em>aucun fichier affilié à cette manifestation</em>';
    }
}
0
t671
 
C'est bon !!!!! J'ai réussi grâce à ton code .......... ;o))
Virré toutes les balises et rajouté au fur et à mesure .....

Merci pour tout ............. ;o))
0
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
Bonjour P@t@ch0n,

J'arrive au bout du problème ..... :o))

Il me reste un problème d'affichage. Suite à l'affichage du texte, le premier élément de upload affilié au texte 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.

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
0