Changeset 8219 in spip-zone


Ignore:
Timestamp:
Dec 21, 2006, 9:22:04 PM (12 years ago)
Author:
cedric@…
Message:

"borner le nouveau rang, et en profiter pour voir si il y aurait ps des donnees sans rang (erreur) et les ramasser"

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms.php

    r8189 r8219  
    453453        }
    454454        function Forms_rang_update($id_donnee,$rang_nouv){
     455                $rang_min = $rang_max = 1;
     456                // recuperer le rang et l'id_form de la donnee modifiee
    455457                $res = spip_query("SELECT id_form,rang FROM spip_forms_donnees WHERE id_donnee="._q($id_donnee));
    456458                if (!$row = spip_fetch_array($res)) return;
    457459                $rang = $row['rang'];
    458460                $id_form = $row['id_form'];
     461
     462                // recuperer le min et le max des rangs en cours
     463                $res = spip_query("SELECT min(rang) AS rang_min, max(rang) AS rang_max FROM spip_forms_donnees WHERE id_form="._q($id_form));
     464                if ($row = spip_fetch_array($res)){
     465                        $rang_min = $row['rang_min'];
     466                        $rang_max = $row['rang_max'];
     467                }
     468       
     469                // verifier si des donnees sont pas sans rang et les ramasser
     470                $res = spip_query("SELECT id_donnee, rang FROM spip_forms_donnees WHERE (rang=NULL OR rang=0) AND id_form="._q($id_form));
     471                while ($row = spip_fetch_array($res)){
     472                        $rang_max++;
     473                        spip_query("UPDATE spip_forms_donnees SET rang=$rang_max WHERE id_donnee="._q($row['id_donnee']));
     474                }
     475                // borner le rang
     476                $rang_nouv = min(max($rang_nouv,$rang_min),$rang_max);
    459477               
    460478                if ($rang_nouv>$rang) $rang_nouv++; // il faut se decaler d'un car on est devant actuellement
Note: See TracChangeset for help on using the changeset viewer.