ugrás a tartalomhoz

adat ellenőrzése a sorban

Termes · 2008. Már. 4. (K), 00.19
Sziasztok.

Már jó két órája töröm a fejem, de nem jövök rá hogy, hogyan tudnám megoldani a következő problémát:

Van egy jelentkezés aktiválással. Na mármost az aktiváláskor a a kód lefuttat egy keresést, amiben ellenőrzi hogy, az adott azonosítóval az aktiváló személy próbált-e már aktiválni. Ha nem, akkor az sql módosítja az értéket, ha igen, akkor pedig más parancsot hajt végre.

A kódom itt van, légyszi egy pici segítséget kérek.... :)

<?php
$keres = "SELECT aktiv FROM `jelentkezok` WHERE `azonosito` = '$jaz' AND `email` = '$email' LIMIT 1";
$eredmeny = mysql_query($keres) or die("Adatbázishiba. Kérlek, próbáld meg később.");

// szerintem ez lesz a bibi alább...

if ($eredmeny < 1 ) {

// .....???

$sql2 = "UPDATE jelentkezok SET `datum` = NOW(), `aktiv` = '1' WHERE `azonosito` = '$jaz' AND `email` = '$email' LIMIT 1";
mysql_query($sql2);
print "
Kösz.
";
} else {
print "
Már aktív vagy.
"; }
?>
Tuti egyszerű hiba, de nem találom a megoldást.

Előre is köszönöm.
TP
 
1

vagy..

Termes · 2008. Már. 4. (K), 00.22
...

esetleg az if(mysql_num_row($eredmeny) > 0) helyettes ???

de úgy sem történik pozitív eredmény...

pfuh
3

Query

vbence · 2008. Már. 4. (K), 00.59
Végrehajtasz egy queryt, nem is érdekel az eredmény? (hogy milyen adat található az "aktiv" mezőben)?
2

Az még nem az lesz!

s_volenszki · 2008. Már. 4. (K), 00.56
A $eredmeny még nem a találati sorok száma! Az még csak egy resurce http://us.php.net/mysql_query amiben benne van a válasz, csak ki kell hámozni. Ha FALSE akkor sikertelen volt a lekérdezés, ami pedig neked kell, az a mysql_num_rows() ha jól értettem!

s_volenszki
4

!$eredmeny

torso · 2008. Már. 4. (K), 01.28
Szia!
if ($eredmeny < 1 )
helyett:
if (!$eredmeny)
G.
5

Most miért mondod?!

s_volenszki · 2008. Már. 4. (K), 09.04
A $eredmeny csak akkor lesz FALSE ha valami miatt meghiúsul a lekérdezés. Ha FALS értékkel tér vissza, az nem azt jelenti, hogy 0 sort talált (http://us.php.net/mysql_query).

if(mysql_num_rows($eredmeny) == 1)
{
   //Igaz feltétel
}
else
{
   //Hamis feltétel
}
s_volenszki
6

A mysql_num_rows...

Ronyn · 2008. Már. 4. (K), 12.53
Mindenképp egyet ad vissza,hiszen egy sor érintett,csak akkor add vissza 0-at(false),ha eleve nincs ilyen regisztrácio(persze azt is le kell kezelni majd,de a kérdés nem erröl szol),hanem most az kell hogy annak az egy sornak mi az értéke; 0 vagy 1...
$sor=mysql_fetch_row($eredmény);
if($sor[0]==0){
aktiválás...}
else{ print...}
8

Elbeszélünk egymás mellett...

s_volenszki · 2008. Már. 4. (K), 15.47
Igen ezt értem és igazad van, itt nem a találti sorok száma a fontos, hanem a kiolvasott rekord adat tartalma.

Én torso hozzászólására reagáltam, mi szerint ha a $eredmeny egy resource, akkor csak abban az esetben lehet FALSE ha a lekérdezés közben hiba lép fel:

if (!$eredmeny)
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.


s_volenszki
9

Én...

Ronyn · 2008. Már. 4. (K), 16.41
igazábol az eredeti kérdésre válaszoltam,merthogy gondoltam az a feladat))
Csakhogy tudja a kérdezö,miértis nem jo a script,és a válaszok...
10

:)

Termes · 2008. Már. 4. (K), 17.08
Kösz srácok...megértettem! :)

Thnx: Ronyn, vbence, s_volenszki, torso mégegyszer.

Üdv:
TP
7

igaz

torso · 2008. Már. 4. (K), 13.16
Bocs!

Igazad van, már félálomban írtam:)

G.