Помощ с sql заявка

webdeveloper

Registered
Здравейте туристи, ще може ли малко помощ с една sql заявка?

Идеята е следната:
Провери полетата GameID1, GameID2, GameID3, GameID4 и GameID5 от таблица AccountCharacter за съвпадение с $char и след това изпиши номера на GameID-то в което има съвпадение.

Как ще стане заявката?
 
Ами ако са в една таблица. Можеш да направиш следната саявка:

SELECT GameID1, GameID2, GameID3, GameID4, GameID5 FROM AccountCharacter WHERE GameID1 = '$char' OR GameID2 = '$char' OR GameID3 = '$char' OR GameID4 = '$char' OR GameID5 = '$char' LIMIT 1

Това ще ти върне всички GameID-та от даден ред ако има съвпадение.
Но за да намериш точното трябва да го обработиш малко и с php:

$executed_query = mysql_query(горната заявка); /*изпълняваш заявката*/

$row = mysql_fetch_assoc($executed_query); /*Тук не е нужно да се ползва while цикъл тъй като имаме само един ред! */

if( count( $row ) > 0 ) /*тук проверяваме дали заявката ни е върнала нещо или е празна. Ако е празна не продължава*/
foreach( $row as $key=>$value ){ /*Тъй като имаме като резултат масив почваме да го обхождаме по елемент т.е. елемнтите ти тук са с ключове GameID1 , GameID2 и т.н. */
if( $value == $char )
echo $key; /*Когато срщне съвшадение присвояваш на променлива или каквото си решиш :) */
}


Надявам се да ти свърши работа!
Ако някой има по-просто решение нека да помогне! Това е което аз измислих набързо :)
 
Аз сам от даркстеам ... просто ти трябва ето това :
Код:
mssql_query("Delete From AccountCharacter Where GameID1='$char' and Id='$_SESSION[user]' or GameID2='$char' and Id='$_SESSION[user]' or GameID3='$char' and Id='$_SESSION[user]' or GameID4='$char' and Id='$_SESSION[user]' or GameID5='$char  and Id='$_SESSION[user]'");
 
$query = mysql_query("SELECT * FROM AccountCharacter WHERE MATCH(GameID1,GameID2,GameID3,GameID4) AGAINST ('$char')")or die(mysql_error());
if (mysql_num_rows($query) > 0) {
while ($row = mysql_fetch_assoc($query)) {
print_r($row)."<br />";
}
}
else { echo "Няма намерени резултати!"; }
 
Replace каза:
$query = mysql_query("SELECT * FROM AccountCharacter WHERE MATCH(GameID1,GameID2,GameID3,GameID4) AGAINST ('$char')")or die(mysql_error());
if (mysql_num_rows($query) > 0) {
while ($row = mysql_fetch_assoc($query)) {
print_r($row)."<br />";
}
}
else { echo "Няма намерени резултати!"; }


И сега след като съм изкарал името на полето в което е нужния запис, така ли трябва да стане заявката:

mssql_query("UPDATE AccountCharacter SET $row=0 WHERE $row='$char''");
 
Ох, нервите ме хващат вече...

Ето го кода моля ви ако можете помогнете:

Код:
<?
if(!isset($_POST['delete'])){
$run = mssql_query("Select Name From Character Where AccountID='".$_SESSION['user']."'");

for($i=0; $i < mssql_num_rows($run);$i++){
$r = mssql_fetch_array($run);
$go = mssql_query("Select * From Character Where Name='".$r['Name']."'");
$check = mssql_num_rows($go);

if($check != 0){
$nr = mssql_fetch_array($go);


?>
<div style="width:100%; height:1px; background-color:#000;"></div>
<center><form action="" method="post">
<br><br>Искаш ли да изтриеш твоя играч (<font color="green"><b><? echo $nr['Name'] ?></b></font>)?<br><br>
<input type="hidden" value="<? echo $r['Name']; ?>" name="char" />
<input type="submit" value="Изтрий" name="delete" /><br><br><br>
</form></center>

<?
}
}
}
else
{
$char = (htmlspecialchars(addslashes($_POST['char'])));
$char = str_replace("shutdown", "", $char);
$char = str_replace("drop", "", $char);
$char = str_replace("-", "", $char);
$char = str_replace(";", "", $char);
$user = (htmlspecialchars(addslashes($_SESSION['user'])));

$check_acc = mssql_fetch_row(mssql_query("Select count From Character Where AccountID='$user' and Name='$char'"));

if($check_acc[0] != 0){
$go = mssql_query("Select * From Character Where Name='".$char."'");
$check = mssql_num_rows($go);
if($check != 0){
$stat = mssql_fetch_row(mssql_query("Select ConnectStat From MEMB_STAT Where memb___id='$user'"));

if($stat[0] == 0){

$r = mssql_fetch_array($go);
$pname = $r['Name'];

if($r['Name'] == NULL){
echo "<center><b>ГРЕШКА! Такъв герой не съществува!</b></center>";
}

else
{

mssql_query("Delete From AccountCharacter Where GameID1='$char' or GameID2='$char' or GameID3='$char' or GameID4='$char' or GameID5='$char'"); 
mssql_query("Delete From Character Where Name='$char'");

echo "<center><b>Ти успешно изтри своя герой!</b></center>";
}
}
else
{
echo "<center><b>Твоят акаунт е в игра! Моля излезте от сървъра!</b></center>";
}
}
}
else
{
echo "<center><b>Не се опитвай да хакваш, NOOB!</b></center>";
}
}
?>
 

Back
Горе