2013-02-14 5 views
1

Я в тупике. Вот мой соответствующий код:Уникальный идентификатор записей MySQL

while($data = mysql_fetch_array($getdata)){ 

$myid = $data["myid"]; //unique entry identifier for table rows 
$method = $data["method"]; 
$category = $data["category"]; 
$company = $data["company"]; 
$datestarted = $data["datestarted"]; 
$initialfee = $data["initialfee"]; 
$ongoingfee = $data["ongoingfee"]; 

echo "</tr>"; 
echo "<tr>"; 
echo "<td class='mymenu' width='14%' height='60px'>"; 
echo $method; 
echo "</td>"; 
echo "<td class='mymenu' width='20%' height='60px'>"; 
echo $category; 
echo "</td>"; 
echo "<td class='mymenu' width='20%' height='60px'>"; 
echo $company; 
echo "</td>"; 
echo "<td class='mymenu' width='12%' height='60px'>"; 
echo $datestarted; 
echo "</td>"; 
echo "<td class='mymenu' width='12%' height='60px'>"; 
echo $initialfee; 
echo "</td>"; 
echo "<td class='mymenu' width='12%' height='60px'>"; 
echo $ongoingfee; 
echo "</td>"; 
echo "<td class='mymenu' width='10%'>"; 
echo "<input type='submit' name='' class='button' value='Remove'>"; 
echo "</td>"; 
} 

Что здесь происходит, является то, что таблица будет отображаться и каждая строка в этой таблице будет выглядеть, как кодируется выше. Может быть любое количество записей, но, вероятно, в диапазоне от 1 до 6. В конце каждой записи находится кнопка удаления. После щелчка пользователь пересылается на страницу, где эта запись будет удалена из таблицы. Моя проблема заключается в том, чтобы определить, какую запись пользователь хочет удалить, на основе которой они «удаляют» кнопку, которую они нажали. Если количество строк не было динамическим, я мог бы просто дать каждой кнопке ввода уникальное имя раньше времени, и это могло бы помочь. Как я могу однозначно определить, какую строку мне нужно удалить на странице удаления после нажатия кнопки удаления? Я не могу использовать сеансы, потому что переменная сеанса $ myid будет просто изменяться каждый раз, когда будет создана новая строка. Вытягивание из базы данных не поможет, потому что у меня нет уникального идентификатора на следующей странице.

У меня есть идея установить имя каждой кнопки, равную каждому уникальному $ myid, который сделает эту уникальную $ myid единственной переменной $ _POST, которая будет перемещаться на страницу удаления в зависимости от нажатой кнопки. На странице удаления я бы просто установил $ myid равным этой переменной post. Однако, даже если это единственная переменная post, как я могу ссылаться на нее равной $ myid на странице удаления, не зная ее имени? Потому что я не буду знать имя переменной $ _POST, которая переместилась на страницу удаления.

Ответ, вероятно, прост, но по какой-то причине он не приходит ко мне в эту ночь.

Благодарим за помощь. Честно говоря, не знаю, что бы я сделал без этого форума.

ответ

1

Создайте новую форму для каждой строки со скрытым полем, содержащим идентификатор записи, которую вы хотите удалить.

echo "<form>"; 
echo "<td class='mymenu' width='10%'>"; 
echo "<input type='hidden' value='$id'>"; 
echo "<input type='submit' name='' class='button' value='Remove'>"; 
echo "</td>"; 
echo "</form>"; 
+0

Спасибо за помощь, подумал об этом. –

+1

И если вы хотите сделать это как единую форму с рядом нескольких флажков, используйте элемент флажка с именем = "remove [$ id]" для каждого элемента и значением чего-то (например, value = "1" или value = "delete"), вы можете выполнить итерацию через массив id, хранящийся как $ _GET ['remove'] или $ _POST ['remove'], или, альтернативно, объединить идентификаторы и выполнить один запрос MySQL с помощью функции IN() – Scuzzy

0

Сначала я хочу сказать, что ваш tr тег не помещается хорошо, и создать form, чтобы решить вашу проблему

Попробуйте это:

while($data = mysql_fetch_array($getdata)){ 

    $myid = $data["myid"]; //unique entry identifier for table rows 
    $method = $data["method"]; 
    $category = $data["category"]; 
    $company = $data["company"]; 
    $datestarted = $data["datestarted"]; 
    $initialfee = $data["initialfee"]; 
    $ongoingfee = $data["ongoingfee"]; 


    echo "<tr>"; 
    echo "<td class='mymenu' width='14%' height='60px'>"; 
    echo $method; 
    echo "</td>"; 
    echo "<td class='mymenu' width='20%' height='60px'>"; 
    echo $category; 
    echo "</td>"; 
    echo "<td class='mymenu' width='20%' height='60px'>"; 
    echo $company; 
    echo "</td>"; 
    echo "<td class='mymenu' width='12%' height='60px'>"; 
    echo $datestarted; 
    echo "</td>"; 
    echo "<td class='mymenu' width='12%' height='60px'>"; 
    echo $initialfee; 
    echo "</td>"; 
    echo "<td class='mymenu' width='12%' height='60px'>"; 
    echo $ongoingfee; 
    echo "</td>"; 



    echo "<td class='mymenu' width='10%'>"; 
    echo "<form>"; 
    echo "<input type='hidden' value='".$id."'>"; 
    echo "<input type='submit' name='' class='button' value='Remove'>"; 
    echo "</form>"; 
    echo "</td>"; 

    echo "</tr>"; 
} 
0

попробовать это @Lock забыл поставить " в форме.

<?php 
echo "<form>"; 
echo "<table><tr>"; 
echo "<td class='mymenu' width='10%'>"; 
echo "<input type='hidden' value='$id'>"; 
echo "<input type='submit' name='' class='button' value='Remove'>"; 
echo "</td>"; 
echo "</tr></table>"; 
echo "</form>"; 
?> 
+0

Исправил свой ответ :) – Lock

+0

Я знаю дорогой и уже сказал, что ваш ответ просто отредактирует его. –

Смежные вопросы