sanzhs Posted September 27, 2007 Report Share Posted September 27, 2007 (edited) Sveiki! Man ir šāda problēma. Ir pāris rindiņas, kas dzēš ierakstu no db, bet lieta tāda - lūk kods if (isset($_GET["www"]) == "dzest"); { $c = mysql_connect('localhost','','') or die('ERROR: ' . mysql_error()); mysql_select_db('www_izmainas') or die('ERROR'); $id = $_GET["id"]; //šī ir 48. rindiņa! mysql_query("DELETE FROM `www` WHERE `www`.`id` = \"$id\" LIMIT 1;"); } Visu laiku ekrānā lec errors: "Notice: Undefined index: id in c:\la laa ... \f-ijas.php on line 48" Bet - kods izpildās, ieraksts tiek izdzēsts. Ja 48. rindiņu izlabo uz $id = isset($_GET["id"]); tad errors netiek izmests, bet kods neizpildās. Links ir ~ tāds inex.php?www=dzest&id=3 Man prātā stāv variants, ka gadījumā ar isset() $id vērtība ir id, bet savukārt bez isset() tā ir reāli tāda, kāda linkā. Vienvārdsakot - Kas tas par gļuku? Kā risināt? Edited September 27, 2007 by sanzhs Link to comment Share on other sites More sharing options...
bubu Posted September 27, 2007 Report Share Posted September 27, 2007 Vai tik tev vienkārši nav uzlikts register_globals=On, un 48 rindiņa vispār "nav vajadzīga"? Link to comment Share on other sites More sharing options...
sanzhs Posted September 27, 2007 Author Report Share Posted September 27, 2007 register_globals ir Off Un, hmm, pēc idejas tā rindiņa ir vajadzīga, nē nu jā - var jau likt pa taisno iekš nākamās, kur ir tas $id. Varbūt nepareizi sapratu. Link to comment Share on other sites More sharing options...
john.brown Posted September 27, 2007 Report Share Posted September 27, 2007 (edited) bubu, vai tad register_globals pie viena iztīra $_GET, $_POST un $_REQUEST masīvus? Takšu tak nē... sanzhs, kas tev šitās par konstrukcijām ir: if (isset($_GET["www"]) == "dzest"); un $id = isset($_GET["id"]);? isset() atgriež boolean vērtību true/false, tā ka nekāda salīdzināšana/piešķiršana ar viņām nesanāks... Edited September 27, 2007 by john.brown Link to comment Share on other sites More sharing options...
sanzhs Posted September 27, 2007 Author Report Share Posted September 27, 2007 if (isset($_GET["www"]) == "dzest"); Aizguvu vienkārši no if(isset($_GET["www"])); - lietoju kā satura atlasītāju, nu tipa index.php?www tad lapas satur ir bla bla utt. Bez isset() nestrādā. $id = isset($_GET["id"]); - Šo vienkārši variējot pamēģināju, jo citādi ir tas errors, nu un jā - gandrīz pareizi sapratu - te netiek padota skaitliska $id vērtība. Ko darīt? Link to comment Share on other sites More sharing options...
john.brown Posted September 27, 2007 Report Share Posted September 27, 2007 Šāda konstrukcija nedara neko: if (isset($_GET["www"]) == "dzest"); { ... } Tas, kas ir figūriekavās, izpildās vienmēr! Pareizi būs: if(isset($_GET['www']) && $_GET['www'] == 'dzest') { ... } Jūti atšķirību? Par to id, uztaisi var_dump($_GET), un paskaties, kas tev tur ir, izprintē queriju, apskati, vai ir, kā vajag... Link to comment Share on other sites More sharing options...
sanzhs Posted September 27, 2007 Author Report Share Posted September 27, 2007 Sasodīts, es to ; nebiju pamanījis. Stulbs var palikt. Paldies! if(isset($_GET["www"]) && $_GET["www"] == "dzest") { $c = mysql_connect('localhost','root','') or die('ERROR: ' . mysql_error()); mysql_select_db('www_izmainas') or die('ERROR'); $id = $_GET['id']; mysql_query("DELETE FROM `www` WHERE `www`.`id` = \"$id\" LIMIT 1;"); } Viss iet, nav erroru! :) Link to comment Share on other sites More sharing options...
marcis Posted September 28, 2007 Report Share Posted September 28, 2007 turklāt, ja tev konekts ir nodefinēts kā mainīgais c, tad arī pie datubāzes selekta un kverija derētu likt šo mainīgo Link to comment Share on other sites More sharing options...
andrisp Posted September 28, 2007 Report Share Posted September 28, 2007 marcis, dodu 99.9%, ka cilvēkam nevajadzēs vienā skriptā strādāt ar divām mysql db (tātad var iztikt bez handlu norādīšanas). :) Link to comment Share on other sites More sharing options...
marcis Posted September 28, 2007 Report Share Posted September 28, 2007 tad kādēļ konektu norādīt mainīgajā? Link to comment Share on other sites More sharing options...
bubu Posted September 28, 2007 Report Share Posted September 28, 2007 Ja tev ir divas konekcijas uz diviem dažādiem serveriem. Tad ar šo konektu tu norādītu uz kura servera izpildīt kuru kveriju. Link to comment Share on other sites More sharing options...
andrisp Posted September 28, 2007 Report Share Posted September 28, 2007 tad kādēļ konektu norādīt mainīgajā? Tāpēc, ka cilvēks visticamāk vienkārši iekopēja to kodu no php.net vai citurienes. Link to comment Share on other sites More sharing options...
Recommended Posts