2013-09-23 4 views
2

Ok поэтому я сначала покажу свой код, а затем я объясню, что это не так:объявив строки таблицы тузд

$sql_result = $mysqli->query("SELECT * FROM account_information WHERE username = '".$_SESSION["username"]."'"); 
while ($row = mysqli_fetch_assoc($sql_result)) { 
    $about=$row['about']; 

echo'<table>'; 
echo 
<<<EOT 
    <form action="profile.php" method="post"> 
    <textarea name="about" rows="5" cols="50" >{$about}</textarea> 
    <td><input name="submit" type="submit" value="submit"></td> 
    </form> 

EOT; 
echo'</table>'; 

if (isset($_POST['submit'])) { 
     $about = $_POST['about']; 
        $sql_result2 = $mysqli->query("update account_information SET about='".$about."' WHERE username = '".$_SESSION["username"]."'"); 
     $edit=false; 
     echo "<div id='about'>".$about."</div>"; 
} 
} 

Теперь, как вы можете видеть, когда вы печатаете что-то в текстовое поле, он должен идти в мою базу данных (что он делает), и когда я снова появляюсь на странице, я хочу, чтобы текст отображался. Код: $about=$row['about']; должен сделать это. Кого я не могу, похоже, найти проблему. В начале он просто не показывает ничего, что ему нужно (предыдущая запись в текстовой области, сохраненной в базе данных) Что мне делать? В чем проблема?

+0

http://xkcd.com/327/ – NDM

ответ

1

Вы должны поставить представить код вне цикла в то время как и выше запрос выбора.

$about = ''; 
if (isset($_POST['submit'])) { 
    $about = $_POST['about']; 
    $sql_result2 = $mysqli->query("update account_information SET about='".$about."' WHERE username = '".$_SESSION["username"]."'"); 
    $edit=false; 
    echo "<div id='about'>".$about."</div>"; 
} 

$sql_result = $mysqli->query("SELECT * FROM account_information WHERE username = '".$_SESSION["username"]."'"); 

и так далее ....

Как и в своем коде вы принимаете первых старое значение из базы данных, а затем положить снова это в базе данных. что замена кода нового кода и текста, введенного вами в текстовом поле. Поэтому вам нужно сначала сохранить его в базе данных, а затем извлечь, чтобы получить обновленный текст.

+0

Это своего рода боль, потому что мне нужен цикл while в заголовке, а также материал отправки и т. Д. Посередине и когда я ставлю это выше, я получаю ошибки mysql. – Loko

+0

@loko, какую ошибку вы получаете, можете сообщить мне. –

+0

Я исправил ошибку, но решение, которое вы мне сказали, не работает. – Loko

-1

Ну, это немного трудно для сценария, чтобы сказать, что значение не обновляется до тех пор, пока не, так что я хотел бы использовать это:

$sql_result = $mysqli->query("SELECT * FROM account_information WHERE username = '".$_SESSION["username"]."'"); 
while ($row = mysqli_fetch_assoc($sql_result)) { 
    $about= isset($_POST['submit']) ? $_POST['about'] : $row['about']; 

echo'<table>'; 
echo 
<<<EOT 
    <form action="profile.php" method="post"> 
    <textarea name="about" rows="5" cols="50" >{$about}</textarea> 
    <td><input name="submit" type="submit" value="submit"></td> 
    </form> 

EOT; 
echo'</table>'; 

if (isset($_POST['submit'])) { 
        $sql_result2 = $mysqli->query("update account_information SET about='".$about."' WHERE username = '".$_SESSION["username"]."'"); 
     $edit=false; 
     echo "<div id='about'>".$about."</div>"; 
} 
} 
+0

Не сделал это для меня человек – Loko

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