﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Веб-программирование / PHP  / PHP проблема / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Wed, 03 Dec 2008 05:26:46 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: PHP проблема</title><link>http://www.relib.com/forums/Topic914042-17-1.aspx</link><description>Тебе поможет функция &lt;SPAN id=pageTitle&gt;mssql_num_rows&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;$r = mssql_query("select * from user_item where char_id='".$top['char_id']."' and item_type='4037'");&lt;BR&gt;if (FALSE !== $r)&lt;BR&gt;{&lt;BR&gt;    if (1 === mssql_num_rows($r))&lt;BR&gt;    {&lt;BR&gt;        // Update&lt;BR&gt;    }&lt;BR&gt;    else&lt;BR&gt;    {&lt;BR&gt;        // Insert&lt;BR&gt;    }&lt;BR&gt;}&lt;/SPAN&gt;</description><pubDate>Wed, 13 Jun 2007 13:07:03 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: PHP проблема</title><link>http://www.relib.com/forums/Topic914042-17-1.aspx</link><description>Я немного переписал скрипт и получилось вот это. Незнаю как на php делать result&lt;P&gt;&amp;lt;?&lt;BR&gt;If ($_GET['smsnumber']==1111)&lt;BR&gt;{&lt;BR&gt;$coin=1;&lt;BR&gt;}&lt;BR&gt;Elseif ($_GET['smsnumber']==2222)&lt;BR&gt;{&lt;BR&gt;$coin=2;&lt;BR&gt;}&lt;BR&gt;Elseif ($_GET['smsnumber']==3333)&lt;BR&gt;{&lt;BR&gt;$coin=3;&lt;BR&gt;}&lt;BR&gt;mssql_connect ("", "sa", "") or die ('MySQL connect failed');&lt;BR&gt;mssql_select_db("lin2world") or die('Cannot connect to database');&lt;BR&gt;$sql = mssql_query("select * from user_data where char_name='".$_GET['nick']."'") or die ("Query failed");&lt;BR&gt;while ($top = mssql_fetch_array($sql)) {&lt;BR&gt;$ggg = mssql_query("select * from user_item where char_id='".$top['char_id']."' and item_type='4037'") or die ("Query failed");&lt;BR&gt;while ($fff = mssql_fetch_array($ggg)) {&lt;BR&gt;&lt;FONT color=#ff1111&gt;If (mssql_result($ggg)=True)&lt;BR&gt;&lt;/FONT&gt;{&lt;BR&gt;echo "Сейчас сделаем Update запрос";&lt;BR&gt;}&lt;BR&gt;Elseif (&lt;FONT color=#ff1111&gt;mssql_result($ggg)=False&lt;/FONT&gt;)&lt;BR&gt;{&lt;BR&gt;echo "Cейчас сделаем insert запрос";&lt;BR&gt;}  &lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;?&amp;gt;&lt;BR&gt;</description><pubDate>Wed, 13 Jun 2007 12:41:39 GMT</pubDate><dc:creator>Alamat</dc:creator></item><item><title>RE: PHP проблема</title><link>http://www.relib.com/forums/Topic914042-17-1.aspx</link><description>В запросе есть ошибки. Я забыл закрыть скобку и в INSERTе по-моему не хватает кавычек. Изменения выделены красным.&lt;/P&gt;&lt;P&gt;mssql_query("IF EXISTS (SELECT * FROM user_item WHERE char_id='".$top['char_id']."' AND item_type='4037'&lt;FONT color=#ff1111&gt;&lt;STRONG&gt;)&lt;/STRONG&gt;&lt;/FONT&gt;"." UPDATE user_item SET amount='".$account."' WHERE char_id='".$top['char_id']."' AND item_type='4037'"." ELSE "." INSERT INTO user_item (char_id,item_type,amount) VALUES (&lt;STRONG&gt;&lt;FONT color=#ff1111&gt;'&lt;/FONT&gt;&lt;/STRONG&gt;".$top['char_id']."&lt;STRONG&gt;&lt;FONT color=#ff1111&gt;'&lt;/FONT&gt;&lt;/STRONG&gt;,&lt;STRONG&gt;&lt;FONT color=#ff1111&gt;'&lt;/FONT&gt;&lt;/STRONG&gt;4037&lt;STRONG&gt;&lt;FONT color=#ff1111&gt;'&lt;/FONT&gt;&lt;/STRONG&gt;,&lt;STRONG&gt;&lt;FONT color=#ff1111&gt;'&lt;/FONT&gt;&lt;/STRONG&gt;".$account."&lt;STRONG&gt;&lt;FONT color=#ff1111&gt;'&lt;/FONT&gt;&lt;/STRONG&gt;)");&lt;/P&gt;&lt;P&gt;Обрати внимание что результат mssql_query не нужно запонимать, потому что он все равно пустой.&lt;/P&gt;&lt;P&gt;Вообще в таких случаях помогает распечатка запроса. Так проще визуально выделить ошибки.</description><pubDate>Wed, 13 Jun 2007 12:07:47 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: PHP проблема</title><link>http://www.relib.com/forums/Topic914042-17-1.aspx</link><description>Может я что-то не так пишу, но у меня выдает ошибку вот такую:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Warning&lt;/STRONG&gt;: mssql_fetch_array(): supplied argument is not a valid MS SQL-result resource in &lt;B&gt;C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\coinofluck.php&lt;/B&gt; on line &lt;B&gt;18&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;?&lt;BR&gt;If ($_GET['smsnumber']==1111)&lt;BR&gt;{&lt;BR&gt;$coin=1;&lt;BR&gt;}&lt;BR&gt;Elseif ($_GET['smsnumber']==2222)&lt;BR&gt;{&lt;BR&gt;$coin=2;&lt;BR&gt;}&lt;BR&gt;Elseif ($_GET['smsnumber']==3333)&lt;BR&gt;{&lt;BR&gt;$coin=3;&lt;BR&gt;}&lt;BR&gt;mssql_connect ("", "sa", "") or die ('MySQL connect failed');&lt;BR&gt;mssql_select_db("lin2world") or die('Cannot connect to database');&lt;BR&gt;$sql = mssql_query("select * from user_data where char_name='".$_GET['nick']."'") or die ("Query failed");&lt;BR&gt;while ($top = mssql_fetch_array($sql)) {&lt;BR&gt;while ($vvv = mssql_fetch_array($ddd)) {&lt;BR&gt;$account=$vvv['amount']+$coin;&lt;BR&gt;$ddd = mssql_query("IF EXISTS (SELECT * FROM user_item WHERE char_id='".$top['char_id']."' AND item_type='4037'"." update user_item set amount='".$account."' where char_id='".$top['char_id']."' and item_type='4037'"." ELSE "." INSERT INTO user_item (char_id,item_type,amount) VALUES (".$top['char_id'].",4037,".$account.")");&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;?&amp;gt;&lt;BR&gt;</description><pubDate>Wed, 13 Jun 2007 11:32:10 GMT</pubDate><dc:creator>Alamat</dc:creator></item><item><title>RE: PHP проблема</title><link>http://www.relib.com/forums/Topic914042-17-1.aspx</link><description>Раз у тебя MS SQL Server, то все можно сделать в одном запросе&lt;/P&gt;&lt;P&gt;mssql_query(&lt;BR&gt;    "IF EXISTS (SELECT * FROM user_item WHERE char_id='".$top['char_id']."' AND item_type='4037'".&lt;BR&gt;    "    UPDATE user_item SET ....".&lt;BR&gt;    " ELSE ".&lt;BR&gt;    " INSERT .... "&lt;BR&gt;);&lt;/P&gt;&lt;P&gt;Кроме того зря ты подключаешься к базе как администратор. Это очень опасно. Особенно с учетом того что в твоем коде нет проверки вводимых пользователем данных и твой код уязвим для SQL Injection атак.</description><pubDate>Wed, 13 Jun 2007 11:10:00 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>PHP проблема</title><link>http://www.relib.com/forums/Topic914042-17-1.aspx</link><description>Здравствуйте. У меня проблема. Как сделать проверку &lt;/P&gt;&lt;P&gt;Если в таблице user_item с char_id=$top['char_id'] есть item_type='4037'&lt;/P&gt;&lt;P&gt;то он делает апдейт запрос, а если нету то делает инсерт. Подскажите Пожалуйста.&lt;/P&gt;&lt;P&gt;&amp;lt;?&lt;BR&gt;If ($_GET['smsnumber']==1111)&lt;BR&gt;{&lt;BR&gt;$coin=1;&lt;BR&gt;}&lt;BR&gt;Elseif ($_GET['smsnumber']==2222)&lt;BR&gt;{&lt;BR&gt;$coin=2;&lt;BR&gt;}&lt;BR&gt;Elseif ($_GET['smsnumber']==3333)&lt;BR&gt;{&lt;BR&gt;$coin=3;&lt;BR&gt;}&lt;BR&gt;mssql_connect ("", "sa", "") or die ('MySQL connect failed');&lt;BR&gt;mssql_select_db("lin2world") or die('Cannot connect to database');&lt;BR&gt;$sql = mssql_query("select * from user_data where char_name='".$_GET['nick']."'") or die ("Query failed");&lt;BR&gt;while ($top = mssql_fetch_array($sql)) {&lt;/P&gt;&lt;P&gt;$ddd = mssql_query("select * from user_item where char_id='".$top['char_id']."' and item_type='4037'") or die ("Query failed");&lt;BR&gt;while ($vvv = mssql_fetch_array($ddd)) {&lt;BR&gt;$account=$vvv['amount']+$coin;&lt;BR&gt;$ttt = mssql_query("update user_item set amount='".$account."' where char_id='".$top['char_id']."' and item_type='4037'") or die ("Query failed");&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;?&amp;gt;&lt;BR&gt;</description><pubDate>Wed, 13 Jun 2007 10:43:07 GMT</pubDate><dc:creator>Alamat</dc:creator></item></channel></rss>