born Posted November 12, 2006 Report Share Posted November 12, 2006 (edited) Tā, atkal jau es. Cerams, ka šoreiz nebūt pareizrakstības kļūdas :D Bet ja godīgi , šodien sāku apgūt mysql kā tādu, so man piedodami. Izveidoju db, no kura nolasa infu un iespeja ari labot. Lūk pie labošanas arī notiek lielie prieki, ka dažreiz izlabo dažreiz nē. Citreiz paņem tikai pirmo simbolu, pēc refreša parāda visu stringu, tad atkal nē... Rakstīju vadoties pēc netā pieejamiem paraugiem, so droši vien ka kods līks, bet nu enivei. Par tiem mysql_free_result($results); saliktajiem neesmu pārliecināts, vai viņiem tur jābūt vai nē :) <a href="?do=print〈=text_lv&page=1">PRINT LV</a> <a href="?do=print〈=text_ru&page=1">PRINT RU</a> <a href="?do=edit〈=text_lv&page=1">EDIT LV</a> <a href="?do=edit〈=text_ru&page=1">EDIT RU</a> <?php require($_SERVER["DOCUMENT_ROOT"]."/blabla/config/db_config.php"); $connection = @mysql_connect($db_host, $db_user, $db_password) or die ("error connect"); mysql_select_db($db_name, $connection); switch ($_GET['do']) { case "edit": echo '<form action="admin.php?do=save〈='.$_GET[lang].'&page='.$_GET .'" method="POST" >'; echo '<textarea name="text" rows="20" cols="50">'; $query = "SELECT $_GET[lang] FROM saturs WHERE page = $_GET "; $results=mysql_query($query, $connection); $text = mysql_fetch_array($results); mysql_free_result($results); echo $text[0]; echo '</textarea><br />'; echo '<input type="submit" value="submit" /></form> '; break; case "print": echo '<div>'; $query= "SELECT $_GET[lang] FROM saturs WHERE page = $_GET "; $results=mysql_query($query, $connection); $text = mysql_fetch_array($results); mysql_free_result($results); echo $text[0]; echo '</div>'; break; case "save": $query= "UPDATE saturs SET $_GET[lang] = $_POST[text] WHERE page = $_GET "; $write=mysql_query($query, $connection); echo '<div>'; $query= "SELECT text_lv FROM saturs WHERE page = 1"; $results=mysql_query($query, $connection); mysql_free_result($results); echo $text[0]; echo '</div>'; break; default: echo '<div>'; $query= "SELECT text_lv FROM saturs WHERE page = 1"; $results=mysql_query($query, $connection); $text = mysql_fetch_array($results); mysql_free_result($results); echo $text[0]; echo '</div>'; break; } ?> Ceram ska var iebraukt problērmā. Edited November 12, 2006 by born Link to comment Share on other sites More sharing options...
andrisp Posted November 12, 2006 Report Share Posted November 12, 2006 (edited) Šī UPDATE saturs SET $_GET[lang] = $_POST[text] WHERE page = $_GET vietā raksti UPDATE `saturs` SET `$_GET[lang]` = '$_POST[text]' WHERE `page` = '$_GET ' Citus kverijus arī līdzīgi izlabo. Tur, kur apdeito int (integer - vesels skaitlis) lauku, obligāti pēdiņās nav vajadzīgas. Tāpat arī visām vērtībām, ko liec datubāzē, vispirms uzrīdi http://lv.php.net/mysql_real_escape_string fju. Paskaties tur best practise piemēru. Edited November 12, 2006 by andrisp Link to comment Share on other sites More sharing options...
born Posted November 12, 2006 Author Report Share Posted November 12, 2006 (edited) Principā man strādā tikai palabojot UPDATE qveriju, bet kad parējos laboju, vis saiet grīztē. Varbūt ātri izstāstīsi ideju vai iemetīsi linku, kur saprotamā un uzskatāmā veidā tas demostrēts? PLUS - ierakstus tabula vaicu 2 valodās - LV & RU, table kolonam uzliku utf8 kodejumu. Un vieta pec UPDATE , kad jauzrada jauna infa - man izmet ārā kaut kādu kjebutu pirmajā momentā (ja es rakstu ar lv vai krievu burtiem) Edited November 12, 2006 by born Link to comment Share on other sites More sharing options...
bubu Posted November 12, 2006 Report Share Posted November 12, 2006 born: Visi tekstuālie/datuma stringi jābūt iekļauti pēdiņās. Tb tie, kuri nāk no php, ieliekot update teikumā, vai select teikumam where daļā. Tb: UDPATE tabule SET xx = "asdasd z zx " WHERE page = "blaa lbaa" un SELECT * FROM tabule WHERE xx = "azz xcasd " Paskaties pats, kas notiks, ja noņemsi pēdiņas - MySQL taču nezinās kura atstarpe pieder datiem, un kura SQL teikumam. UDPATE tabule SET xx = asdasd z zx WHERE page = blaa lbaa Varbūt tu xx laukā gribi ielikt tekstu "asdasd z zx WHERE page = blaa lbaa". Tāpēc arī vajag pēdiņas! Tieši tāpat kā php: $xx = "asdasd z zx"; andrisp: `saturs` un `page` ačgārnās pēdas gan nevajadzēja viņam rādīt. Tikai galvu sajauks. Nav tās nevienam vajadzīgas. Link to comment Share on other sites More sharing options...
andrisp Posted November 12, 2006 Report Share Posted November 12, 2006 (edited) Nu it kā jā, bet galvenais ir atcerēties, ka `` pēdiņas jāizmanto, ja tev tabula vai kollona ir nosaukta kādā no SQL aizņemtajiem vārdiem, piem., date. Edited November 12, 2006 by andrisp Link to comment Share on other sites More sharing options...
Recommended Posts