2015-10-07 3 views
-3

So $ bays $wheelnumber и $lengthhours размещаются в форме и форме, которую размещают здесь. Но независимо от того, что я делаю, переменные не будут писать в базу данных. Я попытался установить их непосредственно в коде (т. Е. $bays = '5'), и это все еще не работает. Но когда я установил ':number' => $_POST['wheelnumber'], он работает !!!! также, когда я повторяю переменные, чтобы показать, что я знаю, что они были установлены. Кто-то, пожалуйста, помогите. Он делает мою голову!Почему мои переменные не установлены? PHP

$bays = $_POST['bays']; 
    $wheelnumber = $_POST['wheels']; 
    $lengthhours = $_POST['length'];  

    //create user id 
    $id = rand(1000000,99999990); 

     if ($bays = ""){ 
     $bays = "1";} 

     $length = $lengthours/$bays; 

     if ($wheelnumber = ""){ 
     $wheelnumber = "1";} 

    //create wheel number 
    $name = "Wheel " . $wheelnumber; 

    try { 
     $connect = mysql_connect("localhost","root", "toor"); 
     if (!$connect) { 
      die(mysql_error()); 
     } 
     //insert into database with a prepared statement 
     $stmt = $db->prepare('INSERT INTO wheels (name,number,id,stackid,length,farmid) VALUES (:name, :number, :id, :stackid, :length, :farmid)'); 
     $stmt->execute(array(
      ':name' => $name, 
      ':number' => $wheelnumber, 
      ':id' => $id, 
      ':stackid' => $stack1, 
      ':length' => $lengthhours, 
      ':farmid' => $farmid, 
     )); 
    while ($bays > 0) { 
       $bayname = "Bay " . $bays; 
       $bid = rand(1000000,99999990); 
     //insert into database with a prepared statement 
     $stmt = $db->prepare('INSERT INTO bays (name,id,wheelid,length,farmid) VALUES (:name, :id, :wheelid, :length, :farmid)'); 
     $stmt->execute(array(
      ':name' => $bayname, 
      ':id' => $bid, 
      ':wheelid' => $id, 
      ':length' => $length, 
      ':farmid' => $farmid, 
     )); 
     $bays = $bays - 1; 
} 
+1

Вы можете начать с изменения 'если ($ бухт = "") 'to if' (empty ($ bays)) 'или' if ($ bays == "") ' –

+0

Это уже ответили –

+1

Если вы собираетесь копировать код из других мест, убедитесь, что он все совместимы. Похоже, вы подключаетесь с помощью расширений 'mysql_' databse, но пытаетесь выполнить запрос с использованием расширения mysqli_' или PDO. Они не совместимы друг с другом! – RiggsFolly

ответ

-2

Ваша линия

$wheelnumber = $_POST['wheels']; 

должен быть

$wheelnumber = $_POST['wheelnumber']; 
+2

* Это ответ? Это вопрос? Это комментарий? Кто мог сказать?* –

+0

Hi Alan Это предлагаемое решение - указывая строку кода на вопрос и предлагая исправление. – foxbeefly

+1

Это интересно. Заканчивается вопросительный знак. Ответы похожи на * Ваша проблема ** X ** происходит из-за ** A, B ** и ** C **. Чтобы решить, сделайте ** Y **. Таким образом, ** D ** и ** E ** произойдет, решая вашу проблему *. –

2

Вы говорите, что $bays$wheelnumber и $lengthhours устанавливаются в форме, но ваш код собирает данные от переменных с разными именами, т.е.

$bays = $_POST['bays']; 
$wheelnumber = $_POST['wheels']; 
$lengthhours = $_POST['length'];  

Если это будет

$bays = $_POST['bays']; 
$wheelnumber = $_POST['wheelnumber']; 
$lengthhours = $_POST['lengthhours'];  

Это если тесты неправильны

if ($bays = ""){ 
    $bays = "1"; 
} 

$length = $lengthours/$bays; 

if ($wheelnumber = ""){ 
    $wheelnumber = "1"; 
} 

Тест на равных будет == так изменить его

if ($bays == ""){ 
    $bays = "1"; 
} 

$length = $lengthours/$bays; 

if ($wheelnumber == ""){ 
    $wheelnumber = "1"; 
} 

Вы также, кажется, соединяясь с mysql_, но затем пытаются использовать данные mysqli_ или, может быть, PDO базовый синтаксис расширения. 3 расширения базы данных MySQL не являются взаимозаменяемыми, выбирайте один и придерживайтесь его.

т.е.

$connect = mysql_connect("localhost","root", "toor"); 

использует расширение на mysql_ базы данных, и

$stmt = $db->prepare('INSERT INTO wheels (name,number,id,stackid,length,farmid) VALUES (:name, :number, :id, :stackid, :length, :farmid)'); 

ли с помощью расширения в mysqli_ или возможно PDO базы данных.

Также где $db исходит из ????

Также вы, кажется, закодированы Try/Поймать блок, но я не уверен, если вы закодировали CATCH часть, код не является полным, так может быть, я неправильно здесь

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