Ошибка переменной PHP - PullRequest
       10

Ошибка переменной PHP

0 голосов
/ 12 февраля 2012

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

<?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 текстовых полей в сообщении.

Ответы [ 3 ]

3 голосов
/ 12 февраля 2012

Вам не хватает запятой после элемента body массива $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())";
2 голосов
/ 12 февраля 2012

У вас есть 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? (Я знаю, что это не слишком важно, но облегчает понимание)

1 голос
/ 12 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...