идентификация строки в MySQL

Статус
В этой теме нельзя размещать новые ответы.

levi-de

Новичок
идентификация строки в MySQL

Идентификация строки в MySQL
Ниже приведён рабочий пример вывода данных из таблицы MySQL. Рядом с каждой строчкой появляется кнопка submit и на каждой написан id продукта – уникальное имя. При нажатии на кнопку программа выдаёт price для выбранного продукта.

Задача изменить кнопку submit на картинку и каким то способом передать данные value и name для идентификации строки. Короче, всё должно работать как в нижеприведённом примере, только вместо кнопки Submit нужно нарисовать одинаковую картинку.


index.php

<?php
$Host = "localhost";
$User = "";
$Passwort = "";
$DBName = "hallo";
$TableName="hallo";

$Link = mysql_connect ($Host, $User, $Passwort);
echo "<form action='1.php' method='post'>";
$Query = "SELECT * FROM $TableName";
$Result = mysql_db_query ($DBName, $Query, $Link);

print ("<TABLE BORDER=1 WIDTH=\"25%\">\n");
print ("<TR>");
print ("<TD>Name</TD>\n");
print ("<TD>Add</TD>\n");

print ("</TR>\n");

while ($Row = mysql_fetch_array ($Result))
{
print ("<TR>");
print ("<TD>$Row[description]</TD>\n");
print ("<TD><input type='submit' name='zeig[]' value='$Row[id]'></TD>\n");
print ("</TR>\n");

}
echo "</form>";
mysql_close();
print ("</TABLE>");
?>



1.php

<?php
$dbname="hallo";
mysql_connect ( "localhost" );
@mysql_select_db($dbname);
if(is_array($zeig))
{
foreach ($zeig as $zzz)
{
$result = mysql_query( "select price from hallo where id = '$zzz'");
$rows=mysql_num_rows($result);
while ( $a_row = mysql_fetch_row( $result ) )
{
foreach ( $a_row as $field )
print ("$field");
}
}
}
mysql_close();
?>

Заранее благодарен за помощь
 

netklon

Новичок
меняешь тип на image и добавляешь аттрибут src.

<input type='image' src='image.gif' name='zeig[]' value='$Row[id]'>
 

Фанат

oncle terrible
Команда форума
levi-de
ты, все-таки, отказался от идеи сделать отдельные формы для каждого продукта?
А почему?

только не говори мне, что юзер может нажать сразу ДВЕ кнопки. или больше.

PS. название ты придумал для темы - самое то. просто стопроцентно отражает суть вопроса, да...

-~{}~ 14.03.04 12:24:

дурилка картонная.
ты правила читал?
А что зпдпвать одинаковые вопросы запрещено - знаешь?
А какого хрена приперся свои вопросы задавать, а правила не прочел?
 

levi-de

Новичок
меняешь тип на image и добавляешь аттрибут src.
<input type='image' src='image.gif' name='zeig[]' value='$Row[id]'>


Пробовал и не однократно... У image нет и не может быть никакого свойства value. По этому и обратился.



По поводу кросспостинга извиняюсь, больше не буду.

Что касается двух отдельных форм Вы мне это уже говорите две недели. Я конечно понимаю, что две кнопки нажать одновременно невозвожно.( Это было бы уместно, если бы возле каждой строки стоял checkbox и внизу submit. ), но куда я только эти формы не лепил, ничего не получается. Насколько я понимаю, одна форма должна находится всередине другой, да и ещё заключена в цикл. Да? У внешней формы action должен указывать на 1.php а если я внутри цикла форму влеплю то какие ему actionы давать? И в каком именно месте рисовать эту чёртову форму?

while ($Row = mysql_fetch_array ($Result))
{

print ("<TR>");
print ("<TD>$Row[description]</TD>\n");
print ("<TD><input type='submit' name='zeig[]' value='$Row[id]'></TD>\n");
print ("</TR>\n");

}
 

Фанат

oncle terrible
Команда форума
Насколько я понимаю, одна форма должна находится всередине другой
ЗАЧЕМ????
вот ты пишешь - "понимаю". Если человек понимает, то он каким-то путем пришел к этому пониманию.
Не пояснишь ли ты ход своей мысли, который тебя привел к такому выводу.

Вы мне это уже говорите две недели
а ты не помнишь, что я тебе еще говорил?
про нарисовать ручками.
что прежде, чем браться за пхп, надо РУЧКАМИ НАРИСОВАТЬ то, что хочешь получить.
однако мы самые умные оказались. зачем нам рисовать, мы и так все сами знаем. Да?

Вот я не представляю, как так можно.
Писать скрипт пхп, который формирует хтмл страницу.
и при этом ВООБЩЕ НЕ РЮХАТЬ, как эта страница должна выглядеть.
Это только в пхп такое возможно.
Херурга, который не знает куда резать - посадили бы.
водилу, который не знает, куда рулить - увезли бы в больницу. К этому хирургу.
И тоьлко "пхп-программисты" чувствуют себя вольготно. Авось само получится.

А ну брысь отсуюда - ушуршал рисовать руками страницу заказов.
Все понял?
представишь код на два товара. ХТМЛ КОД!!!! без единой команды пхп!
экшен какой у формы указывать?
ты совсем уже, что ли, оглупел?
В экшене пишется адрес скрипта, который форму будет обрабатывать.

Скажи, ты вообще, в состоянии нарисовать хтмл страницу на которой находится две формы? Я уже начинаю сильно сомневаться.
Вот просто две формы - одна под другой.
 

levi-de

Новичок
Господин фанат. Мужественно принял все оскорбления в свою сторону (шутка) и последовал Вашему совету рисовать страницу заказов рукми.

Я кинул это всё дело на http://members.vicard.net/marishka

Только честно говоря не понял, зачем это всё надо. Я же писал, что с HTMLом и образным мышлением у меня в порядке.
 

lucas

Guest
Теперь переделай эту страницу так, чтобы форма была не одна, а собственная для каждого товара.
 

levi-de

Новичок
Вот, сделал в таблице форму для каждого товара, только ни как не могу понять как это всё привязать к php.

<Html>
<Head>
<Title>Господину Фанату</Title>
</Head>
<Body>
<Center>
<Table border="1" cellpadding="0" cellspacing="0" width="300">
<tr>
<td height="50">
<Center><Small>Имя продукта</Small></Center>
</td>
<td>
<Center><Small>Добавить</Small></Center>
</td>
</tr>

<tr>
<form action="1.html">
<td>
<Center><Small><font color="#FF0000">MP3-Player</font></Small></Center>
</td>
<td>
<Center><Small><input type="image" src="add.gif"></Small></Center>
</td>
</form>
</tr>

<tr>
<form action="1.html">
<td>
<Center><Small><font color="#FF0000">Mobile-Phone</font></Small></Center>
</td>
<td>
<Center><Small><input type="image" src="add.gif"></Small></Center>
</td>
</form>
</tr>

<tr>
<form action="1.html">
<td>
<Center><Small><font color="#FF0000">Notebook</font></Small></Center>
</td>
<td>
<Center><Small><input type="image" src="add.gif"></Small></Center>
</td>
</form>
</tr>

</Table>
</form>
</Center>
</Body>
</Html>
 

n3o

Guest
А почему у тебя action=1.html ??? У тебя, что 1.html обрабатывает данные из формы?
 

Nikolas

Guest
а почему бы и нет? да хоть txt только нужную обработку типа можно указать на сервере...

теперь к сути вопроса:

levi-de что тебе не понятно?

используй отрисовку блока <tr>Твоя форма</tr> в цикле по мере чтения данных...
 

levi-de

Новичок
В вышеприведённом HTML коде Я показал, как должен выглядеть внешний вид программы. Теперь с помощью PHP и MySQL я вставляю в эту таблицу данные

<?php
$Host = "localhost";
$User = "";
$Passwort = "";
$DBName = "hallo";
$TableName="hallo";

$Link = mysql_connect ($Host, $User, $Passwort);

$Query = "SELECT * FROM $TableName";
$Result = mysql_db_query ($DBName, $Query, $Link);

print ("<TABLE BORDER=1 WIDTH=\"25%\">\n");
print ("<TR>");
print ("<TD>Name</TD>\n");
print ("<TD>Add</TD>\n");

print ("</TR>\n");

while ($Row = mysql_fetch_array ($Result))
{
echo "<form action='1.php' method='post'>";
print ("<TR>");
print ("<TD>$Row[description]</TD>\n");
print ("<TD><input type='image' src='add.gif' ></TD>\n");
print ("</TR>\n");
echo "</form>";
}

mysql_close();
print ("</TABLE>");
?>


и вот теперь по нажатии кнопки-картинки нужно как то идентифицировать строку и я не знаю каким образом это сделать.
 

Фанат

oncle terrible
Команда форума
Ну вот, молодец!
а теперь добавь к формам <input type=hidden name=id value=$Row['id']>
 

Nikolas

Guest
какую строку? и что значит идентифицировать?
что должно произойти при нажатии кнопки?

и как на счет такого?
<INPUT TYPE='HIDDEN' NAME='$name' VALUE='$value'>
 

Фанат

oncle terrible
Команда форума
вот только формы ты рисуешь по-уродски, принтами.
из-за этого у тебя и ошибки полезут и читать невозможно
неужели париться с кавычками и читать нерасцвеченный хтмл удобнее?
Неужели вот так не лучше?
PHP:
<?
while ($Row = mysql_fetch_array ($Result)) {
?>
<form action='1.php' method='post'>
<TR>
  <TD><? echo $Row['description'] ?></TD>
  <TD><input type='image' src='add.gif' ></TD>
  <input type=hidden name=id value=<? echo $Row['id'] ?>> 
</TR>
</form>
<?
}
?>
 

Nikolas

Guest
BTW:
Фанат
ты пишешь <? echo $Row['id'] ?>

а можно <?=$Row['id'] ?>

есть в этом какая-нибудь принципиальная разница?
 

lucas

Guest
У PHP есть параметр short_open_tag. Если он установлен, то PHP-код распознается в тегах <? ... ?> и <?php ... ?>. Если нет -- только в последних.
Поэтому, если ты хочешь писать код, работающий с любой настройкой открывающего тега, пиши <?php echo $row['id']) ?>. Не хочешь -- <?=$row['id']?>.
 

levi-de

Новичок
Убрал все эти уродливые принты, всё сделал как вы советовали, только чо то не хочет работать.

index.php

<Html>
<Head>
</Head>
<Body>
<?php
$Host = "localhost";
$User = "";
$Passwort = "";
$DBName = "hallo";
$TableName="hallo";

$Link = mysql_connect ($Host, $User, $Passwort);

$Query = "SELECT * FROM $TableName";
$Result = mysql_db_query ($DBName, $Query, $Link);
?>
<Table border="1" cellpadding="0" cellspacing="0" width="25%">
<tr>
<td>Name</td>
<td>Add</td>
</tr>
<?php
while ($Row = mysql_fetch_array ($Result))
{
?>
<form action='1.php' method='post'>
<tr>
<td><? echo $Row[description] ?></td>
<td><input type="image" src="add.gif"></td>
<input type="hidden" name="id" value="<?php echo $Row[id] ?>">
</tr>

<?php
}
mysql_close();
?>

</Table>
</Body>
</Html>



1.php

<Html>
<Head>
</Head>
<Body>
<?php
$Host = "localhost";
$User = "";
$Passwort = "";
$DBName = "hallo";
$TableName="hallo";

$Link = mysql_connect ($Host, $User, $Passwort);

$Query = "SELECT price FROM $TableName where id = '$Row[id]'";
$Result = mysql_db_query ($DBName, $Query, $Link);
?>
<Table border="1" cellpadding="0" cellspacing="0" width="25%">
<tr>
<td><Center>Цена выбранного продукта</Center></td>

</tr>
<?php
while ($Row = mysql_fetch_array ($Result))
{
?>
<form action='1.php' method='post'>
<tr>
<td><? echo $Row[price] ?></td>
</tr>

<?php
}
mysql_close();
?>

</Table>
</Body>
</Html>
 

Nikolas

Guest
а какую ошибку выдает? хочешь чтобы народ обкатывал твой скрипт, на только у тебя существующей базе?

-~{}~ 14.03.04 20:29:

SELECT price FROM $TableName where id = '$Row[id]'

запрос свой посмотри в 1.php

должен быть

SELECT price FROM $TableName where id = '$id'
 

levi-de

Новичок
Поменял... Вот, уже кое-что получилось... вместо пустой страницы скрипт выводит price, но почему то только для одного товара. Короче, на какую бы кнопку я не нажал, всё время получаю одинаковый результат, а цены на продукты должно выдавать разные.

index.php

<Html>
<Head>
</Head>
<Body>
<?php
$Host = "localhost";
$User = "";
$Passwort = "";
$DBName = "hallo";
$TableName="hallo";

$Link = mysql_connect ($Host, $User, $Passwort);

$Query = "SELECT * FROM $TableName";
$Result = mysql_db_query ($DBName, $Query, $Link);
?>
<Table border="1" cellpadding="0" cellspacing="0" width="25%">
<tr>
<td>Name</td>
<td>Add</td>
</tr>
<?php
while ($Row = mysql_fetch_array ($Result))
{
?>
<form action='1.php' method='post'>
<tr>
<td><? echo $Row[description] ?></td>
<td><input type="image" src="add.gif"></td>
<input type="hidden" name="id" value="<?php echo $Row[id] ?>">
</tr>

<?php
}
mysql_close();
?>

</Table>
</Body>
</Html>



1.php

<Html>
<Head>
</Head>
<Body>
<?php
$Host = "localhost";
$User = "";
$Passwort = "";
$DBName = "hallo";
$TableName="hallo";

$Link = mysql_connect ($Host, $User, $Passwort);

$Query = "SELECT price FROM $TableName where id = '$id'";
$Result = mysql_db_query ($DBName, $Query, $Link);
?>
<Table border="1" cellpadding="0" cellspacing="0" width="25%">
<tr>
<td><Center>Цена выбранного продукта</Center></td>

</tr>
<?php
while ($Row = mysql_fetch_array ($Result))
{
?>
<form action='1.php' method='post'>
<tr>
<td><? echo $Row[price] ?></td>
</tr>

<?php
}
mysql_close();
?>

</Table>
</Body>
</Html>
 

Demiurg

Guest
скажите, а какой смысл в форме с одним полем "submit" ?
просто ссылкой обойтись нельзя ?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху