all HTML

Accèdez à votre compte : 

Créer un compte …

Perte de mot de passe …

  • Accueil
  • Forum de discussions
  • Publications
  • Communauté

Poser une question

Sélection des sujets

  • Toutes les discussions
  • Questions sans réponse
  • par langage de programmation :
    html css javascript php sql asp xml java C# action script
  • par thématique :
    animation - motion design graphisme - webdesign audio - vidéo accessibilité droit - législation web apps - logiciels référencement - seo hébergement administration serveur site web e-commerce

Génerateur de tableau | index ?

Sujet publié le 20/02/2012 par keitaro59 et classé dans résolu ! php sql

Bonjour,

J'ai une table SQL "suivi", qui contient les interventions dites "en cours".

J'ai voulu créer un tableau selon le nombre d'élément de la table, et y mettre les fonctions d'ajout / suppression.

Un petit screen-shot pour que ce soit plus clair:



Le problème est que, pour mon script de suppression, j'utilise une référence pour lancer ma requête SQL mais la en l'occurrence j'utilise l'id, qui lui est dupliqué à chaque fois donc en toute logique il me supprime le dernière élément et non celui ciblé. Peut-on indexer un tableau créer dynamiquement ?

Autre problème pour la liste déroulante,
Toutes la création de la ligne ce trouve dans la boucle, et je comprends pas pourquoi la première ligne est bien rempli mais ensuite plus rien ...

D'avance merci

par keitaro59, 20/02/2012 à 17h42

répondre

Salut.

Bon, ce serait plus simple avc au moins le detail de la structure de ton formulaire, mais je vais essayé de te donner une réponse :


tu as 2 options :

- un id_suivi unique (le moyens le plus propre), tu ajoute un id auto_increment (à chaque enregistrement, il va récupérer la valeur auto_incrementé de la table et l'utiliser comme ID), ainsi tu auras toujours un ID unique que tu pourra utiliser pour la suppression, l'update, ....
=> pour ne pas modifier ton design, et masquer (+/-) cette infos au vu de l'utilisateur, tu peux la placer dans un champs input de type "hidden".

- utiliser plusieurs champs dans ta close WHERE intervenant = "..." AND intervention="..." AND ... autant que tu veux ;) mais dans ce cas là, tu dois faire en sorte de connaitre les anciennes valeurs pour pouvoir les supprimer et éviter les doublons (si 2 interventions pour le même intervenant sont identique, tu vas te retrouver avec le même problème que précédemment)


@++&BonCode;)

par nours312 [modérateur], 20/02/2012 à 20h15
nours312.com -- je ne suis pas codeur bénévole, mais j'aide gratos ;)

Merci pour la réponse nours312,

Donc la, j'ai vérifié sur la page, chaque <td> porte comme name respectif l'id auto_increment, mais je ne comprends pas comment faire le lien lors de l'appui sur le bouton supprimer.

J'essaye juste d'afficher une des valeurs du tableau $row2 dans mon script, mais déjà ça, il ne me l'affiche pas :/ il veut pas récupérer la valeur de $row2

<code>
<?php
include('SCRIPT_CONNEXION_SQL.php');
extract($_POST);

$sql = " SELECT nom FROM employe;";
$sql2 = " SELECT * FROM suivi;";
$result = mysql_query($sql) or die("requête fail !");
$result2 = mysql_query($sql2) or die("requête fail !");

while ($row2=mysql_fetch_array($result2))
{
echo "<tr><td width=10% align=center>";
echo "<select name='intervenant'>";
while ($row=mysql_fetch_array($result))
{
echo"<option>$row[0]</option>";
}
echo"</select></td>
<td width=70%><input type=text name=$row2[0]
value='$row2[0]' style='width:831;'></td>
<td width=20% align=center>
<input type='button' value='Ajouter'>
<input type='submit' value='Supprimer'>
<input type='hidden' name='login' value='$row2'></td></tr>";
}
?>
</code>

par keitaro59, 21/02/2012 à 09h26

Autant pour moi sa passe bien avec le Hidden, je m'étais trompé dans le name, mais par contre pour récupérer la valeur de l'index 0 du tableau par exemple, pour essayer, ça devrait être le même principe ? car quand je fait echo $row2 > Array, normal, mais quand je fait echo $row[0] il me renvois A ... :/ lol

par keitaro59, 21/02/2012 à 09h35

arf, il même en affichant l'id, il m'affiche celui de la dernière ligne :/

par keitaro59, 21/02/2012 à 09h40

Question plus précise maintenant, donc chaque <td> possède l'id auto_increment, mais maintenant comment faire pour que chaque bouton 'supprimer' de chaque <td> soit lié à la ligne td alors qu'elles se créent toutes dynamiquement :S . La dans mon script j'ai juste fait afficher la valeur de $row2[0], donc l'id, ce qui fait que ça devrait m'afficher l'id de la ligne ou je clique mais ça me revoie toujours 21, la dernière ligne générée :-/

par keitaro59, 21/02/2012 à 09h49

Bon bah j'continue à m'auto-parler xD

J'ai trouvé, il fallait juste que je crée le formulaire à chaque ligne et la ça fonctionne nikel,

Maintenant j'me retrouve avec mon autre problème, celui de la liste qui se remplit qu'une seule fois. Si j'trouve avant une réponse je posterai le code pour ceux qui sont intéressés =)

par keitaro59, 21/02/2012 à 10h08

Le probleme : la fonction mysql est appelée qu'une seule fois donc j'ai copié les valeurs dans un autre tableau et j'affiche mon autre tableau en boucle et la ça passe :

while ($row=mysql_fetch_array($result))
{
	$arr[] = $row[0];
}
$i = 0;
while ($i <= count($arr))
{
	echo"<option>$arr[$i]</option>";
	$i = $i + 1;
}
par keitaro59, 21/02/2012 à 10h32

Salut :

tu peux aussi faire ça ::

<?php 
$options = "" ;
while ($row=mysql_fetch_array($result))
{
    $options .= "<option>$row[0]</option>";
}

?>

<select >
<?php echo $options ; ?>
</select >
ça t'éviteras les boucles inutiles ;)

c'est bon tout est résolu ?


Sinon, désolé de ne pas t'avoir aidé plus vite ... mais ya pas pas foule en ce moment, ça devrait changé, et nous serons plus réactif à ce moment là ;)

BonCode ;)
par nours312 [modérateur], 21/02/2012 à 22h31
nours312.com -- je ne suis pas codeur bénévole, mais j'aide gratos ;)

oui sujet résolu merci pour ta réponse :D

par keitaro59, 23/02/2012 à 17h05

répondre

  • nous contacter
  • mentions légales