2015-02-20 3 views
0

Я попытался вставить в свой db некоторые значения из значений post и его нерабочие. Пробовал только 1 значение из 1 сообщения, и он работает, не работая с несколькими сообщениями. Нет ошибок, ничего :(Запрос Mysql не вставляет значения

http://prntscr.com/67e1qd

код:

$rowSQL = mysql_query("SELECT MAX(id) AS max FROM `topic`;"); 
$row = mysql_fetch_array($rowSQL); 
$largestNumber = $row['max']; 

$new_id = ++$largestNumber; 

$newnumber = mysql_query("INSERT INTO topic SET id = '".$new_id."'"); 

if (isset($_POST['submit']) && strlen($_POST['nome'])!== 0 && strlen($_POST['desc'])!== 0 && strlen($_POST['link'])!== 0){ 

    $nome = mysql_real_escape_string($_POST['nome']); 
    $desc = mysql_real_escape_string($_POST['desc']); 
    $link = mysql_real_escape_string($_POST['link']); 
    $insert = ("INSERT INTO topic SET nome = '".$nome."', `desc` = '".$desc."', `link` = '".$link."' WHERE id = '".$newnumber."'") or die(mysql_error()); 
    $run = mysql_query($insert); 
    if($run) { echo '<span style="color:#AFA;text-align:center;margin:8px;">Sucesso!</span>'; } else { echo '<span style="color:#DC143C;text-align:center;margin:8px;">Ocorreu um erro.Tenta novamente.</span>'; } 
}else{ 
    echo "Campos não foram preenchidos."; 
} 

ответ

3

Попробуйте это и после того, что вы получаете:

$rowSQL = mysql_query("SELECT MAX(id) AS max FROM `topic`;"); 
$row = mysql_fetch_array($rowSQL); 
$largestNumber = $row['max']; 

$new_id = ++$largestNumber; 

$newnumber = mysql_query("INSERT INTO topic SET id = '".$new_id."'"); 

if (isset($_POST['submit']) && strlen($_POST['nome'])!== 0 && strlen($_POST['desc'])!== 0 && strlen($_POST['link'])!== 0){ 

    $nome = mysql_real_escape_string($_POST['nome']); 
    $desc = mysql_real_escape_string($_POST['desc']); 
    $link = mysql_real_escape_string($_POST['link']); 
    $insert = "INSERT INTO topic SET nome = '".$nome."', `desc` = '".$desc."', `link` = '".$link."' WHERE id = '".$newnumber."'"; 
    echo $insert; 
    $run = mysql_query($insert) or die(mysql_error()); 
    if($run) { echo '<span style="color:#AFA;text-align:center;margin:8px;">Sucesso!</span>'; } else { echo '<span style="color:#DC143C;text-align:center;margin:8px;">Ocorreu um erro.Tenta novamente.</span>'; } 
}else{ 
    echo "Campos não foram preenchidos."; 
} 

Edit:

Если вы хотите вставить некоторые данные, то почему вы положили where clause th прежде чем?

Edit2:

$update = "UPDATE topic SET nome = '".$nome."', `desc` = '".$desc."', `link` = '".$link."' WHERE id = '".$newnumber."'"; 

$run = mysql_query($update) or die(mysql_error()); 

Edit3:

$rowSQL = mysql_query("SELECT MAX(id) AS max FROM `topic`;"); 
$row = mysql_fetch_array($rowSQL); 
$largestNumber = $row['max']; 

$new_id = ++$largestNumber; 

if (isset($_POST['submit']) && strlen($_POST['nome'])!== 0 && strlen($_POST['desc'])!== 0 && strlen($_POST['link'])!== 0){ 

    $nome = mysql_real_escape_string($_POST['nome']); 
    $desc = mysql_real_escape_string($_POST['desc']); 
    $link = mysql_real_escape_string($_POST['link']); 
    mysql_query("INSERT INTO topic SET id = '".$new_id."', nome = '".$nome."', `desc` = '".$desc."', `link` = '".$link."'") or die(mysql_error()); 
    if($run) { echo '<span style="color:#AFA;text-align:center;margin:8px;">Sucesso!</span>'; } else { echo '<span style="color:#DC143C;text-align:center;margin:8px;">Ocorreu um erro.Tenta novamente.</span>'; } 
}else{ 
    echo "Campos não foram preenchidos."; 
} 
+0

INSERT INTO тему SET нома = 'fdgdfgfdgdfg', 'desc' = 'gdfgdfg' , 'link' = 'dfgdfgdf' WHERE id = '1' У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'WHERE id =' 1 '' в строке 1 –

+0

Попробуйте: $ insert = "INSERT INTO topic SET nome = '". $ nome. " ', 'desc' ='". $ desc. "',' link' =' ". $ link." '"; – Taursus

+0

То же самое, не работает –

0

Попробуйте это:

$rowSQL = mysql_query("SELECT MAX(id) AS max FROM `topic`;"); 
$row = mysql_fetch_array($rowSQL); 
$largestNumber = $row['max']; 

$new_id = ++$largestNumber; 

$newnumber = mysql_query("INSERT INTO topic SET id = '".$new_id."'"); 
$newnumberid = mysql_query("SELECT id FROM topic WHERE id = '".$new_id."'"); 

if (isset($_POST['submit']) && strlen($_POST['nome'])!== 0 && strlen($_POST['desc'])!== 0 && strlen($_POST['link'])!== 0){ 

$nome = mysql_real_escape_string($_POST['nome']); 
$desc = mysql_real_escape_string($_POST['desc']); 
$link = mysql_real_escape_string($_POST['link']); 
$insert = "UPDATE topic(nome,desc,link) SET nome = '".$nome."', `desc` = '".$desc."', `link` = '".$link."' WHERE id = '".$newnumberid."'"; 
echo $insert; 
$run = mysql_query($insert) or die(mysql_error()); 
if($run) { echo '<span style="color:#AFA;text-align:center;margin:8px;">Sucesso!</span>'; } else { echo '<span style="color:#DC143C;text-align:center;margin:8px;">Ocorreu um erro.Tenta novamente.</span>'; } 
}else{ 
echo "Campos não foram preenchidos."; 
} 
+0

newnumber не проблема, как вы видите на принтере, добавив номер. Я хочу создать новый номер и добавить в поля на этом номере –

+0

еще ничего. –

+0

все еще ничего, как и ответ до –

1

Похоже, что вы пишете код, чтобы увеличить идентификатор строки в базы данных, когда вы можете позволить MySQL обрабатывать это сам. Если вы установите значение AUTO INCREMENT true в поле id, вам нужно только следующее:

// Validate your POST inputs 
if (isset($_POST['submit']) && strlen($_POST['nome'])!== 0 && strlen($_POST['desc'])!== 0 && strlen($_POST['link'])!== 0){ 

$nome = mysql_real_escape_string($_POST['nome']); 
$desc = mysql_real_escape_string($_POST['desc']); 
$link = mysql_real_escape_string($_POST['link']); 

$insert = "INSERT INTO topic (nome, desc, link) VALUES ('".$nome."', '".$desc."', '".$link."')"; 
echo $insert; 
$run = mysql_query($insert) or die(mysql_error()); 
if($run) { echo '<span style="color:#AFA;text-align:center;margin:8px;">Sucesso!</span>'; } else { echo '<span style="color:#DC143C;text-align:center;margin:8px;">Ocorreu um erro.Tenta novamente.</span>'; } 
}else{ 
echo "Campos não foram preenchidos."; 
} 

Если вы установите поле идентификатора AUTO INCREMENT тогда идентификатор автоматически перейдет к следующему номеру в списке

Смежные вопросы