[PHP] Update de certains champs

Discussion dans 'Web, design' créé par xlr8, 24 Janvier 2008.

Statut de la discussion:
Fermée.
  1. Offline
    xlr8 Elite
    Yop, je viens d'intégrer des fichiers csv dans ma db et certains champs n'ont aucune valeur.

    Et je n'arrive pas trouver comment faire pour faire un update de ma db qui changerait les champs qui sont égaux à '' en NULL.

    Si qqun veut bien m'aider :) Car je change à la main chaque champs :[]
    xlr8, 24 Janvier 2008
    #1
  2. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    UPDATE 'table' SET 'champ' = NULL WHERE 'champ' = "";


    Et tu fais une requète par champ (colonne) possible, je suppose qu'il n'y en a pas tant que ça ...
    Jereck, 24 Janvier 2008
    #2
  3. Offline
    xlr8 Elite
    Si j'ai 76 champs et 300 entrées pour la table, c'est pour çà, que je ne voulais pas avoir à reprendre le nom de chaque champs...

    Y a pas de solution pour dire de le faire dans tous les champs ?
    xlr8, 24 Janvier 2008
    #3
  4. Offline
    Bartdude Touriste
    Peut-être lors de l'import plutôt alors ?
    Bartdude, 24 Janvier 2008
    #4
  5. Offline
    xlr8 Elite
    Ca sera moins long de modifier es valeurs :p Y a 36 000 csv, c'était vraiment le bordel de tout faire correspondre... Je suis en train de voir pour procéder à partir d'un DESCRIBE et d'un UPDATE
    xlr8, 24 Janvier 2008
    #5
  6. Offline
    xlr8 Elite
    oups rien dit :p
    xlr8, 24 Janvier 2008
    #6
  7. Offline
    Ahava Revenant
    Tu importe ton fichier, tu fais le traitement dessus... Tu fais donc une boucle sur tes données, sur chaque ligne non ? Là tu change la requete, mettre null si le champ est vide...
    Ahava, 24 Janvier 2008
    #7
  8. Offline
    ozilrit Touriste
    MySQL ?
    ozilrit, 24 Janvier 2008
    #8
  9. Offline
    xlr8 Elite
    Voilà ça marche, je mettais pas ma requête au bon endroit :p

    Code:
     	mysql_select_db($database_visiblePage, $visiblePage); 
     	$TBName = "fpme_vPage2";
    	
    	$query_miseajour = "SELECT * FROM ".$TBName;
    	$miseajour = mysql_query($query_miseajour, $visiblePage) or die(mysql_error());
    	$row_miseajour = mysql_fetch_assoc($miseajour);
    	$totalRows_miseajour = mysql_num_rows($miseajour);
    
    	do {
    	
    		$query_tableStructureDescribe = "DESCRIBE ".$TBName;
    		$tableStructureDescribe = mysql_query($query_tableStructureDescribe, $visiblePage) or die(mysql_error());
    		$row_tableStructureDescribe = mysql_fetch_assoc($tableStructureDescribe);
    		$totalRows_tableStructureDescribe = mysql_num_rows($tableStructureDescribe);
    		do {
    			$nomField = $row_tableStructureDescribe['Field'];
    			if($row_miseajour[$nomField]== ""&& $nomField !=""){
    				$updatemaj = "UPDATE ".$TBName." SET `".$nomField."`=NULL WHERE `id`='".$row_miseajour["id"]."'";
    				mysql_select_db($database_visiblePage, $visiblePage);
    				$updatemajquery = mysql_query($updatemaj, $visiblePage) or die(mysql_error());
    				
    				echo $updatemaj."<br>";
    				
    				//echo "UPDATE".$row_miseajour["id"]." ".$nomField;
    			}
    		} while ($row_tableStructureDescribe = mysql_fetch_assoc($tableStructureDescribe));
    	} while ($row_miseajour = mysql_fetch_assoc($miseajour));
    
    xlr8, 24 Janvier 2008
    #9
  10. Offline
    zoheir cvm.mangaleet()
    Et pourquoi ne pas assigner les champs en "default null" ?

    Ou j'ai rien compris -_-'
    zoheir, 24 Janvier 2008
    #10
  11. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    Parce que le CSV comporte une valeur pour chaque champ.

    Un chaine vide est une valeur, contrairement à NULL qui est une absence de valeur.
    Jereck, 24 Janvier 2008
    #11
  12. Offline
    Ahava Revenant
    Raconte ça à Oracle tiens :-D
    Ahava, 24 Janvier 2008
    #12
  13. Offline
    ozilrit Touriste
    Comment cela Ahava ?
    ozilrit, 24 Janvier 2008
    #13
Statut de la discussion:
Fermée.