Login
данные MySQL представить в виде HTML-таблицы
NEW 12.08.09 15:31
вобщем хелп! Сижу над задачей: данные из MySQL-таблицы необходимо представить в виде HTML-таблицы. К полученной таблице добавить дополнительную колонку (пока без данных). Вот в этой дополнительной пустой колонке и заключается весь гемморой - не могу правильно вставить тэги в код.
Пытался решить двумя путями:
1.Вариант
Пытался решить двумя путями:
1.Вариант
<html>
<head>
<title>Liste</title>
</head>
<body>
<?php
$db = @new mysqli('localhost', 'root', '', 'logindb');
if (mysqli_connect_errno()) {
die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error());
}
$query = (
"SELECT
user AS Benutzer,
recht AS Rechte
FROM
users
");
$result = $db->query($query);
if (!$result) {
die ('Etwas stimmte mit dem Query nicht: '.$db->error);
}
echo "<table border='1'>";
while ($row = $result->fetch_assoc()) {
echo "<tr>";
foreach ($row as $key => $val) {
printf('<td class="%s">%s</td>', $key, $val);
}
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
----------
2.Вариант
// только без <html>,<body>тэгов и SQL
$result = mysql_query($query) or die (mysql_error());
$columns = mysql_num_fields($result);
echo "<table border='1'>";
while ($row = mysql_fetch_array($result)){
echo "<tr>";
for($i = 0; $i<$columns; $i++){
echo "<td>";
echo $row[$i];
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
?>
12.08.09 15:51
Ты весьма непонятно описал что именно хочешь сделать...
И это... стиль написания составляет желать лучшего.
in Antwort Apels1n 12.08.09 15:31
В ответ на:
echo "<tr>";
foreach ($row as $key => $val)
{
printf('<td class="%s">%s</td>', $key, $val);
}
echo "<td> </td>"
echo "</tr>";
echo "<tr>";
foreach ($row as $key => $val)
{
printf('<td class="%s">%s</td>', $key, $val);
}
echo "<td> </td>"
echo "</tr>";
Ты весьма непонятно описал что именно хочешь сделать...
И это... стиль написания составляет желать лучшего.
NEW 12.08.09 16:05
in Antwort Murr 12.08.09 15:51, Zuletzt geändert 14.08.09 16:00 (Apels1n)
Спасибо! Всё так просто 
А непонятки с описанием и стиль это от того, что мозг уже дымится!
Так-с, код претерпел некоторые изменения

А непонятки с описанием и стиль это от того, что мозг уже дымится!

Так-с, код претерпел некоторые изменения
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Benutzerliste</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php
session_start();
require("connect.inc.php");
$query = (
"SELECT
user AS Benutzer,
vorname AS Vorname,
nachname AS Nachname
FROM
users
");
$result = mysql_query($query) OR DIE (mysql_error());
$columns = mysql_num_fields($result);
$row = mysql_fetch_assoc($result);
$ueberschrift = array_keys($row);
echo "<table width='300' bgcolor='#e7e7e7' border='1' cellpadding='5' cellspacing='1' align='center'>";
echo "<tr>";
for ($h=0; $h<$columns; $h++){
echo "<th>".$ueberschrift[$h]."</th>";
}
echo "<th>Edit</th>";
echo "</tr>";
while ($row = mysql_fetch_array($result)){
echo "<tr>";
for($i = 0; $i<$columns; $i++){
echo "<td>".$row[$i]."</td>";
}
echo "<td align='center'><input type='submit' name='submit' value='<--'></td>";
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
и табличка готова:
----------
теперь необходимо через button сделать редирект на следующую страницу user_edit.php, где можно было бы редактировать данные юзверей. Затруднение вызывает следующий момент:
- как передать выбранный параметр на следующую страницу? Т.е., предположим, некто нажал первую сверху кнопку (напротив 'erster_benutzer' 'Andre' 'Steiner') и перешёл на страницу user_edit.php. Средствами пхп тут уже, видимо, не обойтись, т.к. это будет работать на стороне клиента? Или я ошибаюсь? Остаётся только JavaScript?
NEW 14.08.09 16:06
in Antwort Apels1n 12.08.09 16:05, Zuletzt geändert 14.08.09 16:10 (Apels1n)
вот, умные люди советуют сделать так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Benutzerliste</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script language="JavaScript" type="text/javascript">
function edit(param) {
alert(param);
}
</script>
</script>
</head>
<body>
<?php
session_start();
require("connect.inc.php");
$query = (
"SELECT
user AS Benutzer,
vorname AS Vorname,
nachname AS Nachname
FROM
users
");
$result = mysql_query($query) OR DIE (mysql_error());
$columns = mysql_num_fields($result);
$row = mysql_fetch_assoc($result);
$ueberschrift = array_keys($row);
echo "<table width='300' bgcolor='#e7e7e7' border='1' cellpadding='5' cellspacing='1' align='center'>";
echo "<tr>";
for ($h=0; $h<$columns; $h++){
echo "<th>".$ueberschrift[$h]."</th>";
}
echo "<th>Edit</th>";
echo "</tr>";
$count = 0;
while ($row = mysql_fetch_array($result)){
echo "<tr id = $count name = $count>";
for($i = 0; $i<$columns; $i++){
echo "<td>".$row[$i]."</td>";
}
echo "<td align='center'><a href='edit_user.php'><input type='button'value='<--' onclick='javascript:edit($count)'></a></td>";
echo "</tr>";
$count++;
}
echo "</table>";
?>
</body>
</html>
как отловить переданный параметр на следующей странице? Я в JS ни в зуб ногой
NEW 14.08.09 18:42
in Antwort Apels1n 14.08.09 16:06
Тебе нужно смотреть все - от проектирования базы данных, через аппликатион сервер и до того
что и как делается на клиенте.
По крайней мере именно так это выглядит для меня по приеденному коду. Но это не один день...
что и как делается на клиенте.
По крайней мере именно так это выглядит для меня по приеденному коду. Но это не один день...
NEW 14.08.09 18:43
in Antwort Apels1n 12.08.09 16:05
В ответ на:
как передать выбранный параметр на следующую страницу?
Можно форму в каждой ячейке сделать, а поле для параметра невидимым. Передача параметра тогда по GET или POST.как передать выбранный параметр на следующую страницу?
NEW 14.08.09 18:55
in Antwort NightWatch 14.08.09 18:43
а поле для параметра невидимым.
------
Посмотри внимательнее на имеющийся код - него _нет_ того, чем можно манипулировать.
Просто проблемы проявятся чуток позднее.
------
Посмотри внимательнее на имеющийся код - него _нет_ того, чем можно манипулировать.
Просто проблемы проявятся чуток позднее.
NEW 14.08.09 19:41
in Antwort Murr 14.08.09 18:55, Zuletzt geändert 14.08.09 19:41 (NightWatch)
Логин пользователя чем не подходит?
NEW 14.08.09 20:11
in Antwort NightWatch 14.08.09 19:41, Zuletzt geändert 14.08.09 20:12 (Murr)
Отсутствием гарантий неповторения.
NEW 14.08.09 21:10
in Antwort Murr 14.08.09 20:11
Ну, как бы логин уникален в пределах системы.
Кроме того, автора эти заморочки не интересуют. Ему нужен способ передать параметр (по мне все равно какой) в php-скрипт.
Кроме того, автора эти заморочки не интересуют. Ему нужен способ передать параметр (по мне все равно какой) в php-скрипт.
NEW 14.08.09 21:41
in Antwort NightWatch 14.08.09 21:10
Ну, как бы логин уникален в пределах системы.
------
Уникален не логин. Уникален ключ-айдентити созадаваемый для логина.
Ему нужен способ
------
Я же говорю - проблемы вылезут позднее.
------
Уникален не логин. Уникален ключ-айдентити созадаваемый для логина.
Ему нужен способ
------
Я же говорю - проблемы вылезут позднее.
NEW 15.08.09 13:44
in Antwort Murr 14.08.09 21:41
Ключ-айдентити удобнее использовать в операциях сравнения, поиска и т. д. Логин же в свою очередь также уникален, иначе нет однозначности при определении того же ключа. Пользователь же вводит не ключ, а логин.
Так что, если нет ключа, то и логин подойдет. А каким местом это впоследствии обернется мне по боку. Задача состояла не в этом.
Так что, если нет ключа, то и логин подойдет. А каким местом это впоследствии обернется мне по боку. Задача состояла не в этом.
NEW 15.08.09 14:08
in Antwort NightWatch 15.08.09 13:44
Ключ-айдентити удобнее использовать в операциях сравнения, поиска и т. д.
------
Ну или для прозрачной декриптовки персонального фолдера пользователя. Какой-нибудь такой 2-10Кб ключик-идентити, который не должен быть таким же, после удаления и пересоздания логина...
А каким местом это впоследствии обернется мне по боку.
------
Хммм... Мне тоже. Потому либо порекомендую как сделать правильно, с учетом имеющегося опыта, либо воздержусь от сурогата. Пока вижу, что почвы для рекомендаций нет.
------
Ну или для прозрачной декриптовки персонального фолдера пользователя. Какой-нибудь такой 2-10Кб ключик-идентити, который не должен быть таким же, после удаления и пересоздания логина...
А каким местом это впоследствии обернется мне по боку.
------
Хммм... Мне тоже. Потому либо порекомендую как сделать правильно, с учетом имеющегося опыта, либо воздержусь от сурогата. Пока вижу, что почвы для рекомендаций нет.
NEW 15.08.09 14:23
in Antwort Murr 15.08.09 14:08
В ответ на:
который не должен быть таким же, после удаления и пересоздания логина...
Который может быть и таким же, потому что пользовательские фолдеры не предусматриваются. И размером этак всего 64 бит.который не должен быть таким же, после удаления и пересоздания логина...
NEW 15.08.09 14:30
in Antwort NightWatch 15.08.09 14:23
может быть и таким же
-----
Увы, но нет. Осознаешь позднее.
И размером этак всего 64 бит.
-----
Да хоть 15 бит. Возвращаясь к задаче - его там нет. Нет и понимая зачем он нужен и это создает проблемы.
-----
Увы, но нет. Осознаешь позднее.
И размером этак всего 64 бит.
-----
Да хоть 15 бит. Возвращаясь к задаче - его там нет. Нет и понимая зачем он нужен и это создает проблемы.
NEW 15.08.09 14:42
in Antwort Murr 15.08.09 14:30
В ответ на:
Осознаешь позднее.
Вот уже скоро 8 лет будет базе, где как раз та ситуация, что я описал. Пользователей всего 6. И было их 6 с самого начала. И сколько мне еще ждать, чтобы осознать конкретно на этой базе?Осознаешь позднее.
NEW 15.08.09 15:06
in Antwort NightWatch 15.08.09 14:42
Скорее всего - до изменения требований к базе и удаления/добавления пользователя.
Теперь оцени насколько сложнее должна быть система, аккомодирующая различия.
Теперь оцени насколько сложнее должна быть система, аккомодирующая различия.
NEW 15.08.09 15:12
in Antwort Murr 15.08.09 15:06
В ответ на:
Скорее всего - до изменения требований к базе
Оно понятно. Ты требования к ней знаешь? Или, может, знаешь, когда их решат поменять? Если вообще решат...Скорее всего - до изменения требований к базе
NEW 15.08.09 15:52
in Antwort NightWatch 15.08.09 15:12
Ты требования к ней знаешь?
-----
Разумеется нет. Но это не суть важно. Важно, что стоимость имеплементации обоих вариантов практически одинакова, а второй - гибче и полностью покрывает первый. Вот то, что не сделали сразу - минус разработчикам.
-----
Разумеется нет. Но это не суть важно. Важно, что стоимость имеплементации обоих вариантов практически одинакова, а второй - гибче и полностью покрывает первый. Вот то, что не сделали сразу - минус разработчикам.
NEW 15.08.09 16:19
Ты же предлагаешь клиенту купить швейцарский нож, когда ему необходимо одно лишь лезвие. И нафига ему платить за все оставльное, чем он не будет пользоваться?
in Antwort Murr 15.08.09 15:52
В ответ на:
Но это не суть важно
Это как раз важно. Так как от требований зависит реализация. Для двух табличек и 6 юзеров такик навороты с дикими ключами для шифрации папок, которых и не существует в природе, просто не нужны.Но это не суть важно
В ответ на:
Важно, что стоимость имеплементации обоих вариантов практически одинакова, а второй - гибче и полностью покрывает первый. Вот то, что не сделали сразу - минус разработчикам.
А мне платят за часы. И я делаю то, что говорит заказчик. Не больше и не меньше. Если заказчик меняет требования, без проблем - сделаю. Лишние часы не помешают.Важно, что стоимость имеплементации обоих вариантов практически одинакова, а второй - гибче и полностью покрывает первый. Вот то, что не сделали сразу - минус разработчикам.
Ты же предлагаешь клиенту купить швейцарский нож, когда ему необходимо одно лишь лезвие. И нафига ему платить за все оставльное, чем он не будет пользоваться?