Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: sql запрос вместе с php
 
 автор: mutator   (28.02.2009 в 00:49)   письмо автору
 
 

вообщем писал код и наткнулся на проблему, надо зделать так что если введёная информация не отличается от информации хронящейся в базу то он не добавляет если чтото изменилось то кидает update вот что я п\надумал но в чёмто ошибся
$sqlupdate = "UPDATE users SET
              ".if(."$_POST['login']". != $myrowu['login']){."'login' = $_POST['login']".}.",
              ".if(."$_POST['pass']". != $myrowu['passwords']){."'passwords' = $_POST['pass']".}.",
              ".if(."$_POST['name']". != $myrowu['name']){."'name' = $_POST['name']".}.",
              ".if(."$_POST['sename']". != $myrowu['sename']){."'sename' = $_POST['sename']".}.",
              ".if(."$_POST['email']". != $myrowu['email']){."'email' = $_POST['email']".}." WHERE id=".$_POST['id']."";

  Ответить  
 
 автор: mutator   (28.02.2009 в 07:20)   письмо автору
 
   для: mutator   (28.02.2009 в 00:49)
 

Может подксажите как-то по другому организовать?

  Ответить  
 
 автор: а-я   (28.02.2009 в 07:25)   письмо автору
 
   для: mutator   (28.02.2009 в 07:20)
 

если в поле записана запись и запрос пытается переписать на такую же, то новой записи не будет... останется старая.
и даже если она переписывала старые записи, то зачем проверять?
все равно одна и та же запись будет.

или я Вас не так понял.

  Ответить  
 
 автор: mutator   (28.02.2009 в 07:33)   письмо автору
 
   для: а-я   (28.02.2009 в 07:25)
 

мне надо чтоб были записи именно те которые сменились, но я догадался как это организовать

if($_POST['login'] != $myrowu['login']){mysql_query("UPDATE users SET `login`=".$_POST['login'] .",$dbcnx); }

ну и так остальные зделать.

P.s. Извените что отвлёк
P.s.sа-я спасибо что навёл на мысль.

  Ответить  
 
 автор: mutator   (28.02.2009 в 11:17)   письмо автору
 
   для: mutator   (28.02.2009 в 07:33)
 

Чёт неполучился мой метод, или вообще в коде ошибка, вообщем смотрите код токо он не дописан, мне надо чтоб UPDATE срабатывало остальное я сам допишу
<?php include ('include/lang.php');
include (
'include/config.php'); ?>
<html>
<head><title><?php print $wrich[4];?></title>
</head>
<body>
<?php
 session_start
();
 if(isset(
$_SESSION['auth'])==1){
    
$sql ="SELECT id FROM users WHERE login='".$_SESSION['login']."'";
    
$myrowusers mysql_query("SELECT * FROM users WHERE login='".$_SESSION['login']."'",$dbcnx);
    
$myrowu mysql_fetch_array($myrowusers);

  
$nme mysql_query($sql,$dbcnx);
    if(!
$nme)    {
      echo 
mysql_error();
      print 
$wrich[13];
      exit();
    }

             print 
"<form metod=post>
 <inpet type=hidder name=id value="
.$myrowu['id'].">
 <input type=text name=login value="
.$myrowu['login'].">".$wrich[7]."<br />
 <input type=password name-pass value="
.$myrowu['passwords'].">".$wrich[8]."  <br />
 <input type=password name=pass_again value="
.$myrowu['passwords'].">".$wrich[25]."<br />
 <input type=text name=name value="
.$myrowu['name'].">".$wrich[26]."<br />
 <input type=text name=sename value="
.$myrowu['sename'].">".$wrich[27]."<br />
 <input type=text name=email value="
.$myrowu['email'].">e-mail <br />
 <input type=checkbox name=hystory value=1>"
.$wrich[31]."<br />
 <input type=checkbox name=algebra value=1>"
.$wrich[32]."<br />
 <input type=checkbox name=russian value=1>"
.$wrich[33]."<br />
 <input type=checkbox name=literature value=1>"
.$wrich[34]."<br />
 <input type=checkbox name=chemistry value=1>"
.$wrich[35]."<br />
 <input type=checkbox name=physics value=1>"
.$wrich[36]."<br />
 <input type=checkbox name=inglish value=1>"
.$wrich[37]." <br />
 <input type=checkbox name=geometry value=1>"
.$wrich[38]."<br />
 <input type=checkbox name=biology value=1>"
.$wrich[39]." <br />
 <input type=checkbox name=physical_culture value=1>"
.$wrich[40]." <br />
 <input type=checkbox name=social_science value=1>"
.$wrich[41]." <br />
 <input type=checkbox name=world_history value=1>"
.$wrich[42]." <br />
 <input type=checkbox name=computer_science value=1>"
.$wrich[43]." <br />
 <input type=checkbox name=plotting value=1>"
.$wrich[44]."<br />
 <input type=checkbox name=economy value=1>"
.$wrich[45]."<br />
 <input type=checkbox name=geography value=1>"
.$wrich[46]."<br />
 <input type=checkbox name=OBJ value=1>"
.$wrich[47]."<br />
 <input type=checkbox name=right value=1>"
.$wrich[48]."<br />
 <input type=checkbox name=mkx value=1>"
.$wrich[49]."<br />
 <input type=checkbox name=technology value=1>"
.$wrich[50]."<br />
 <input type=checkbox name=drawing value=1>"
.$wrich[51]."<br />
 <input type=submit name=submit value="
.$wrich[52].">
 </form>"
;


   
$_POST['login'] = trim($_POST['login']);
   
$_POST['pass'] = trim($_POST['pass']);
   
$_POST['pass_again'] = rtim($_POST['pass_again']);

   if(empty(
$_POST['login'])) exit();
   if(empty(
$_POST['name'])) exit($wrich[20]);
   if(empty(
$_POST['pass'])) exit($wrich[21]);
   if(empty(
$_POST['pass_again'])) exit($wrich[21]);
   if(
$_POST['pass'] != $_POST['pass_again']) exit($wrich[22]);
   if(!empty(
$_POST['email']))
   {
    if(!
preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i"$_POST['email']))
     {
       exit(
$wrich[23]);
     }
   }
  
/////

  
if($_POST['login'] != $myrowu['login']){
  
mysql_query("UPDATE users SET `login`=".$_POST['login']." WHERE id=".$_POST['id']."",$dbcnx);
  }


  if(
$_POST['pass'] != $myrowu['passwords']){
    
mysql_query("UPDATE users SET `passwords`=".$_POST['pass']." WHERE id=".$_POST['id']."",$dbcnx);
   }

  if(
$_POST['name'] != $myrowu['name']){
      
mysql_query("UPDATE users SET `name`=".$_POST['name']." WHERE id=".$_POST['id']."",$dbcnx);
  }

  if(
$_POST['sename'] != $myrowu['sename']){
     
mysql_query("UPDATE users SET `sename`=".$_POST['sename']." WHERE id=".$_POST['id']."",$dbcnx);
  }

  if(
$_POST['email'] != $myrowu['email']){
      
mysql_query("UPDATE users SET `email`=".$_POST['email']." WHERE id=".$_POST['id']."",$dbcnx);
  }



 
$login mysql_escape_string($_POST['login']);
  
$qwe "SELECT id FROM lessens WHERE id=".$_POST['id']."";
  
$quer mysql_query($qwe,$dbcnx);
  
$num mysql_num_rows($quer);
   if(
$num == 0){
   
//$sqlinsert = "INSERT INTO lessens VALUES (



        
}





         }
        else{ print 
"<a href=index.php>&#192;&#226;&#242;&#238;&#240;&#232;&#231;&#232;&#240;&#243;&#233;&#242;&#229;&#241;&#252;</a>";}

   
?>


</body>
</html>

  Ответить  
 
 автор: Slo_Nik   (28.02.2009 в 15:51)   письмо автору
 
   для: mutator   (28.02.2009 в 11:17)
 

а зачем ты сначала присвоил $sql запрос, а потом опять пишешь тот же запрос?
напиши
$myrowusers = mysql_query($sql);

и потом ты каждый раз проверяешь какую то одну переменную и делаешь запрос на обновление именно этой переменной.
сделай один запрос и подставь все поля, которые ты будешь обновлять с указанием значений.
примерно
mysql_query("UPDATE users SET `login`=".$_POST['login']." ,`name`=".$_POST['name']." , и т.д WHERE id=".$_POST['id']."",$dbcnx);

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования