[英]Is there a better way to do SELECT queries in MySQL and sort them in PHP than this way?
我只是在學習PHP / MySQL,我要做的很多事情就是將以前插入數據庫的數據顯示給用戶的瀏覽器。 所以我這樣做:
$select = mysql_query('SELECT * FROM pages');
while ($return = mysql_fetch_assoc($select))
{
$title = $return['title'];
$author = $return['author'];
$content = $return['content'];
}
那么我可以在整個頁面中使用這些變量。 現在,當我在一個數據庫中只有3列時,以上述方式進行操作就不是問題了,但是如果我要處理一個具有更多列的大型數據庫該怎么辦。
我有點a,專業人士以某種更有效的方式做到這一點,他們可能會遍歷他們從中選擇的表以查找其具有的所有列,並將它們與變量自動關聯。 是這樣嗎 還是上面的你們也怎么做?
謝謝你們的回答,他們幫助我更好地解釋了我的想法。 我之所以嘗試這樣做,是因為我不必寫太多。
是否可以自動獲取表的列名。 然后有一個循環,該循環將自動創建將變量命名為與列名相同的變量:
some type of loop
{
$nameofcolumn = $return['$nameofcolumn'];
}
這樣,我不必手動重復自己:
$title = $return['title'];
$author = $return['author'];
$content = $return['content'];
因為通常我只是將變量命名為與表列名稱相同的名稱。
如前所述, extract
將比我最初的解決方案更好:
$select = mysql_query('SELECT * FROM pages');
while ($return = mysql_fetch_assoc($select))
{
extract($return, EXTR_OVERWRITE);
}
但是,這兩種解決方案都將使用列名覆蓋所有已經存在的變量。
但是我不太明白為什么有人要這么做。 我必須說,我了解您正在嘗試做的事情,但為什么不這樣做:D
可能不在主題之列,但可以考慮使用PDO擴展來學習MySQL,因為它可以幫助您避免常見的錯誤,並可以幫助您遷移到更復雜的解決方案,例如Zend_DB,Doctrine或Propel
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.