|
|
|
| Всем привет. Делаю свой проект и столкнулся с одной проблемой. Если кто сможет, помогите пожалуйста. Суть вот в чём:
1. У меня есть БД с таблицей “tabl1”, в ней примерно 10 записей. У каждого свой “id”. Записи постоянно добавляются.
2. На страницы “index.php” я вывожу эти записи, вот так:
<?php
$result = mysql_query ("SELECT * FROM tabl1 WHERE p1 = '1'") or die (mysql_error());
$data = mysql_fetch_array ($result);
do {
printf ('
<div align="center">
<p><span class="c_1">Название:</span> %s| <span class="с_1">Производитель:</span> %s | <a href="view.php?id=%s" class="col_e"> Описание</a> | <span class="с_1"></span>Ток: %s</p>
<a href="new.php?id=%s" class="sras"> Полностью </a>
<div style="clear: both;"></div>
</div>
',$data["name"],$data["proi"],$data["id"],$data["tokc"],$data["id"]);
echo "<br>";
}
while ($data = mysql_fetch_array ($result));
?>
|
3. При нажали на ссылку Полностью (<a href="new.php?id=%s" class="sras"> Полностью </a>), должен перейти на другую страницу (new.php).
4. На этой страницы должна вывестись информация связанная с этим параметром: p1 = '1'. Делаю это вот так:
<?php
if(!isset($_GET["id"]))
{
$id = 1;
}
else
{
$id = $_GET["id"];
}
$sql2 = mysql_query("SELECT * FROM tabl1 WHERE p1 = '$id'") or die (mysql_error());
$result2 = mysql_fetch_array ($sql2) or die (mysql_error());
do {
printf ('
<div align="left" class="m_menu">
<li>Название: <span class="text_2">%s</span> \ <span class="text_2">%s</span></li>
<li>Производитель: <span class="text_2">%s</span></li>
<li>Ток: <span class="text_2">%s</span></li>
</div>
<div style="clear: both;"></div>
',$data["name"],$data["proi"],$data["tokc "]);
echo "<br>";
}
while ($data = mysql_fetch_array ($result));
?>
|
5. Выводится только вот это:
<div align="left" class="m_menu">
<li>Название: <span class="text_2">%s</span> \ <span class="text_2">%s</span></li>
<li>Производитель: <span class="text_2">%s</span></li>
<li>Ток: <span class="text_2">%s</span></li>
</div>
|
А значений ни каких нет.
Вообщем, мне надо сделать переход по ссылки с определённым “id” и на той страницы отобразилась инфа для этого “id”. Перешёл по другой ссылки, инфа соответственно для него.
Заранее спасибо! | |
|
|
|
|
|
|
|
для: DeadDay
(29.10.2013 в 09:03)
| |
<?
$select = isset($_GET['id']) && ($id = (int)$_GET['id']) ? 'WHERE p1='.$id : null;
if($q = mysql_query ('SELECT * FROM tabl1 '.$select)) {
if(mysql_num_rows($q)) { //если действительно есть записи в таблице
//и цикл, это если действительно не одна запись может быть, иначе цикл не нужен
//но не do ... while с printf
//и тем более зачем Производитель и Полностью если обращение к одному и тому же?
$s = '<div style="width:500px;margin:0 auto">'; //а лучше через class, но не align="center", и если этот элемент содержит параграфы, зачем его повторять?
//<div style="clear: both;"></div> - это и <br> для чего?
while($r = mysql_fetch_assoc($q)) $s .= '<p><span class="c_1">Название:</span>' . htmlspecialchars($r['name']) . ' |
<span class="с_1">Производитель:</span>' . htmlspecialchars($r['proi']) . ' |
<a href="view.php?id=' .$r['id']. '" class="col_e"> Описание</a> |
<span class="с_1"></span>Ток: ' .$r['tokc']. '</p>
<a href="new.php?id=' .$r['id']. '" class="sras"> Полностью </a>';
echo $s . '</div>'; //вывод с закрытием родителя
}
} exit ('Ошибка доступа к базе'); //или не выход и продолжение где действия по условию,
//а or die (mysql_error()); это только для вас во время отладки, но не вываливайте это для пользователя
|
Остается только вопрос - каким образом у вас можно вывести нечто подробное, если вы запрашиваете одно и тоже? У вас доложен быть либо запрос к другой таблице, в которой подробное содержание, и которая связана с первой таблицей, либо вы должны выбирать для вывода всех записей только id, а при наличии id конкретные поля таблицы содержащие эти подробные сведения.
Иначе какой-то ляпсус у вас. | |
|
|
|