2012-02-11 2 views
-3

Я пытаюсь добавить другую переменную, где она не существует. Это приложение для публикации, в которое вы вводите 2 текстовых поля, и оно опубликовано. Первоначально он был с одной переменной для тела. Я хотел добавить body1 к нему. Functions.php deifines первый при добавлении второго, я получил это: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /home/a1893806/public_html/functions.php on line 20 Вот измененный код:Ошибка переменной PHP

<?php 

function add_post($userid,$body,$body1){ 
    $sql = "insert into posts (user_id, body, body1, stamp) 
      values ($userid, '". mysql_real_escape_string($body,$body1). "',now())"; 

    $result = mysql_query($sql); 
} 
function show_posts($userid){ 
    $posts = array(); 

    $sql = "select body, stamp from posts 
    where user_id = '$userid' order by stamp desc"; 
    $result = mysql_query($sql); 

    while($data = mysql_fetch_object($result)){ 
     $posts[] = array( 'stamp' => $data->stamp, 
          'userid' => $userid, 
          'body' => $data->body 
          'body1' => $data->body1 
      ); 
    } 
    return $posts; 

} 
?> 

Первоначально не имеет: 'body1' => $data->body1 или любой из переменных Body1

Я не уверен, почему у меня не может быть 2 текстовых поля в сообщении.

+1

Не добавляйте новые вопросы в свой первый вопрос. –

+0

О, и, пожалуйста, не подписывайте свои сообщения. –

+0

Хорошо, тогда! Извините за это :) –

ответ

2

У вас есть 2 таблицы внутри друг друга:

<table class="imagetable"> 
<table align="center" border='0' cellspacing='0' cellpadding='5' width='300'> 

Это не допускается.

function add_post($userid,$body,$body1){ 
    $sql = "insert into posts (user_id, body, body1, stamp) 
     values ($userid, '". mysql_real_escape_string($body,$body1). "',now())"; 

    $result = mysql_query($sql); 
} 

Должно быть

function add_post($userid,$body,$body1){ 
    $sql = " 
     INSERT into posts (user_id, body, body1, stamp) 
     VALUE (".$userid.", '". mysql_real_escape_string($body) ."', '".mysql_real_escape_string($body1). "', NOW())"; 

    $result = mysql_query($sql); 
} 

И лично я предпочитаю это для удобства чтения:

$sql = " 
     INSERT into posts 
      SET user_id = ".$userid." 
      , body = '". mysql_real_escape_string($body) ."' 
      , body1 = '".mysql_real_escape_string($body1). "' 
      , stamp = NOW() 

что-то более тривиального; body1 не имеет смысла .. 1; это фактически номер 2. 2; Почему у вас есть 2 тела? Без разницы? Возможно body должно быть intro и body1: body? (Я знаю, что это не слишком важно, но облегчает его понимание)

+0

Его нет! хммм .... –

3

Вы пропускаете запятую после элемента тела $posts массива:

// Bad 
'body' => $data->body 

// Good 
'body' => $data->body, 

Не уверен, что вы можете сделать это:

$sql = "insert into posts (user_id, body, body1, stamp) 
     values ($userid, '". mysql_real_escape_string($body,$body1). "',now())"; 

Попробуйте это:

$sql = "insert into posts (user_id, body, body1, stamp) 
     values ($userid, '". mysql_real_escape_string($body) . "', '" . mysql_real_escape_string($body1). "',now())"; 
+0

Отлично! Но это не сообщение кода второго текстового поля> Я не знаю, почему –

+0

Обновлено решение. –

1

В вашем массиве $ posts отсутствует код

+0

Сделайте свой ответ понятным «The» - Там. –

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