[RESOLU] Update BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Update BDD

Re: [RESOLU] Update BDD

par prohand » 13 août 2013, 15:24

Ok merci, j'y regarderai à l'occasion, pour le moment se ne certes pas optimiser mais sa marche :)

Re: [RESOLU] Update BDD

par moogli » 13 août 2013, 14:43

Tu remplace les 7 colonnes des jours par une seule (que tu peux appeler jour ;) ).
Dans certes colonnes tu mets le jours correspondant.
En SQL tu peu créer un domaine de valeur, c'est une sorte de liste de valeur, qui dans ton cas va contenir les jours.
Une contrainte Check ou aussi faire la même chose (dépend du sgbd, mysql ne l'implante pas mais tu peux remplacer par un trigger before insert).

Tu peux regarder des cours sur la modélisation de base et modèle entité association de la méthode merise pour plus d'info.

@+

Re: Update BDD

par Invité » 13 août 2013, 12:13

Bon, j'ai résolu mon problème, merci.

Je tacherai d'être plus attentif :)

Je ne comprends comment tu veux faire avec une ligne par jour ?

Merci

Re: Update BDD

par moogli » 12 août 2013, 23:43

Salut,

Lorsque l'on utilise mysql_query il faut vérifier ci elle retourne vrai ou faux.
Danse cas où elle retourne faux (false) il faut gérer l'erreur.
Oui tu le fait mais tu ne sauvegarde le message d'erreur nul part, tu ne l'affiche pas non plus.
Du coup tu perd l'information et tu ne vois pas que le champ dimanche n'a pas de simple quote après la variable et qu'il y a en deux a la suite avant la fermeture de la chaîne.
Du coup mysql n'arrive pas a analyser l'ordre SQL vu que la chaîne n'est pas syntaxiquement correcte.
Tu dois avoir un message d'erreur avec mysql_error.

Côté modélisation tu a un problème, les champs lundi a dimanche ne devrait pas être dans cette table.
Tu devrais avoir, soit une ligne par jour soit deux tables (avec le jour dans un domaine ou une autre table).


@+

Update BDD

par prohand » 12 août 2013, 20:25

Bonjour,

Je viens à vous car la je sèche même si je penses que je n'en suis pas très loin.

En gros je voudrais mettre à jour les champs d'un bdd via ceci :
<?php
// on se connecte à MySQL
$db = mysql_connect('localhost', 'user', 'monpasse');

// on sélectionne la base
mysql_select_db('sauvegarde',$db);

$result = mysql_query("SELECT * FROM sauvegardes" );
$count = mysql_num_rows($result);

if (!empty($_POST['Submit']) )
  {
   mysql_query("DELETE FROM sauvegardes WHERE datemail < DATE_SUB(now(),INTERVAL 7 DAY)");
 
  }
?> 
<TABLE width=100% border=1>
	<thead>
		<TR>
		<TD width=30% ><center><font color="red"><b>Id</b></font></center></TD>
		<TD width=30% ><center><font color="red"><b>Sujet</b></font></center></TD>
		<TD width=10% ><center><font color="red"><b>Lundi</b></font></center></TD>
		<TD width=10% ><center><font color="red"><b>Mardi</b></font></center></TD>
		<TD width=10% ><center><font color="red"><b>Mercredi</b></font></center></TD>
		<TD width=10% ><center><font color="red"><b>Jeudi</b></font></center></TD>
		<TD width=10% ><center><font color="red"><b>Vendredi</b></font></center></TD>
		<TD width=10% ><center><font color="red"><b>Samedi</b></font></center></TD>
		<TD width=10% ><center><font color="red"><b>Dimanche</b></font></center></TD>
		<TD width=10% ><center><font color="red"><b>Modifier</b></font></center></TD>
		</TR>
	</thead>
	<tbody>
<?php
	$sql = 'SELECT id,intitule,lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche FROM sauvegarde_config ORDER BY id';
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
			while($data = mysql_fetch_assoc($req))
				{
?>					<form action="sauvegarde_admin_modif.php" method="POST"> 
					  <tr>
					  <td><input name="id" size="5" value="<?php echo ''.$data['id'].'';?>" type="text"/></td>
					  <td><input name="intitule" size="40" value="<?php echo ''.$data['intitule'].'';?>" type="text"/></td>
					  <td><input name="lundi" size="10" value="<?php echo ''.$data['lundi'].' ';?>" type="text"/></td>
					  <td><input name="mardi" size="10" value="<?php echo ''.$data['mardi'].'';?>" type="text"/></td>
					  <td><input name="mercredi" size="10" value="<?php echo ''.$data['mercredi'].' ';?>" type="text"/></td>
					  <td><input name="jeudi" size="10" value="<?php echo ''.$data['jeudi'].'';?>" type="text"/></td>
					  <td><input name="vendredi" size="10" value="<?php echo ''.$data['vendredi'].' ';?>" type="text"/></td>
					  <td><input name="samedi" size="10" value="<?php echo ''.$data['samedi'].' ';?>" type="text"/></td>
					  <td><input name="dimanche" size="10" value="<?php echo ''.$data['dimanche'].' ';?>" type="text"/></td>
					  <td><input type="submit" name="Modifier" value="Modifier" /></td>
					  </tr>
					 </form> 

					
<?php
				}

?>
	

	</tbody>
</TABLE>

</tbody>
<br>
Il y a <? echo $count;?> sauvegardes dans la base de donn&eacutee.
<br><br>
		
				<?php
					//Mise du contenu des champs dans une variable
					if(!empty($_POST['Modifier']) )
					{
						$id= $_POST["id"];
						$intitule = $_POST["intitule"];
						$lundiupdate = $_POST["lundi"];
						$mardiupdate = $_POST["mardi"];
						$mercrediupdate = $_POST["mercredi"];
						$jeudiupdate = $_POST["jeudi"];
						$vendrediupdate = $_POST["vendredi"];
						$samediupdate = $_POST["samedi"];
						$dimancheupdate = $_POST["dimanche"];
								
						$query = "Update sauvegarde_config Set intitule='$intitule',lundi='$lundiupdate',mardi='$mardiupdate',mercredi='$mercrediupdate',jeudi='$jeudiupdate,vendredi='$vendrediupdate,samedi='$samediupdate,dimanche='$dimancheupdate WHERE id='$id''" ; 
						$result = mysql_query($query);
						if ($result)
						{
							echo "Utilisateur mis à jour";
						}
						else
						{
							echo "Echec de la modification";
						}
					}
					else
					{
					echo " Pas de modification";
					}		
?>		
<br><br>

  <form method="post" action="" name="Suppression">
  <input type="submit" name="Submit" value="Suppression des sauvegardes de plus de 7 jours">
  </form>
Mais cela ne marche pas, cela serait trop simple.
Bien sur rien dans les logs d'erreurs d'apache.

Je pense que sa vient de l'update mais je ne vois pas ce qui bloque
Le but étant de faire une modification en cliquant sur le bouton de la ligne concernant dans la bdd.

Merci :)