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:
if (isPost()){
 $i = 1;
 // sorrend nullázása
 $sql1 = "UPDATE static_labels SET 
          sorrend = ''
         ";
 $result=mysql_query($sql1);
 // elemeket updateli
 foreach($_POST['s_labels'] as $elem) {
   $tmp = $sql . $i;
   $tmp = "UPDATE static_labels SET
           sorrend = '" . $i . "'
           WHERE labels = '" . $elem . "'
          ";
   $result=mysql_query($tmp);
   $i++;
 }
} else {
...
}
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
if (
  mysql_num_rows(
    mysql_query(
      sprintf(
        "SELECT sorrend FROM static_labels WHERE labels = '%s'",
        mysql_real_escape_string($elem)
      )
    )
  )
) {
  // ...
}
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.