Autor Zpráva
majklcze
Profil *
čau jsem začátečník v PHP, napsal sem si tuhle funkci na upravu mySQL databaze ale nefunguje mi, může mi někdo poradit?

function inccash ($uzivatel, $link)
{
$link=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
mysql_select_db(SQL_DBNAME);

$konec=false;
$vysledek1=mysql_query("select referal from uzivatele where registracedokoncena=1 and id=".$uzivatel, $link);
if (mysql_num_rows($vysledek1)==0):
$konec=true;
elseif (konec==false):
$radek1 = mysql_fetch_array($vysledek1);
$id2 = $radek1["referal"];
mysql_query("update uzivatele set referals=referals+1 and cash=cash+10 where id=".$id2);
endif;
$vysledek2=mysql_query("select referal from uzivatele where registracedokoncena=1 and poslalsms=1 and id=".$id2, $link);
if (mysql_num_rows($vysledek2)==0):
$konec=true;
elseif (konec==false):
$radek2 = mysql_fetch_array($vysledek2);
$id3 = $radek2["referal"];
mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id3);
endif;
$vysledek3=mysql_query("select referal from uzivatele where registracedokoncena=1 and poslalsms=1 and id=".$id3, $link);
if (mysql_num_rows($vysledek3)==0):
$konec=true;
elseif (konec==false):
$radek3 = mysql_fetch_array($vysledek3);
$id4 = $radek3["referal"];
mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id4);
endif;
$vysledek4=mysql_query("select referal from uzivatele where registracedokoncena=1 and poslalsms=1 and id=".$id4, $link);
if (mysql_num_rows($vysledek4)==0):
$konec=true;
elseif (konec==false):
$radek4 = mysql_fetch_array($vysledek4);
$id5 = $radek4["referal"];
mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id5);
endif;
}

má to dělat to že zadám první ID někoho v databázi, vyhledám položku REFERAL což je integer v databazi pro toto ID. Tomuto REFERALOVI prictu CASH, REFERALS a zase jeho REFERALOVI to same.

Moderátor Chamurappi: Smazal jsem ti z titulku „pls HELP“, nauč se prosit česky, tatare.
PHP_Nemaster
Profil
Je ten kód úplný? ( Jenom že tam nevidím zahrnovaný soubor kde by byly informace s tím co je (SQL_HOST, SQL_USERNAME, SQL_PASSWORD); )
majklcze
Profil *
no ten mam v includu před voláním funkce, to se musí dát i do té funkce??
PHP_Nemaster
Profil
Myslím že ne. V tom případě nevím v čem je chyba.
PHP_Nemaster
Profil
Myslím že ne. V tom případě nevím v čem chyba.
WertriK
Profil
function inccash ($uzivatel, $link)
{
$link=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
mysql_select_db(SQL_DBNAME);

$konec=false;
$vysledek1=mysql_query("select referal from uzivatele where registracedokoncena=1 and id=".$uzivatel, $link);
if (mysql_num_rows($vysledek1)==0):
$konec=true;
elseif ($konec==false):
$radek1 = mysql_fetch_array($vysledek1);
$id2 = $radek1["referal"];
mysql_query("update uzivatele set referals=referals+1 and cash=cash+10 where id=".$id2);
endif;
$vysledek2=mysql_query("select referal from uzivatele where registracedokoncena=1 and poslalsms=1 and id=".$id2, $link);
if (mysql_num_rows($vysledek2)==0):
$konec=true;
elseif ($konec==false):
$radek2 = mysql_fetch_array($vysledek2);
$id3 = $radek2["referal"];
mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id3);
endif;
$vysledek3=mysql_query("select referal from uzivatele where registracedokoncena=1 and poslalsms=1 and id=".$id3, $link);
if (mysql_num_rows($vysledek3)==0):
$konec=true;
elseif ($konec==false):
$radek3 = mysql_fetch_array($vysledek3);
$id4 = $radek3["referal"];
mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id4);
endif;
$vysledek4=mysql_query("select referal from uzivatele where registracedokoncena=1 and poslalsms=1 and id=".$id4, $link);
if (mysql_num_rows($vysledek4)==0):
$konec=true;
elseif ($konec==false):
$radek4 = mysql_fetch_array($vysledek4);
$id5 = $radek4["referal"];
mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id5);
endif;
} 


Chyby, kterých jsem si všiml, jinak jsem to nestudoval.
majklcze
Profil *
no stejně to nefunguje teď ten kód vypadá takhle:

function inccash ($uzivatel, $link)
{

$konec=false;
  $vysledek1=mysql_query("select * from uzivatele where registracedokoncena=1 and id=".$uzivatel, $link);
  if (mysql_num_rows($vysledek1)==0): 
    $konec=true; 
  elseif ($konec==false):
    $radek1 = mysql_fetch_array($vysledek1);
    $id2 = $radek1["referal"];
	$referals2 = $radek1["referals"];
	if ($referals2<=10):
	mysql_query("update uzivatele set referals=referals+1 and cash=cash+10 where id=".$id2);
	else:
	mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id2);
	endif;
  endif;
  $vysledek2=mysql_query("select * from uzivatele where registracedokoncena=1 and poslalsms=1 and id=".$id2, $link);
  if (mysql_num_rows($vysledek2)==0): 
    $konec=true;  
  elseif ($konec==false):
    $radek2 = mysql_fetch_array($vysledek2);
    $id3 = $radek2["referal"];
	mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id3);
  endif;
  $vysledek3=mysql_query("select * from uzivatele where registracedokoncena=1 and poslalsms=1 and id=".$id3, $link);
  if (mysql_num_rows($vysledek3)==0): 
    $konec=true; 
  elseif ($konec==false):
    $radek3 = mysql_fetch_array($vysledek3);
    $id4 = $radek3["referal"];
	mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id4);
  endif;
  $vysledek4=mysql_query("select * from uzivatele where registracedokoncena=1 and poslalsms=1 and id=".$id4, $link);
  if (mysql_num_rows($vysledek4)==0): 
    $konec=true; 
  elseif ($konec==false):
    $radek4 = mysql_fetch_array($vysledek4);
    $id5 = $radek4["referal"];
	mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id5);
  endif;
}


kdo poradí??? no a volám to teda takhle

$uzivatel=$_GET['code'];
  $link=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
  mysql_select_db(SQL_DBNAME);
inccash($uzivatel, $link);
majklcze
Profil *
takze chyba byla v kazdem
mysql_query("update uzivatele set referals=referals+1 and cash=cash+5 where id=".$id5);


nemuzu upravovat dva prvky najednou, ten and tam nesmi byt musim udelat

    mysql_query("update uzivatele set referals=referals+1 where id=".$id5);
	mysql_query("update uzivatele set cash=cash+5 where id=".$id5);


ale myslel sem ze to jde?
Alphard
Profil
majklcze:
lze upravit dva sloupce najednou, ale s jinou syntaxí
mysql_query("update uzivatele set referals=referals+1, cash=cash+5 where id=".$id5);
majklcze
Profil *
ajo ok, no a ještě dotaz, jaky je rozdil mezi temato dvema zapisama???

mysql_query("update uzivatele set referals=referals+1, cash=cash+5 where id=".$id5);
mysql_query("update uzivatele set referals=referals+1, cash=cash+5 where id='".$id5."'");


neboli u druheho davam id='nejake cislo' , to by bylo asi chybne ne? by se to tam chtelo zapsat jako string?
AM_
Profil
majklcze
Standard SQL zápis čísel do uvozovek nepodporuje (bral by to jako string a tedy chybu protože id je zřejmě INT), ale MySQL toto podporuje. Typ hodnoty udává typ sloupce, se kterým se pracuje (tedy když porovnáváš id='5', bere to MySQL jako INT, protože id je INT). Někdo má radši zápis čísel bez uvozovek, protože odpovídá SQL standardu, někdo (včetně mě) zase dává do uvozovek všechny hodnoty, když děláš např. nějaký hodně abstraktní systém a píšeš funkci, kde nevíš, s jakými sloupci se bude ve výsledku pracovat, zjednodušíš si práci vložením prostě všeho do uvozovek.
V příkladu, který jsi napsal, je to úplně jedno, v MySQL jsou zápisy identické.
majklcze
Profil *
ok, diky moc všem, supr fórum :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: