2013-04-06 9 views
-2

Я действительно ничего не знаю о PHP.Получение данных из базы данных с использованием sqlite в php

Я пытаюсь получить базу данных, используя приведенный ниже код, но это дает ошибку.

Я пытаюсь получить один UserId, используя нижеприведенный код.

Can any1 сообщите мне, что плохой я делаю ??

$query = "SELECT * FROM table WHERE UserId = '".$obj->{'UserId'}."'; 

       $result = mysql_query($query,$link) or die('Errant query: '.$query); 


     $posts = array(); 


     if(mysql_num_rows($result)) 
     {   
      while($post = mysql_fetch_assoc($result)) 
      {     
       $posts[] = array('posts' =>$post); 
      } 
     } 

     /* output in necessary format */ 
     if($format == 'json') 
     { 
      header('Content-type: application/json'); 
      echo json_encode(array('posts'=>$posts)); 
     } 
     else 
     { 
      header('Content-type: text/xml'); 
      echo '<posts>'; 
      foreach($posts as $index => $post) 
      { 
       if(is_array($post)) 
       { 
        foreach($post as $key => $value) 
        { 
         echo '<',$key,'>'; 
         if(is_array($value)) 
         { 
          foreach($value as $tag => $val) 
          { 
           echo '<',$tag,'>',htmlentities($val),'</',$tag,'>'; 
          } 
         } 
         echo '</',$key,'>'; 
        } 
       } 
      } 
      echo '</posts>'; 
     } 

     /* disconnect from the db */ 
     @mysql_close($link); 

Parse error: syntax error, unexpected ']', expecting T_STRING or T_VARIABLE or T_NUM_STRING on line 31.

+0

Почему вы помечать андроид? –

+0

oops не может найти ошибку в этих кодах. Единственное: $ posts [] = array ('posts' => $ posts); должно быть $ posts [] = array ('posts' => $ post); – Sabari

+0

Можете ли вы опубликовать полный код – Sabari

ответ

0

Проблема находится в вашей первой строке.

Изменить

$query = "SELECT * FROM table WHERE UserId = '".$obj->{'UserId'}."'; 

к этому

$query = "SELECT * FROM table WHERE UserId = '".$obj->{'UserId'}."'"; 

Вы не закрываем двойные кавычки.

Update:

Чтобы передать на заголовки, посланные предупреждающее сообщение добавить @ob_start() в верхней части страницы. Более подробная информацию о ob_start() можно найти здесь http://php.net/manual/en/function.ob-start.php

поэтому полная вещь будет

@ob_start(); 
$query = "SELECT * FROM table WHERE UserId = '".$obj->{'UserId'}."'"; 

$result = mysql_query($query,$link) or die('Errant query: '.$query); 

$posts = array(); 

if(mysql_num_rows($result)) 
{   
    while($post = mysql_fetch_assoc($result)) 
    {     
     $posts[] = array('posts' =>$post); 
    } 
} 

/* output in necessary format */ 
if($format == 'json') 
{ 
    header('Content-type: application/json'); 
    echo json_encode(array('posts'=>$posts)); 
    exit(); 
} 
else 
{ 
    header('Content-type: text/xml'); 
    echo '<posts>'; 
    foreach($posts as $index => $post) 
    { 
     if(is_array($post)) 
     { 
     foreach($post as $key => $value) 
     { 
      echo '<',$key,'>'; 
      if(is_array($value)) 
      { 
       foreach($value as $tag => $val) 
       { 
        echo '<',$tag,'>',htmlentities($val),'</',$tag,'>'; 
       } 
      } 
      echo '</',$key,'>'; 
      } 
     } 
    } 
    echo '</posts>'; 
} 
/* disconnect from the db */ 
@mysql_close($link); 

Надеется, что это помогает :)

+0

Я изменил это, и он подходит ... Невозможно изменить информацию заголовка - уже отправлены заголовки {"posts": []} – user2251603

+0

@ user2251603 Подробнее о том, почему отправляются предупреждающие сообщения, можно найти в этой ссылке: http: // stackoverflow.com/questions/8028957/headers-already-sent-by-php – Sabari

+0

Вы можете использовать ob_start, передав предупреждение. Пожалуйста, см. Мой отредактированный ответ – Sabari

1

изменить это

$posts[] = array('posts' =>$posts); 

в

$posts[] = array('posts' =>$post); 

Вы забыли " здесь

$query = "SELECT * FROM table WHERE UserId = '".$obj->{'UserId'}."'"; 
                    ^^ 

Использовать exit здесь

header('Content-type: application/json'); 
echo json_encode(array('posts'=>$posts)); 
exit(); 
+0

Все та же ошибка приходит вверх – user2251603

+0

@ user2251603 см отредактированный ответ –

+0

Опять же придумывает .. Не удается изменить информацию в заголовке - заголовки уже отправлены { «сообщения»: []} – user2251603

Смежные вопросы