php
  • mysql
  • sql
  • 2013-11-24 62 views 1 likes 
    1
    $id=mysql_query("Select customerId from LoginInfo where username='$un'"); 
    $res4=mysql_query("SELECT d.title, dateRented, totalRent 
    FROM CustomerDvdRental c, DvdInventory d 
    WHERE c.customerId = '$ID[0]' && d.dvdId = c.dvdId"); 
    

    如何使用$id作爲輸入我的其他選擇查詢請幫助我什麼都試過我猜它不工作。輸出被用作其他查詢輸入在PHP

    回答

    3

    您需要從查詢對象中獲取一行,因爲mysql_query只返回一個資源,並且不能像數組那樣訪問。因此,在第二行包括代碼:

    $id = mysql_fetch_array($id); 
    

    這應該解決您的問題。

    但最後我會清理代碼以更簡潔。這將使您的代碼更易於維護。例如

    $resource=mysql_query("Select customerId from LoginInfo where username='$un'"); 
    $loginInfo = mysql_fetch_array($resource); 
    $res4=mysql_query("SELECT d.title, dateRented, totalRent 
    FROM CustomerDvdRental c, DvdInventory d 
    WHERE c.customerId = ".$loginInfo[0]." && d.dvdId = c.dvdId"); 
    

    參考資料:這將告訴你一些例子,告訴你的功能是什麼:http://us2.php.net/mysql_query

    注:我認爲這種做法是沒有好處的。你根本沒有檢查輸入,你甚至沒有逃脫sql字符。這將打開你的應用程序到sql注入。 http://en.wikipedia.org/wiki/SQL_injection 爲了避免這種情況,我可能會重寫整個代碼庫以使用mysqli,它會自動轉義引號等,然後檢查您的輸入到白名單。

    +0

    太好了[第一個]的答案!您可能還想要提示PDO以及mysqli。 – jszobody

    +0

    其工作....我是新來的PHP和網頁設計以及所以開始與基本的東西,但是我肯定會嘗試學習並嘗試實施它們。非常感謝你的幫助,謝謝!:) – user3027588

    0

    嘗試$id[0]小寫。 Php區分大小寫。

    編輯:添加此像在以前的答覆:

    $id = mysql_fetch_array($id); 
    

    要當心的情況。

    1

    嘗試JOIN

    SELECT d.title,..從DvdInventory d JOIN CustomerDvdRentalÇ ON d.dvdId = c.dvdId JOIN LoginInfo類升 ON c.customerId = l.customerId AND l.username ='$ un'

    相關問題