ugrás a tartalomhoz

Szerepel-e már benne ez az érték?

Creative · 2011. Feb. 16. (Sze), 12.30
Hali

Tudom, a név kissé semmitmondó, de nem tudtam rövidebben s értelmesebben megfogalmazni. Adva vagyon egy formos küldés, melynek eredménye egy tömb. A tömb elemeihez értéknöveléssel foreach-ben szeretnék egy értéket hozzárendelni. A gond az, hogy ha kétszer is megadom ugyanazt az elemet, akkor nem tudom hogy ellenőrizhetném, ennek az értéke szerepelt-e már korábban, hisz akkor ennek nem akarok új értéket adni. Tehát amit előbb bevisz az adatbázisba, az a nagyobb prioritású érték.
Íme a kódrészletem:
  1. if (isPost()){  
  2.  $i = 1;  
  3.  // sorrend nullázása  
  4.  $sql1 = "UPDATE static_labels SET   
  5.           sorrend = ''  
  6.          ";  
  7.  $result=mysql_query($sql1);  
  8.  // elemeket updateli  
  9.  foreach($_POST['s_labels'as $elem) {  
  10.    $tmp = $sql . $i;  
  11.    $tmp = "UPDATE static_labels SET  
  12.            sorrend = '" . $i . "'  
  13.            WHERE labels = '" . $elem . "'  
  14.           ";  
  15.    $result=mysql_query($tmp);  
  16.    $i++;  
  17.  }  
  18. else {  
  19. ...  
  20. }  
A kérdés tehát, hogy hogy tudnám beleírni azt a kis részt, ami ellenőrzi, az aktuálisan bevinni készült elemhez létezik-e már a sorrend oszlopban érték, s ez esetben ott null értéket adna át, vagy egyszerűen tenne rá nagyban s haladna tovább a következő elemre?
előre is köszönöm a válaszokat ^^

C.
 
1

SELECT

Poetro · 2011. Feb. 16. (Sze), 14.45
  1. if (  
  2.   mysql_num_rows(  
  3.     mysql_query(  
  4.       sprintf(  
  5.         "SELECT sorrend FROM static_labels WHERE labels = '%s'",  
  6.         mysql_real_escape_string($elem)  
  7.       )  
  8.     )  
  9.   )  
  10. ) {  
  11.   // ...  
  12. }  
2

:)

Creative · 2011. Feb. 18. (P), 16.00
Poetro, a személyi helpdesk ^^'

Nos végül is addig agyaltam én botor fejjel, míg rá nem jöttem, van egy egyszerű megoldás. Nem tudom ez mennyire egyszerűbb :) (szerintem a legegyszerűbb)

A foreach előtt létrehozok egy üres tömböt volt_mar_tomb nevvel, s foreachen belül hozzáadom az aktuális elemet a tömbhöz, s ha nem szerepel a tömbben (!in_array($elem, $volt_mar_tomb)), akkor fut csak le az update ^^

C.