Сам новичок в php, проблема маленькая, но не вижу ее.
<?php
error_reporting(E_ALL);
$dbhostname = "localhost";
$dbusername = "root";
$dbpassword = "23075";
$dbName = "table";
$table = "table";
$db = mysql_connect($dbhostname,$dbusername,$dbpassword) or die("Can't connect the server");
mysql_select_db($dbName, $db) or die(mysql_error());
$result = mysql_query("SELECT * FROM $table WHERE w_status='WAITING'", $db) or die(mysql_error());
while($rows=mysql_fetch_assoc($result))
{
print ("
<form action='' method='post' enctype='multipart/form-data'>
<input type='submit' name='del' value='Delete'>
<input type='text' name='info'>
<input type='submit' name='inf' value='Add info'>
</form>
<div class='spoilerTitle'>".$rows['w_thread']."</div>
<TABLE>
<TR>
<b>".$rows['w_thread']."</b>
<TD style='text-align:center'>Description:</TD>
<TD style='text-align:center'>Info:</TD>
</TR>
<TR>
<TD>".$rows['w_desc']."</TD>
<TD>".$rows['w_info']."</TD>
</TR>
</TABLE>
<hr>");
}
$id = $rows['w_id'];
$info = $_POST['inf'];
if(isset($_POST['del'])) {
mysql_query("DELETE FROM $table WHERE w_id='$id'");
}
if(isset($_POST['inf'])) {
mysql_query("UPDATE $table SET w_info VALUE '$info' WHERE w_id='$id'");
}
?>
Страница работает, но при нажатии на кнопки - ничего не происходит.
А должна обновляться инфа в таблице mysql. Прошу помочь, в чем проблема и как нужно правильно использовать DELETE\UPDATE в циклах.
Спустя 1 минута, 46 секунд (8.05.2012 - 11:00) TranceIT написал(а):
action у формы выставить забыли
Спустя 10 минут, 31 секунда (8.05.2012 - 11:10) nugle написал(а):
TranceIT
ты чего? action стоит, у него обновление на той же странице
AlexG, сделай var_dump($_POST); посмотри, что внутри массива
ты чего? action стоит, у него обновление на той же странице
AlexG, сделай var_dump($_POST); посмотри, что внутри массива
Спустя 2 минуты, 47 секунд (8.05.2012 - 11:13) TranceIT написал(а):
Дак на той же странице вроде action="?"...
UPD: А да, че то тупанул...
UPD: А да, че то тупанул...
Спустя 4 минуты, 26 секунд (8.05.2012 - 11:17) Guest написал(а):
}
}; - Что закрывает?
?>
}; - Что закрывает?
?>
Спустя 7 минут, 39 секунд (8.05.2012 - 11:25) Adamant написал(а):
ну почему вы при написании и отладке скрипта не включаете вывод всех ошибок от интерпретатора. Сами же себе жизнь усложняете. А так бы просто читали бы все сообщения, что у вас не так, то ли скобку пропустили то ли еще что.
Ставьте первой строчкой в скрипт - error_reporting(E_ALL);
А еще лучше на своем локалхосте в php.ini файле выставите
error_reporting = E_ALL
И вообще нормальный редактор (или IDE) должен уже в момент неправильного написания кода показывать, где у вас синтаксическая ошибка, еще до запуска скрипта.
Ставьте первой строчкой в скрипт - error_reporting(E_ALL);
А еще лучше на своем локалхосте в php.ini файле выставите
error_reporting = E_ALL
И вообще нормальный редактор (или IDE) должен уже в момент неправильного написания кода показывать, где у вас синтаксическая ошибка, еще до запуска скрипта.
Спустя 18 минут, 54 секунды (8.05.2012 - 11:44) AlexG написал(а):
Если тут и есть ошибка, то только при редактировании его ЗДЕСЬ.
Никаких ошибок не выводит, я пробовал error_reporting(E_ALL);
Никаких ошибок не выводит, я пробовал error_reporting(E_ALL);
Спустя 3 минуты, 48 секунд (8.05.2012 - 11:48) m4a1fox написал(а):
Так что там var_dump($_POST) показывает. СправкаЖ Его в верх страницы надо положить.
Спустя 3 минуты, 48 секунд (8.05.2012 - 11:51) AlexG написал(а):
Сначала array(0) { }
После нажатия на Delete: array(2) { ["del"]=> string(6) "Delete" ["info"]=> string(0) "" }
После нажатия на Add info с текстом test: array(2) { ["del"]=> string(6) "Delete" ["info"]=> string(4) "test" }
После нажатия на Delete: array(2) { ["del"]=> string(6) "Delete" ["info"]=> string(0) "" }
После нажатия на Add info с текстом test: array(2) { ["del"]=> string(6) "Delete" ["info"]=> string(4) "test" }
Спустя 2 часа, 27 минут, 26 секунд (8.05.2012 - 14:19) AlexG написал(а):
Мне все еще нужна помощь

Спустя 4 часа, 30 минут, 54 секунды (8.05.2012 - 18:50) Kuliev написал(а):
AlexG
Все правильно ничего работать и не должно судя из вашего кода.
А все по тому что...
Все правильно ничего работать и не должно судя из вашего кода.
А все по тому что...
//Вот эта часть кода $ID = NULL ; $info = NULL
$id = $rows['w_id'];
$info = $_POST['inf'];
//***
if(isset($_POST['del'])) {
mysql_query("DELETE FROM $table WHERE w_id='$id'");
}
if(isset($_POST['inf'])) {
mysql_query("UPDATE $table SET w_info VALUE '$info' WHERE w_id='$id'");
}
Спустя 18 минут, 42 секунды (8.05.2012 - 19:08) AlexG написал(а):
<?php
error_reporting(E_ALL);
$dbhostname = "localhost";
$dbusername = "root";
$dbpassword = "123456";
$dbName = "web";
$table = "table";
$db = mysql_connect($dbhostname,$dbusername,$dbpassword) or die("Can't connect the server");
mysql_select_db($dbName, $db) or die(mysql_error());
$result = mysql_query("SELECT * FROM $table WHERE w_status='WAITING'", $db) or die(mysql_error());
while($rows=mysql_fetch_assoc($result))
{
print ("
<form action='' method='post' enctype='multipart/form-data'>
<input type='submit' name='del' value='Delete'>
<input type='text' name='info'>
<input type='submit' name='inf' value='Add info'>
</form>
<div class='spoilerTitle'>".$rows['w_thread']."</div>
<TABLE>
<TR>
<b>".$rows['w_thread']."</b>
<TD style='text-align:center'>Description:</TD>
<TD style='text-align:center'>Info:</TD>
</TR>
<TR>
<TD>".$rows['w_desc']."</TD>
<TD>".$rows['w_info']."</TD>
</TR>
</TABLE>
<hr>");
$id = $rows['w_id'];
if(isset($_POST['del'])) {
mysql_query("DELETE FROM $table WHERE w_id='$id'");
}
if(isset($_POST['inf'])) {
$info = $_POST['inf'];
mysql_query("UPDATE $table SET w_info VALUE '$info' WHERE w_id='$id'");
}
}
?>
Так?
Спустя 4 часа, 28 минут, 50 секунд (8.05.2012 - 23:37) Kuliev написал(а):
AlexG
Вот так...
Только $ID у тебя при таком раскладе будет всегда последней строкой в таблице
Вот так...
<?php
error_reporting(E_ALL);
$dbhostname = "localhost";
$dbusername = "root";
$dbpassword = "123456";
$dbName = "web";
$table = "table";
$db = mysql_connect($dbhostname,$dbusername,$dbpassword) or die("Can't connect the server");
mysql_select_db($dbName, $db) or die(mysql_error());
$sql = "SELECT *
FROM `". $table ."`
WHERE `w_status`='WAITING'";
$result = mysql_query($sql) or die(mysql_error() .'<br />'. $sql);
while($row = mysql_fetch_assoc($result))
{
// Единственное у тебя ID таблицы всегда будет последний
// Точнее ID последней записи в таблице
$id = $rows['w_id'];
print ("
<form action='' method='post' enctype='multipart/form-data'>
<input type='submit' name='del' value='Delete'>
<input type='text' name='info'>
<input type='submit' name='inf' value='Add info'>
</form>
<div class='spoilerTitle'>".$row['w_thread']."</div>
<TABLE>
<TR>
<b>". $row['w_thread'] ."</b>
<TD style='text-align:center'>Description:</TD>
<TD style='text-align:center'>Info:</TD>
</TR>
<TR>
<TD>". $row['w_desc'] ."</TD>
<TD>". $row['w_info'] ."</TD>
</TR>
</TABLE>
<hr>");
}
if(isset($_POST['del']))
{
$sql = "DELETE FROM `". $table ."`
WHERE `w_id` = ". (int)$id;
$result = mysql_query($sql) or die(mysql_error() .'<br />'. $sql);
heder("Location: http://". $_SERVER['HTTP_HOST'] ."/");
exit();
}
if(isset($_POST['inf']))
{
$sql = "UPDATE `". $table ."`
SET `w_info` = '". mysql_real_escape_string($_POST['info']) ."'
WHERE `w_id` = ". (int)$id;
$result = mysql_query($sql) or die(mysql_error() .'<br />'. $sql);
heder("Location: http://". $_SERVER['HTTP_HOST'] ."/");
exit();
}
?>
Только $ID у тебя при таком раскладе будет всегда последней строкой в таблице
Спустя 6 часов, 35 минут, 3 секунды (9.05.2012 - 06:12) AlexG написал(а):
Большое спасибо, но как пофиксить $id?
Спустя 7 часов, 11 минут, 10 секунд (9.05.2012 - 13:24) Kuliev написал(а):
Цитата (AlexG @ 9.05.2012 - 06:12) |
Большое спасибо, но как пофиксить $id? |
Не понял насчет пофиксить $ID
Используй скрытые поля для идентификации сообщений...
Спустя 1 час, 20 минут, 16 секунд (9.05.2012 - 14:44) AlexG написал(а):
Ох.. Мне нужно сделать что-то вроде такого:

Из mysql берется таблица со столбцами: ID, TEXT, INFO и выписываются в виде таблицы каждая.
Над каждой таблице присутствует кнопка DEL(Delete), строка для ввода текста и кнопка Info(submit) которая производит действие для введенного текста в строке. При нажатии на удалить - строка из БД удаляется.
При вводе, скажем TWO в первой таблице и нажатии на Info, у нас в БД меняется именно у этой строки INFO с ONE на TWO. Страница при любых действиях обновляется.
Это похоже на записи, которые можно удалять и менять им один из столбцов. Но проблема: ВСЕ кнопки работают только для одной строки - последней\первой, а не для КАЖДОЙ строки. Вот в чем сама проблема. И мне ее очень нужно решить. Уже 3 дня голову ломаю.

Из mysql берется таблица со столбцами: ID, TEXT, INFO и выписываются в виде таблицы каждая.
Над каждой таблице присутствует кнопка DEL(Delete), строка для ввода текста и кнопка Info(submit) которая производит действие для введенного текста в строке. При нажатии на удалить - строка из БД удаляется.
При вводе, скажем TWO в первой таблице и нажатии на Info, у нас в БД меняется именно у этой строки INFO с ONE на TWO. Страница при любых действиях обновляется.
Это похоже на записи, которые можно удалять и менять им один из столбцов. Но проблема: ВСЕ кнопки работают только для одной строки - последней\первой, а не для КАЖДОЙ строки. Вот в чем сама проблема. И мне ее очень нужно решить. Уже 3 дня голову ломаю.
Спустя 1 час, 27 минут, 18 секунд (9.05.2012 - 16:11) Kuliev написал(а):
AlexG
Добавь в форму скрытое поле и передавай ему ID поста.
Добавь в форму скрытое поле и передавай ему ID поста.
<input type='hidden" name="ID" value="'.$row['id'].'">
Спустя 45 минут, 23 секунды (9.05.2012 - 16:56) AlexG написал(а):
ОГРОМНОЕ спасибо!