Jump to content

[PHP] Pārbauda vai nav eksistējoši dati pēc tam ievada vai rediģē


Profth3tic
 Share

Recommended Posts

Sveicināti atkal!

Nāku pēc palīdzības ar funkciju ,kuru vēlos izveidot datu pārbaudei un ,lai neveidotu jaunu ierakstu tad funkcija update'o nevis insert'o.
Šajā rezultātā uzmet baltu lapu un nekas nenotiek un kļūdu arī neizmet un es nesaprotu ,ko darīt. 

 

Funkcija:

function buy(){
	$connect = mysqli_connect(/* datubāzes dati */);
	$user = userInfo();
	$userid = $user['id'];
	$result = mysql_query("SELECT * FROM shop WHERE user_id = $userid") OR DIE(mysql_error());
	$num_rows = mysql_num_rows($result);
	if ($num_rows == 0){	// ja ir dati ,tad UPDATE
		echo info("nav datu ,INSERTOSIM");
		$inORup == "INSERT INTO shop (user_id, buy_date, expire_date, service, prev_group) VALUES ('.$user['user_id'].','.time().','.$day_vip.', \'vip\', '.$user['mgroup'].');";
}else{	// ja nav datu INSERT
		echo error("IR DATI UPDATEOSIM");
		$inORup == "UPDATE shop SET expire_date = '.$day_vip.',buy_date='.time().',prev_group='.$user['mgroup'].'  WHERE user_id='.$user['user_id'].';";
}
	$query = $inORup;
	$query .= "UPDATE users SET mgroup=$group WHERE id=$userisd";
		mysqli_multi_query($connect, $query );
}

Domāju ,ka šeit ir kārtējā muļķīgā kļūda ,bet ,kāda es pats nezinu. Varbūt kāds var palīdzēt?

 

Paldies jau iepriekš :)

Link to comment
Share on other sites

Profth3tic
(labots)

Ja datubāzē būs ieraksts jeb, ja pircējs būs nopircis, viņa ID saglabāsies, bet, ja papildinās, tad izveidos vēl vienu ierakstu un līdz ar to pārbaudot vai pirkums nav beidzies tad viņš var izvēlēties to veco datumu un atņemt pirkumu.

 

tāds mērķis ir tai funkcijai. neticu, ka ar UPDATE var izveidot jaunu ierakstu.

Labots - Profth3tic
Link to comment
Share on other sites

Pirmkārt, ja reiz izmanto mysqli, tad arī izmanto mysqli nevis gan mysql, gan mysqli. Otrkārt, "$inORup ==" pieškirot vērtību mainīgajam ir jālieto tikai 1 vienādības zīme, te visdrīzākais, ka arī ir problēma.

Link to comment
Share on other sites

Profth3tic

Nu ok, par to dažādību es pats saprotu, šīs rindas ir tikai pārbaudei. Bet vienādības zīmes neko nedarīja. Iepriekš pieļāvu tādu domu, bet tomēr tā nebija kļūda.

Link to comment
Share on other sites

Profth3tic

šos mainīgos arī biju ieviesis, bet funkcija nestrādāja. laikam vajadzēs pārbaudīt katru no mainīgajiem, bet vai tāpēc rāda baltu lapu?

Link to comment
Share on other sites

Nu ja nerāda errorus, tad visdrīzākais, ka nav ieslēgts display_errors php konfigurācijā.

  • Patīk 2
Link to comment
Share on other sites

Profth3tic
(labots)

Kļūdas bija sintaksē ,jo iepriekš SQL operācijas tika izsauktas masīvā un viņš neatpazina "\"

Šobrīd funkcija papildināta ar mainīgajiem un viss strādā

 

Kods:

function buy(){
	$day_vip = date(strtotime("+2 minutes"));
	$connect = mysqli_connect(db_host, db_user, db_password, db_database);
	$user = userInfo();
	$userid = $user['id'];
	$group = "11";
	$result = mysql_query("SELECT * FROM shop WHERE user_id = $userid") OR DIE(mysql_error());
	$num_rows = mysql_num_rows($result);
	if ($num_rows == 0){	// ja ir dati ,tad UPDATE
		$inORup = "INSERT INTO shop (user_id, buy_date, expire_date, service, prev_group) VALUES (".$user['id'].",".time().",".$day_vip.", 'vip', ".$user['mgroup'].");";
    }else{	// ja nav datu INSERT
		$inORup = "UPDATE shop SET expire_date = ".$day_vip.",buy_date=".time().",WHERE user_id=".$user['id'].";";
    }
	$query = $inORup;
	$query .= "UPDATE users SET mgroup=$group WHERE id=$userid";
	mysqli_multi_query($connect, $query );
}

Paldies par palīdzību :)

 

Lūgums šo tēmu slēgt 

Labots - Profth3tic
Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...