[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нудна помощь! С MySQL
lawbreaker
Всем доброго Утра smile.gif!
Нужна помощь! Я создал один файл : test.php и загрузил его на хостинг моего сайта.
1-Регистрацыя
2-Вывод всех зарегистрированных
3-Редакцыя Юзера (тут и проблема) всё ето (1.2.3) находитсав одном файле (test.php)
вот код вывода всех юзеров (вконце каждой таблицы идёт ссылка на "uid" чтобы отредактировать юзера с данным "uid")
PHP
if ($_GET['event'] == 'allusers') {
$link=mysql_connect($DBSERVER,$DBUSER,$DBPASS) or die("fuck db"); 
$sql 
= 'SELECT * FROM `allday`.`schule`'; 
$q
=mysql_query($sql);
while ($sh=mysql_fetch_array($q)) {
echo '<table border=0 bgcolor=red cellpadding=2><tr><td bgcolor=yellow width=25>'.$sh[0].'</td><td bgcolor=Lime width=100><br><font color=red>Pass:</font></td><td width=100 bgcolor=blue>'.$sh[1].'</td><td bgcolor=Lime width=100>  <font color=red>E-Mail:</font></td><td bgcolor=blue width=100>'.$sh[2].'</td><td><a href=?event=edit&uid='.$sh[0].'>Edit</a></td></tr></table>';}}

ето код редактирования (он не работает) и ошыбок причём не выводит

PHP
if($_GET['event'] == 'edit') 
{
if ($_GET['uid'])
{
$sql = 'SELECT * FROM `allday`.`schule`'; 
$q
=mysql_query($sql);
while ($sh=mysql_fetch_array($q)) {
echo "<form action=?event=editname method=POST><input type=text value=".$sh[1]." name=email><input type=submit value=Aendern name=send></form>";
}
}
}

я думал так : что будет выводитса echo "<input type=text name=name value=".$sh[1].">";
что бы в поле текста уже был вписан ник. Но почему-то всё то что нахожитса в while()не выводитса на екран



Спустя 2 часа, 30 минут, 4 секунды (31.01.2009 - 14:19) twin написал(а):
Андрей, вот тут не нужно на каждую запись делать таблицу в html, достаточно ячейки. Вынеси начало и конец талицы за цикл:

PHP
if ($_GET['event'] == 'allusers') 
{
$link=mysql_connect($DBSERVER,$DBUSER,$DBPASS) or die("fuck db"); 
$sql 
= 'SELECT * FROM `allday`.`schule`'; 
$q
=mysql_query($sql);
echo '<table border=0 bgcolor=red cellpadding=2>';
    while ($sh=mysql_fetch_array($q)) 
    
{
echo '<tr><td bgcolor=yellow width=25>'.$sh[0].'</td><td bgcolor=Lime width=100><br><font color=red>Pass:</font></td><td width=100 bgcolor=blue>'.$sh[1].'</td><td bgcolor=Lime width=100>  <font color=red>E-Mail:</font></td><td bgcolor=blue width=100>'.$sh[2].'</td><td><a href=?event=edit&uid='.$sh[0].'>Edit</a></td></tr>';
    }
echo '</table>';
}
Во втором случае так же точно с формой. Еще я не пойму, зачем ты треплешь две таблицы, у тебя как данные располагаются в базе? Зачем ты запрос сразу к двум таблицам делаешь?
А если ты хочешь одного юзера отредактировать, то цикл совсем не нужен. Попробуй без цикла:

PHP
<?

if(
$_GET['event'] == 'edit') 
{
$sql = "SELECT * FROM `allday` WHERE `id`='".(int)$_GET['uid']."' "; 
$q 
= mysql_query($sql);
echo "<form action=?event=editname method=POST><input type=text 
value=\""
.htmlspecialchars(mysql_result($q,0,1))."\" name=email>
<input type=submit value=Aendern name=send></form>"
;
}
И обрати внимание на стиль написания кода. Я бы тебе посоветовал несколько правил:
1. Фигурную скобку ставить прямо под выражением:

PHP
if ($_GET['event'] == 'allusers') 
{

2. Если выражение вложено, то есть находится внутри другого, сдвигать его вправо табулятором. Вот так:
PHP
<?
if ($_GET['event'] == 'allusers') 
{
$link=mysql_connect($DBSERVER,$DBUSER,$DBPASS) or die("fuck db"); 
$sql 
= 'SELECT * FROM `allday`.`schule`'; 
$q
=mysql_query($sql);
echo '<table border=0 bgcolor=red cellpadding=2>';
    while ($sh=mysql_fetch_array($q)) 
    
{

3. Закрывающую скобку ставить точно под открывающей:
PHP
<?
if ($_GET['event'] == 'allusers') 
{
$link = mysql_connect($DBSERVER,$DBUSER,$DBPASS) or die("fuck db"); 
$sql 
= 'SELECT * FROM `allday`.`schule`'; 
$q
=mysql_query($sql);
echo '<table border=0 bgcolor=red cellpadding=2>';
    while ($sh = mysql_fetch_array($q)) 
    
{
echo '<tr><td bgcolor=yellow width=25>'.$sh[0].'</td><td bgcolor=Lime width=100>
<br><font color=red>Pass:</font></td><td width=100 bgcolor=blue>'
.$sh[1].'</td><
td bgcolor=Lime width=100>  <font color=red>E-Mail:</font></td>
<td bgcolor=blue width=100>'
.$sh[2].'</td><td><a href=?event=edit&uid='.$sh[0].'>Edit</a><
/td></tr>'
;
    }
echo '</table>';
}
Операторы сравнения и присвоения выделять пробелами. Писать не так:
PHP
<?
while ($sh=mysql_fetch_array($q))

а так:

PHP
<?
while ($sh = mysql_fetch_array($q))
Тогда всем будет понятно, что ты хотел сделать, да и самому будет гораздо проще разбираться в своем коде.

Спустя 1 час, 6 минут (31.01.2009 - 15:25) twin написал(а):
И еще, делай проверку запросов, тогда будет ясно где ошибка:
PHP
<?
$q mysql_query($sql) or die("Error: ".mysql_error());

Спустя 17 часов, 15 минут, 12 секунд (1.02.2009 - 08:40) Adamant написал(а):
Андрей, а твой код реально нечитабелен! Подумай и выбери:

http://ru.wikipedia.org/wiki/Стиль_отступов


_____________
Я Андрей и мне 14 лет :)
И ни как не дождусь когда HardWoman меня удалит
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.