2017-03-19 52 views
0

我試圖在我的數據庫中保存一個ID號,我似乎無法在$resultid變量。你的SQL語法有錯誤;檢查對應於您的MariaDB服務器版本的手冊,在第1行'''附近使用正確的語法

這裏是我的代碼:

<?php 
if (isset($_POST['tittel'])) { 

    $meny = $_POST['meny']; 
    $tittel = $_POST['tittel']; 
    $innhold = $_POST['innhold']; 
    $con = mysqli_connect('localhost', 'root', '', 'vikerfjell'); 
    if ($con) { 
     echo "Connected!"; 
     "<br>"; 
    } else { 
     die("Connection failed!"); 
    } 

    $menyid = ("SELECT idmeny FROM meny WHERE tekst = '$meny'"); 
    $resultid = mysqli_query($con, $menyid); 
    $resultarr = mysqli_fetch_assoc($resultid); 

    $query = "INSERT INTO innhold (tittel, tekst, idmeny) "; 
    $query. = "VALUES('$tittel', '$innhold', $resultarr)"; 

    $result = mysqli_query($con, $query); 

    "<br>"; 

    if (!$result) { 
     die('Query FAILED!'.mysqli_error($con)); 
    } 
} 
+0

你不能像你這樣在下一個查詢中放置'$ resultarr'。您可能必須使用'$ resultarr [0] ['idmeny']''。 –

+0

猜測'$ resultarr'包含多個'idmeny',所以你真的必須遍歷每個'$ resultarr'數組並創建多個插入語句 – AamirR

回答

0

mysqli_fetch_assoc-獲取一個結果行作爲關聯數組,u需要選擇u被搭售的id鍵存儲

$menyid = ("SELECT idmeny FROM meny WHERE tekst = '$meny'"); 
    $resultid = mysqli_query($con, $menyid); 
    $resultarr = mysqli_fetch_assoc($resultid); 

    $column_id=$resultarr['id_stored_on_db']; 


    $query = "INSERT INTO innhold (tittel, tekst, idmeny) "; 
    $query .="VALUES('$tittel', '$innhold', $column_id)"; 
+0

現在我得到這個錯誤。無法添加或更新子行:外鍵約束失敗('vikerfjell'.'innhold',CONSTRAINT'idmenyFK' FOREIGN KEY('idmeny')REFERENCES'meny'('idmeny')ON DELETE NO ACTION ON UPDATE NO ACTION ) –

0

猜測$resultarr持有多個idmeny,因此您必須循環遍歷每個idmeny並創建多個插入語句,例如:

$menyid = "SELECT idmeny FROM meny WHERE tekst = '$meny'"; 
$result = mysqli_query($con, $menyid); 

while ($row = $result->fetch_assoc()) { 
    $query = "INSERT INTO innhold (tittel, tekst, idmeny) "; 
    $query .= "VALUES('$tittel', '$innhold', {$row['idmeny']})"; 
    $result = mysqli_query($con, $query); 
} 
+0

但我只想要一個身份證號碼。變量$ meny是一個下拉框,用於保存我數據庫中表格的文本。我想要那個文本對應的id號碼。 –

0

發現問題。我錯過了我的下拉代碼(另一個php文件)的值。無論如何:)

相關問題