2

レシピテーブル、人数、材料、調理温度、調理時間を保持するレシピ保存プログラム用のsqliteデータベースを作成しようとしています。「id」(自動インクリメント)を保存するために、成分部分内に別のテーブルを作成するつもりです。質量数 (たとえば、200); 質量の種類 (g など) と食品の種類 (小麦粉など)。

このコードを使用して、変数を取得して保存しようとしています。

    def setIngredientsInRecipe(recipeName):
        cursor.execute("""INSERT INTO %s(ingredients) CREATE TABLE\
                    (ID INT PRIMARY KEY AUTO_INCREMENT, MassNumber VARCHAR(10), MassType VARCHAR(50) FoodType VARCHAR(50))""" % (recipeName))
        print ""
        massNoInput = raw_input("Please enter your first ingredient mass(just the number): ")
        massTypeInput = raw_input("Now please input the mass type (grams etc): ")
        foodInput = raw_input("Please enter your first ingredient type: ")

        cursor.execute("""INSERT INTO %s(ingredients(MassNumber)) VALUES('%s')""" % (recipeName,massNoInput))
        cursor.execute("""INSERT INTO %s(ingredients(MassType)) VALUES('%s')""" % (recipeName,massTypeInput))
        cursor.execute("""INSERT INTO %s(ingredients(FoodType)) VALUES('%s')""" % (recipeName,foodInput))

        return recipeName

明らかに、最初に入力が有効かどうかを確認するために、後でいくつかの数値チェックを追加するつもりです。

構文エラーだと言って、最初のcursor.execute行でクラッシュしています...

誰かがこれを修正する方法を私に説明できれば、私は最も感謝しています.私はこのコードを何年も見てきました.

ありがとう、ライアン:)

4

1 に答える 1

2

レシピ用と材料用の 2 つのテーブルを使用し、材料ごとに、それが属するレシピの ID を記録します。

CREATE TABLE recipe(ID, People, CookingTime);
CREATE TABLE ingredient(ID, RecipeID, MassNumber, MassType, FoodType);

レシピに 1 つの材料を追加するには、そのテーブルに 1 つのレコードを挿入するだけです (ここで、42 はレシピの ID です)。

INSERT INTO ingredient(RecipeID, MassNumber, MassType, FoodType) VALUES (42, ...)
于 2013-04-11T14:15:32.700 に答える