2013-05-31 48 views
0

我知道這個問題已經被間接解釋過了,但我只是無法理解它是否正確。我爲教師創建了一個數學工具來創建練習等。數據庫由許多個人填充,我的數據庫爲每個練習都有一個表格,實際的行是獨一無二的。由於給定的練習可以有多個答案,還有另一個表「resolución」鏈接到在後一階段動態創建的解決方案手冊。到目前爲止我的代碼是這樣的:保存mysql選擇變量並在if語句中使用

<?php 

$continued = mysql_connect("localhost","root",""); 
if ($continued) { 
    echo ("Connection is succeed"); 
} else { 
    echo ("Connection is fail"); 
} 
mysql_select_db("Problemas Calculo 1"); 

$provisional = null; 
$provisional = mysql_query ("SELECT 'Id_ejercicio' FROM `Problemas Calculo 1`.`Ejercicios` WHERE `Ejercicios`.`ejercicio = '$_POST[ejercicio]'"); 
if ($provisional === null){ 
    $Ejer_result = mysql_query("INSERT INTO `Problemas Calculo 1`.`Ejercicios` (`Id_ejercicio`, `Tipo`, `Clase`, `Tema`, `Ejercicio`, `Dificultad`) VALUES (NULL, ".$_POST['tipo'].", ".$_POST['clase'].", ".$_POST['tema'].", '$_POST[ejercicio]', ".$_POST['dificultad'].")"); 
if ($Ejer_result) { 
    echo ("<br> succeed"); 
    $Ejer_resolucion = mysql_query("INSERT INTO `Problemas Calculo 1`.`Resolucion` (`id_resolucion`,`id_ejercicio`) VALUES (NULL, LAST_INSERT_ID())"); 
    } else { 
     echo ("<br> fail"); 
    } 
} else { 
    echo ("Ejercicio ya existe; se creara nueva solucion"); 
    $Ejer_resolucion = mysql_query("INSERT INTO `Problemas Calculo 1`.`Resolucion` (`id_resolucion`,`id_ejercicio`) VALUES (NULL, '$provisional')"); 
    if ($Ejer_resolucion) { 
     echo ("<br> succeed Resolucion"); 
    } else { 
     echo ("<br> fail Resolucion"); 
    }  
} 

?> 

我認爲我的問題是在設置變量$臨時

+0

$ temporary = mysql_query(「SELECT'Id_ejercicio'FROM'Problemas Calculo 1'.'Ejercicios' WHERE'Ejercicios'.'ejercicio ='$ _POST [ejercicio]'」); < - 看起來你錯過了一個撇號。這可能是問題的一部分嗎? – dudewad

+0

你說得對,但已經嘗試過,並沒有解決問題 –

回答

2

的mysql_query返回一個結果集標識符,你不應該檢查它是否爲NULL還是假的,但應該算通過mysql_numrows的數字。

此外,你應該使用mysqli_functions,因爲mysql_ *已被棄用(至少人們在這裏一遍又一遍地重複)。 FALSE僅出現錯誤,而不是空集。

0

我看到一個巨大的SQL注入漏洞。至少,你應該在清理數據的同時使用mysqli_ *函數而不是mysql_ *函數。最好的例子是學習PDO。

面向對象的PDO可能是一條學習曲線,但非常值得。

+0

好吧會啓動PDO,謝謝 –