1

メイントピック: https://stackoverflow.com/questions/35163890/you-have-an-error-in-your-sql-syntax-check-the-manual-that-c​​orresponds-to-your?sfb=2

SELECT SUBSTRING(LEFT(configuration, LOCATE('abhol_firma', configuration) -30), LOCATE('treuhand_betrag', configuration) +22, 100) FROM tl_iso_product_collection_item WHERE LOCATE('abhol_firma', configuration) > 0 AND LOCATE('treuhand_betrag', configuration) > 0 ORDER BY id DESC LIMIT 1

基本的に、このコードを PHP ファイルに実装し、結果を表示する必要があります。これまでの私のコードは次のようになります。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);
$connection = mysqli_connect('localhost', 'user', 'pw', 'db');
$query = "SELECT SUBSTRING(LEFT(configuration, LOCATE('abhol_firma', configuration) -30), LOCATE('treuhand_betrag', configuration) +22, 100) FROM tl_iso_product_collection_item WHERE LOCATE('abhol_firma', configuration) > 0 AND LOCATE('treuhand_betrag', configuration) > 0 ORDER BY id DESC LIMIT 1";
$result = mysqli_query($connection, $query);

if($result === FALSE) { 
    echo mysqli_error($connection);
} else
    while($row = mysqli_fetch_array($result)){
echo $row['configuration'];
}
mysqli_close($connection); 
?>

tl_iso_product_collection_item テーブル: http://puu.sh/mUf65/b1498aa7fa.png

構造: http://puu.sh/mUf78/f25448e1d7.png

これを実行しようとすると、次のメッセージが表示されます。

Notice: Undefined index: configuration on line 12

私は文字通りすべてを試しましたが、問題がどこにあるのかわかりません。誰でも助けてもらえますか?前もって感謝します。

4

3 に答える 3

1

列に関数を使用するときは常に、エイリアスを割り当てる必要があります。この理由は、関数で多くの列を使用している可能性があり、MySQL は単一の列出力に使用する列を自動的に認識せず、使用した関数に似た列名を生成するためです。

あなたが遭遇した解決策は絶対に有効です。ただし、読みやすくするために、エイリアスと列名を使用することをお勧めします。

したがって、クエリは次のようになります。

SELECT 
    SUBSTRING(LEFT(configuration,
            LOCATE('abhol_firma', configuration) - 30),
        LOCATE('treuhand_betrag', configuration) + 22,
        100) as configuration   /* note the alias here */
FROM
    tl_iso_product_collection_item
WHERE
    LOCATE('abhol_firma', configuration) > 0
        AND LOCATE('treuhand_betrag', configuration) > 0
ORDER BY id DESC
LIMIT 1
于 2016-02-03T22:05:17.647 に答える
0

交換する

while($row = mysqli_fetch_array($result)){
echo $row['configuration'];
}

while($row = mysqli_fetch_array($result)){
print_r($row[0]);
}

問題を解決しました

于 2016-02-03T12:55:44.710 に答える