PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Järjekorras tõstmine ebaõnnestub
Postitaja: Peeter 2004-10-03 11:45:05
Miks ei tööta. Tahtes viimast (eelviimaseks) viiakse see hoopiski esimeseks .

PHP kood:
 
// Leitakse järjekorranumber
$korras mysql_query('SELECT proovitabel.jrk FROM proovitabel WHERE        
                     id = ' 
$_GET['id'] . ' LIMIT 1')
                     or die(
'Muudetava järjekorra nr leidmine        
                     ebaõnnestus ' 
mysql_error());
            
            
$muudetava_jrk mysql_result($korras00);

    
// Leitakse eespool asuva järjekorra number
    
$korras mysql_query("SELECT id, jrk FROM proovitabel WHERE jrk < 
                          '" 
$muudetava_jrk "' LIMIT 1")
                          or die(
'Eespool asuva järjekorra leidmine         
                          ebaõnnestus ' 
mysql_error());

    
// Kui element on juba järjekorras esimene
    
if(mysql_num_rows($korras) != 1){
        echo 
'<script language="javascript" type="text/javascript">
             alert("On juba esimesel positsioonil")
             </script>'
;
    }
                
$rida mysql_fetch_array($korras);
                
$id2 $rida['id'];
                
$jrk $rida['jrk'];

  
    
// Tõstetava tõstmine
    
$korras mysql_query('UPDATE proovitabel SET jrk = ' $jrk '  
                           WHERE id = ' 
$_GET['id'] . ' LIMIT 1')
                           or die(
'Järjekorras tõstmine ebaõnnestus '       
                           
mysql_error());
            
    
// Teise langetamine
    
$korras mysql_query('UPDATE proovitabel SET jrk = ' .          
                          
$muudetava_jrk ' WHERE id = ' $id2 '    
                          LIMIT 1'
)
                          or die(
'Teise langetamine ebaõnnestus ' .     
                          
mysql_error());
RE: Järjekorras tõstmine ebaõnnestub
Postitaja: Peeter 2004-10-03 11:46:15
Kui kellelgi on ökonoomsem (töötav) variant välja pakkuda, siis oleksin väga tänulik, kui seda teeksite.
RE: Järjekorras tõstmine ebaõnnestub
Postitaja: MeiX 2004-10-05 15:14:44
Ei ole php progeja, aga olen seda teinud umbes sellise algoritmiga:

1) võta liigutatava elemendi id, nr ja max(nr) üle kõigi elementide
2) kui nr>1 või nr<max(nr) siis
3) leia vastavalt kas eelmise või järgmise nr-i id
4) tee update liigutatava elemendi id ja eelmise või järgmise elemendi id nr-i muutmiseks

Sai piisavalt segane..:)
RE: Järjekorras tõstmine ebaõnnestub
Postitaja: MeiX 2004-10-05 15:17:35
Punktis 2 peab olema tegelikult või asemel ja.

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0948510169983