Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
нужно либо его передавать, либо проверять его наличие
isset($_GET['id'])  
 

 
как это сделать?

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 22:51 18-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
как это сделать?

if (isset($_GET['id'])) {
// выполняем код
} else {
// иначе делаем что то еще
}
 
но вам нужно просто исправить код формы

Цитата:
<form action="<?php echo $_SERVER['PHP_SELF'] . '?id=' . $actor_id; ?>" method="post">

Всего записей: 15096 | Зарегистр. 20-09-2014 | Отправлено: 22:58 18-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

не работает
 

Код:
 
<?php
 
require_once("connetti.php");
 
$actor_id = $_GET["id"];
//......immagino che l'id tu lo trasmetta tramite get: $id=_GET['id'];
$query = mysql_query("SELECT * FROM actor  WHERE actor_id=" .  (int)$actor_id) or die ("Error in query: " . mysql_error());  
$row = mysql_fetch_array ($query);
 
$nome=$row['nome'];
$performer_aka=$row['performer_aka'];
?>
 
 
<form action="<?php echo $_SERVER['PHP_SELF'] . '?id=' . $actor_id; ?>" method="post">  
Nome  
  <input name="nome" type="text" id="nome" value="<?php echo $nome;?>"><br />
Performer Aka  
<textarea name="performer_aka" id="performer_aka"><?php echo $performer_aka;?></textarea><br />
<input name="modifica" type="submit" id="modifica" value="modifica">
</form>
<?php
 
if (isset($_POST['modifica']))
{
 include "connetti.php";
    $query = mysql_select_db("xxx", $db);
    if ($query)
        {
 
    $nome=$_POST['nome'];
    $performer_aka=$_POST['performer_aka'];
    
    $query=mysql_query("UPDATE actor SET nome='".$_POST['nome']."', performer_aka='".$_POST['performer_aka']." WHERE actor_id=". $actor_id);
 
$risultato=mysql_query($query);
 
            if($risultato) echo "<h2>Congratulazioni! Dati inseriti.</h2>";
                else echo "<h2>Attenzione! Dati non inseriti!</h2>";
            
    } else echo "<h2>Errore! Database non selezionato.</h2>";
    
    
}
 
echo "SELECT * FROM actor  WHERE actor_id=". $actor_id;
 
 
 
print_r($_GET)  
 
    ?>
    
    
 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:09 18-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
не работает

что именно не работает??

Цитата:
echo "SELECT * FROM actor  WHERE actor_id=". $actor_id; 
print_r($_GET)  

 
это нужно только на момент отладки, более того, нет точки с запятой после print_r

Всего записей: 15096 | Зарегистр. 20-09-2014 | Отправлено: 23:11 18-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
после вставки "performer_aka"
 
Внимание! Данные не введены!
 

Код:
 
 
Attenzione! Dati non inseriti!
SELECT * FROM actor WHERE actor_id=40Array ( [id] => 40 )  
 

 
но поле пустое

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:24 18-09-2019 | Исправлено: zagorisback, 23:24 18-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
после вставки "performer_aka"

делаете аналогично - выводите второй запрос и смотрите что он из себя представляет

Цитата:
"UPDATE actor SET nome='".$_POST['nome']."', performer_aka='".$_POST['performer_aka']." WHERE actor_id=". $actor_id

 

Всего записей: 15096 | Зарегистр. 20-09-2014 | Отправлено: 23:27 18-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
 
echo "SELECT * FROM actor  WHERE actor_id=". $actor_id;  
print_r($_GET)
 
    ?>
    
<?php echo     $performer_aka ?>
 

 
Я вошел в Mavrikii
 
но в карточке пусто
 
результат
 

Код:
Attenzione! Dati non inseriti!
SELECT * FROM actor WHERE actor_id=40Array ( [id] => 40 ) Mavrikii

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:41 18-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
честно, вы начинаете утомлять. я вам пишу что нужно сделать, вы же этого не делаете -какой смысл тогда в  диалоге?
сказал - посмотреть что получается в
Цитата:
"UPDATE actor SET nome='".$_POST['nome']."', performer_aka='".$_POST['performer_aka']." WHERE actor_id=". $actor_id

и смотреть это при POST запросе, до mysql_query при POST  
 

Цитата:
if (isset($_POST['modifica']))
{
 include "connetti.php";
    $query = mysql_select_db("xxx", $db);

выделенная часть не нужна, так как вы уже подключаете файл выше

Цитата:
<?php
 
require_once("connetti.php");

 
и какой смысл в определении переменных

Цитата:
 $nome=$_POST['nome'];
    $performer_aka=$_POST['performer_aka'];

если вы их не используете?
 

Всего записей: 15096 | Зарегистр. 20-09-2014 | Отправлено: 23:46 18-09-2019 | Исправлено: Mavrikii, 23:47 18-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
обновлять на phpmyadmin
 
вот запрос
 

Код:
 
$sql = "UPDATE `actor` SET `performer_aka` = \'TEST\' WHERE `actor`.`actor_id` = 40";
 

 
Добавлено:
Mavrikii Вы знаете решение, почему бы не вставить весь полный код, чтобы я понял, где я не прав.
Так что мы ничего не решаем

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:47 18-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
решил проблему,
все работает сейчас
спасибо Mavrikii за вашу помощь
 
Добавлено:
Я должен вставить в форму поле типа ENUM (называется состояние, в котором хранятся значения)
как это сделать в форме и в коде?
 
I should insert in the form an ENUM type field (called status in which values are stored)
how to do it in the form and in the code?
 

 
 
вот полный код работа
 

Код:
 
<?php
 
require_once("connetti.php");
 
$actor_id = $_GET["id"];
//......immagino che l'id tu lo trasmetta tramite get: $id=_GET['id'];
$query = mysql_query("SELECT * FROM actor  WHERE actor_id=" .  (int)$actor_id) or die ("Error in query: " . mysql_error());  
$row = mysql_fetch_array ($query);
 
$nome=$row['nome'];
$performer_aka=$row['performer_aka'];
$website=$row['website'];
?>
 
 
<form action="<?php echo $_SERVER['PHP_SELF'] . '?id=' . $actor_id; ?>" method="post">  
 
Nome: <input name="nome" type="text" id="nome" value="<?php echo $nome;?>"><br />
<br>
Performer Aka: <textarea name="performer_aka" id="performer_aka"><?php echo $performer_aka;?></textarea><br />
<br>
Website: <textarea name="website" id="website"><?php echo $website;?></textarea><br />
<center><input name="modifica" type="submit" id="modifica" value="modifica"></center>
 
</form>
<?php
 
if (isset($_POST['modifica']))
{
 //include "connetti.php";
    //$query = mysql_select_db("xxx", $db);
    if ($query)
        {
 
    $nome=$_POST['nome'];
    $performer_aka=$_POST['performer_aka'];
    $website=$row['website'];
    
    $query=mysql_query("UPDATE actor SET  
    nome='".$_POST['nome']."',  
    performer_aka='".$_POST['performer_aka']."',  
    website='".$_POST['website']."'
    WHERE actor_id=". $actor_id);
 
 
 
            if($query) echo "<h2>Congratulazioni! Dati inseriti.</h2>";
                else echo "<h2>Attenzione! Dati non inseriti!</h2>";
            
    } else echo "<h2>Errore! Database non selezionato.</h2>";
    
    
}
 
echo "SELECT * FROM actor  WHERE actor_id=". $actor_id . "<br>";  
 
 
print_r($_GET)
 
    ?>
    
    <br>
    
<?php    echo "UPDATE actor SET nome='".$_POST['nome']."', performer_aka='".$_POST['performer_aka']."' WHERE actor_id=". $actor_id ?>
    
    
 
 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 13:33 19-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня есть этот код
 
проблема в том, что если я ввожу пустое значение, он возвращает «0000-00-00»
 
как установить значение NULL
 
ps: в базе данных и установить NULL по умолчанию
 
 
I have this code
 
the problem is that if I enter an empty value it returns "0000-00-00"
 
how to set the NULL value
 
ps: in the database and set NULL by default
 

Код:
<input name="died" type="date" size="10" maxlength="10" id="died" value="<?php echo $died;?>">

 
 

Код:
 
<?php
 
 
if (isset($_POST['modifica']))
{
 //include "connetti.php";
    //$query = mysql_select_db("xxx", $db);
    if ($query)
        {
 
    $nome=$_POST['nome'];
    $performer_aka=$_POST['performer_aka'];
    $website=$_POST['website'];
    $career_status=$_POST['career_status'];
    $birthday=$_POST['birthday'];
    $died=$_POST['died'];
    
    $query=mysql_query("UPDATE actor SET  
    nome='".$_POST['nome']."',  
    performer_aka='".$_POST['performer_aka']."',
    website='".$_POST['website']."',
    career_status='".$_POST['career_status']."',
    birthday='".$_POST['birthday']."',
    died='".$_POST['died']."'
    WHERE actor_id=". $actor_id);
 
 
 
            if($query) echo "<h2>Congratulazioni! Dati inseriti.</h2>";
                else echo "<h2>Attenzione! Dati non inseriti!</h2>";
            
    } else echo "<h2>Errore! Database non selezionato.</h2>";
    
    
}
 
echo "SELECT * FROM actor  WHERE actor_id=". $actor_id . "<br>";  
 
 
print_r($_GET)
 
    ?>
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 21:48 19-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
только модифицируя запрос. либо выставив столбец в таблице по умолчанию в NULL и не упоминать его в UPDATE запросе вообще, либо использовать FIELD = NULL в запросе (не строковое "NULL", а именно NULL в самом запросе)

Всего записей: 15096 | Зарегистр. 20-09-2014 | Отправлено: 00:44 20-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
спасибо, но я не знаю, как это сделать,
ты можешь ввести код?

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 00:49 20-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
$fields = [];
foreach(['nome', 'performer_aka', 'website', 'career_status', 'birthday', 'died'] as $field)
   if (isset($_POST[$field]))
      $fields[] = $field . ' = "' . mysql_escape_string($_POST[$field]) . '"';
if (!empty($fields))
   mysql_query("UPDATE actor SET " .  join(',', $fields) . " WHERE actor_id=" . (int)$actor_id);

Всего записей: 15096 | Зарегистр. 20-09-2014 | Отправлено: 01:07 20-09-2019 | Исправлено: Mavrikii, 01:42 20-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо, где я должен положить это в коде?  
 

Код:
 
<?php
 
 
if (isset($_POST['modifica']))
{
 //include "connetti.php";
    //$query = mysql_select_db("xxx", $db);
    if ($query)
        {
 
    $nome=$_POST['nome'];
    $performer_aka=$_POST['performer_aka'];
    $website=$_POST['website'];
    $career_status=$_POST['career_status'];
    $birthday=$_POST['birthday'];
    $died=$_POST['died'];
     
    $query=mysql_query("UPDATE actor SET  
    nome='".$_POST['nome']."',  
    performer_aka='".$_POST['performer_aka']."',
    website='".$_POST['website']."',
    career_status='".$_POST['career_status']."',
    birthday='".$_POST['birthday']."',
    died='".$_POST['died']."'
    WHERE actor_id=". $actor_id);
 
 
 
            if($query) echo "<h2>Congratulazioni! Dati inseriti.</h2>";
                else echo "<h2>Attenzione! Dati non inseriti!</h2>";
             
    } else echo "<h2>Errore! Database non selezionato.</h2>";
     
     
}
 
echo "SELECT * FROM actor  WHERE actor_id=". $actor_id . "<br>";  
 
 
print_r($_GET)
 
    ?>  
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 01:13 20-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
спасибо, где я должен положить это в коде?  

ну подумайте же. очевидно же.  
я не хочу за вас писать - так как ничему не научитесь.

Всего записей: 15096 | Зарегистр. 20-09-2014 | Отправлено: 01:14 20-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
это не работает, как обычно
 

Код:
 
if (isset($_POST['modifica']))
{
 //include "connetti.php";
    //$query = mysql_select_db("xxx", $db);
    if ($query)
        {
 
    $nome=$_POST['nome'];
    $performer_aka=$_POST['performer_aka'];
    $website=$_POST['website'];
    $career_status=$_POST['career_status'];
    $birthday=$_POST['birthday'];
    $died=$_POST['died'];
    
    $fields = [];
foreach(['nome', 'performer_aka', 'website', 'career_status', 'birthday', 'died'] as $field)
   if (isset($_POST[$field]))
      $fields[] = $field . ' = "' . mysql_escape_string($_POST[$field]) . '"';
if (!empty($fields))
$query=mysql_query("UPDATE actor SET " .  join(',', $fields)) . " WHERE actor_id=" . (int)$actor_id);  
    nome='".$_POST['nome']."',  
    performer_aka='".$_POST['performer_aka']."',
    website='".$_POST['website']."',
    career_status='".$_POST['career_status']."',
    birthday='".$_POST['birthday']."',
    died='".$_POST['died']."
 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 01:33 20-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
потому что не думаете, совсем. это же настолько элементарно.
 

Цитата:
if (isset($_POST['modifica']))
{
  if ($query)
  {
     $fields = [];
     foreach(['nome', 'performer_aka', 'website', 'career_status', 'birthday', 'died'] as $field)
       if (isset($_POST[$field]))
          $fields[] = $field . ' = "' . mysql_escape_string($_POST[$field]) . '"';
    if (!empty($fields))
        $query = mysql_query("UPDATE actor SET " .  join(',', $fields) . " WHERE actor_id=" . (int)$actor_id);
  }
}

Всего записей: 15096 | Зарегистр. 20-09-2014 | Отправлено: 01:40 20-09-2019 | Исправлено: Mavrikii, 01:42 20-09-2019
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 

Код:
 
 
<?php
 
 
if (isset($_POST['modifica']))
{
  if ($query)
  {
     $fields = [];
     foreach(['nome', 'performer_aka', 'website', 'career_status', 'birthday', 'died'] as $field)
       if (isset($_POST[$field]))
          $fields[] = $field . ' = "' . mysql_escape_string($_POST[$field]) . '"';
    if (!empty($fields))
        $query = mysql_query("UPDATE actor SET " .  join(',', $fields) . " WHERE actor_id=" . (int)$actor_id);
  }
}  
 
    $nome=$_POST['nome'];
    $performer_aka=$_POST['performer_aka'];
    $website=$_POST['website'];
    $career_status=$_POST['career_status'];
    $birthday=$_POST['birthday'];
    $died=$_POST['died'];
    
    $query=mysql_query("UPDATE actor SET  
    nome='".$_POST['nome']."',  
    performer_aka='".$_POST['performer_aka']."',
    website='".$_POST['website']."',
    career_status='".$_POST['career_status']."',
    birthday='".$_POST['birthday']."',
    died='".$_POST['died']."'
    WHERE actor_id=". $actor_id);
 
 
 
            if($query) echo "<h2>Congratulazioni! Dati inseriti.</h2>";
                else echo "<h2>Attenzione! Dati non inseriti!</h2>";
            
    } else echo "<h2>Errore! Database non selezionato.</h2>";
    
    
}
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 01:50 20-09-2019 | Исправлено: zagorisback, 01:52 20-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
все, надоело. вебпрограмминг - это не ваше, не занимайтесь им вообще.

Всего записей: 15096 | Зарегистр. 20-09-2014 | Отправлено: 01:51 20-09-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru