2015-02-12 9 views
-4

Я пытаюсь получить все данные из базы данных mysql, но мне интересно, почему он не работает, я что-то пропустил? Это код:Как получить все данные из базы данных?

$tid=$_SESSION['id']; 
$a=mysql_query("select * from tbl_curriculum_sched where TEACHER_ID='$tid'");   

while($ad=mysql_fetch_array($a)){ 
    $sql= mysql_query("SELECT * from enrolled where CURRICULUM_SCHED_ID='$ad[0]'"); 
    //the value of $ad[0] returns nothing 
    //i did something here 
    //but it is not working 
} 

, что случилось с этим запросом?

+4

Что означает «не работает» * точно *? – Alejandro

+1

Не используйте функции 'mysql_ *'. Они устарели, а также ужасный, ужасный интерфейс. Используйте ['PDO'] (http://php.net/manual/en/book.pdo.php) или [' Mysqli'] (http://php.net/manual/en/book.mysqli.php) , Теперь, когда это не в порядке ... Вы уверены, что есть значение в '$ _SESSION ['id']'? Вы называли 'session_start()' перед тем, как пытаться его использовать? Я также не вижу, где вы называете 'mysql_connect()' или 'mysql_select_db()' - вы тоже их называли? – prodigitalson

+0

Что говорит 'mysql_error()' в вашем запросе неправильно? – Quentin

ответ

0

НЕ ИСПОЛЬЗУЙТЕ MYSQL, вместо этого используйте MySQLi, поскольку MySQL равен DEPRECATED.

Но:

$tid=$_SESSION['id']; 
$a=mysql_query("select * from tbl_curriculum_sched where TEACHER_ID='$tid'") or die("$ a error : ".mysql_error());   

while($ad=mysql_fetch_array($a)){ 
$sql= mysql_query("SELECT * from enrolled where CURRICULUM_SCHED_ID='$ad[0]'") or die("inner while: ".mysqli_error()); 
... 

Для тех из вас, комментируя и comlaining, что ОП следует использовать $ а, а не $ad - нет, это не так - как while заявление будет содержание выводится в $ad переменная как с именованными, так и с числовыми клавишами.

Также: Необходимо указать соединение с базой данных.

Также: session_start() необходимо указать.

Если $ad[0] конкретно не имеет значения и не mysql_error() не был брошен затем посмотреть в использовании mysql_fetch_row в качестве параметров в PHP INI означают, что, возможно, численная манипуляцию данных из таблицы MySQL не сохраняются, а данные, возможно только хранятся по имени, что является лучшим способом использования данных по всему кругу.

Попробуйте и не используйте SELECT *.

+0

это действительно странно! Я положил '$ ad = mysql_fetch_array ($ a)' вне цикла while, и я использовал 'var_dump ($ ad)', а затем запустил, он возвращает много значений в виде массива. но когда я верну его обратно в цикл while, он равен нулю. что происходит? что не так с этим? !!!! это работает некоторое время назад !! почему это так сейчас .. – melly

0

Иногда это помогло мне, когда я была странная проблема с варом с индексом в SQL:

$var_temp = $ad[0]; 

В SQL-запросах сайте:

'$var_temp' 
0

Try вар свалка может быть, вы можете увидеть что-то для отладки

while($ad=mysql_fetch_array($a)){ 
$sql= mysql_query("SELECT * from enrolled where CURRICULUM_SCHED_ID='$ad[0]'"); 
    var_dump($sql); 
} 
Смежные вопросы