Wuu Posted September 29, 2008 Report Share Posted September 29, 2008 mysql_query('use '.$db_name.';'); $result = mysql_query('select type from map where X = '.$_GET['x'].' && Y = '.$_GET['y'].' limit 1;'); $r = mysql_fetch_array($result); if (!empty($r[0])) { switch ($r[0]): case 'grass':echo '<a href="#" onclick="ajax_loadContent(\''.$_GET['x'].','.$_GET['y'].'\',\'mapterrain.php?x='.$_GET['x'].'&y='.$_GET['y'].'&flip=1\');return false"><img src=\'style/terrain/grass.gif\'></a>'; break; endswitch; } else { mysql_query('insert into map values('.$_GET['x'].','.$_GET['y'].', "grass", null, 0);'); } Kaut ka lietoju šitādus murgus man jau zb! Nav tur tanī php līdz galam kaut kas izdomāts! Ko man vajag ir apmēram šis $result = mysql_query('select type from map where X = '.$_GET['x'].' && Y = '.$_GET['y'].' limit 1;'); if type nav tukš { } Ka to izdarīt ātrākajā veidā ? Bez nekādiem mysql_fetch_array un citas šņagas! Un tā lai nebūtu errori notice un citas figņu! Kāpēc kaut kāda bernu spēļu serveri mysql ir uztaisīts normālā valodā ,bet php ir šitā liekā figņas... uhh ^_^ Link to comment Share on other sites More sharing options...
bubu Posted September 29, 2008 Report Share Posted September 29, 2008 Nevis php "kautkas nav izdomāts", bet gan tu pats savā kodā neesi kautko izdomājis līdz galam: mysql_query("use $db_name"); $x = mysql_real_escape_string($_GET['x']); $y = mysql_real_escape_string($_GET['y']); $result = mysql_query("select type from map where X = '$x' and Y = '$y' limit 1'); if ($r = mysql_fetch_array($result)) { if ($r[0] == "grass") { echo "<a href blabla..."; } } else { mysql_query("insert into map values('$x', '$y', 'grass', null, 0)"); } Vēl tikai pirms tam vajag pārbaudīt vai isset($_GET['x']) (arī ar 'y') un attiecīgi kautkādu defaulto vērtību iebāzt (vai arī neizpildīt šo kodu) Un izdomā lūdzams topikam sakarīgāku nosaukumu, citādi sagaidīsi vienvirziena ceļu uz Drazu... Link to comment Share on other sites More sharing options...
codez Posted September 29, 2008 Report Share Posted September 29, 2008 Vēl ir tāda lieta kā: http://dev.mysql.com/doc/refman/5.0/en/ins...-duplicate.html P.S. Par ko būs web spēle? Link to comment Share on other sites More sharing options...
Wuu Posted September 29, 2008 Author Report Share Posted September 29, 2008 if ($r = mysql_fetch_array($result)) Tas nozime ka tur jau ir parbaude isempty? Hmm.. ko tur prasit jaizmegina sadu panemienu nebiju redzejis... Tik un ta uzkatu ka php ir biki parmurgots es daudzam lietam redzu labakus coda risinajumus! p.s. nav garumzimes :D Link to comment Share on other sites More sharing options...
andrisp Posted September 29, 2008 Report Share Posted September 29, 2008 Nu, padalies tad ar saviem "labākajiem risinājumiem".. Link to comment Share on other sites More sharing options...
bubu Posted September 29, 2008 Report Share Posted September 29, 2008 Tas nozime ka tur jau ir parbaude isempty? Nē, ne gluži. Ar isempty tur nav nekāda sakara (kas vispār ir isempty?) Kods: if (xxx) ir ekvivalents kodam: if (!!(xxx)) lai arī kas būtu xxx vietā. Ja mysql_fetch_array atgriež NULL (respektīvi selekts nav izselektējis nevienu rindu), tad !!NULL būs vienāds ar false, un if zars neizpildīsies. Bet tiešām - padalies ar tiem "labākiem risinājumiem". Link to comment Share on other sites More sharing options...
Wuu Posted September 29, 2008 Author Report Share Posted September 29, 2008 (edited) scp loop [function web_market_transfer_items] db.query "select itemuid,buyuid from sphere_market where not isnull(buyuid)" for r 0 <eval <db.row.numrows>-1> if <db.row.numrows> uid.<db.row.<dlocal.r>.0>.cont = <uid.<db.row.<dlocal.r>.1>.findlayer.29.uid> uid.<db.row.<dlocal.r>.1>.sysmessage <uid.<db.row.<dlocal.r>.0>.name> delivered. endif end db.query "delete from sphere_market where not isnull(buyuid)" scp query 1 parametram db.query "select itemuid from sphere_market where not isnull(buyuid) limit 1" <db.row.0.0> un viss nekadu lieku figņu! :) <db.row.0.0> ir rezultāts! Edited September 29, 2008 by Wuu Link to comment Share on other sites More sharing options...
bubu Posted September 29, 2008 Report Share Posted September 29, 2008 Nu tikpat labi jau php arī kverija rezultāta pirmās rindas pirmo lauku (ja to dara tavs <db.row.0.0>) var dabūt ar vienu fjas izsaukumu: $res = mysql_query("SELECT blabla"); echo mysql_result($res, 0, 0); un nekādu lieku figņu! Ja godīgi, tad es neredzu, ar ko tavs piemērs ir labāks par prastu php funkciju mysql_query, fetch_row, un tml izsaukšanu (ja nu vienīgi sintaksē ietaupās daži baiti). Idejiski tieši tas pats notiek. Link to comment Share on other sites More sharing options...
andrisp Posted September 29, 2008 Report Share Posted September 29, 2008 C'mon precīzi gandrīz tas pats, tikai sintakse cita. Pat sarežģītāk (imo). Man tagad jautājums - ja tev vajadzētu iekš tā if'a izpildīt katru reizi vēl kādu citu kveriju ? Link to comment Share on other sites More sharing options...
Wuu Posted September 29, 2008 Author Report Share Posted September 29, 2008 (edited) comon php dod errorus visu laiku ,bes empty neiztikt! Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/newweb/mapterrain.php on line 11 if ($r = mysql_fetch_array($result)) Rrrrr... lai butu viss ciki briki un vienu parametru dabūtu ārā kodam jaizkatās šādi! $result = mysql_query('select type from map where X = '.$_GET['x'].' && Y = '.$_GET['y'].' limit 1;'); if (!empty($result)){ $r = mysql_fetch_array($result); if (!empty($r[0])) { echo '<a href="#... } else { mysql_query('insert into map values('.$_GET['x'].','.$_GET['y'].', "ocean", null, 0);'); } } else { mysql_query('insert into map values('.$_GET['x'].','.$_GET['y'].', "ocean", null, 0);'); } Divreiz emty parbaude WTF! Edited September 29, 2008 by Wuu Link to comment Share on other sites More sharing options...
andrisp Posted September 29, 2008 Report Share Posted September 29, 2008 Ja kodā ir kļūda, tad protams, ka rādīs kļūdu. Uztaisi echo mysql_error() pēc mysql_query(), tad redzēsi, kur kļūda. Link to comment Share on other sites More sharing options...
bubu Posted September 29, 2008 Report Share Posted September 29, 2008 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/newweb/mapterrain.php on line 11 Doh.. Šī rindiņa nozīmē tikai to, ka php tev saka, ka tu padot invalīdu handli fetch_array funkcijai. Invalīds handlis rodas tāpēc, ka tavis uzrakstītajā SQL kverijā ir kļūda, tāpēc tas nav izpildīts. PHP tur neko nevar padarīt, ka nemāki SQL kverijus korektus uzraktīt ;) A kur SQL kverijā ir kļūda, to jau tev andrisp pateica kā noskaidrot. Iesācējam mysql kverijus ir vislabāk rakstīt šādā formā: $result = mysql_query("...") or die(mysql_error()); Tad uzreiz redzēsi, ka un kāda ir kļūda. Link to comment Share on other sites More sharing options...
Wuu Posted September 30, 2008 Author Report Share Posted September 30, 2008 (edited) nav tur kļūdas kods strādā! Met āra kļūdu kad $result ir tukš! Un jūs ieteiktais ifs... Ja pirms tam pārbauda ar empty viss ir ok! if ($r = mysql_fetch_array($result)) Edited September 30, 2008 by Wuu Link to comment Share on other sites More sharing options...
andrisp Posted September 30, 2008 Report Share Posted September 30, 2008 Wuu, piedod, bet tu laikam esi idiots, ja saki, ka tur nav kļūda, kaut acīm redzami tur ir kļūda. Pats taču vēl tikko rādīji: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/newweb/mapterrain.php on line 11 Link to comment Share on other sites More sharing options...
bubu Posted September 30, 2008 Report Share Posted September 30, 2008 Wuu: empty jau tieši tev pārbauda - vai nav kļūda, un ja nav, tikai tad tu izpildi mysql_fetch_array. Tāpēc - protams, ka bez empty tas fetch_array izmetīs to Warningu - tāpēc, ka tev ir kļūda kverijā. Uzliec to mysql_error() izvadīšanu, pats redzēsi skaidri un gaiši. Varbūt tev der pamācīties php pamatus kādā iesācēju tutoriālī, citādi izskatās, ka tu nezini, ko pats tur dari. Link to comment Share on other sites More sharing options...
Recommended Posts