Peuplarchie Posted April 29, 2010 Share Posted April 29, 2010 Good day to you all, I'm still learning the wicked database world and i found a piece of code which read and display a db table without me telling each colum totle and field name. Here is my code: ... if (!mysql_connect($db_host, $db_user, $db_pwd)) die("Can't connect to database"); if (!mysql_select_db($database)) die("Can't select database"); // sending query $result = mysql_query("SELECT * FROM {$table}"); if (!$result) { die("Query to show fields from table failed"); } $fields_num = mysql_num_fields($result); echo "<h1>Table: {$table}</h1>"; echo "<table border='0' id=\"table\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"><tr>"; echo "<td id=\"title\">options</td>"; // printing table headers for($i=0; $i<$fields_num; $i++) { $field = mysql_fetch_field($result); echo "<td id=\"title\">{$field->name}</td>"; } echo "</tr>\n"; // printing table rows $s = 0; while(($row = mysql_fetch_row($result)) !== false){ $s++; echo "<tr>"; echo "<td id=\"fields".($s & 1)."\"><a href=\"delete_table_row_db.php?id=" . $s[id]. "\" title=\"DELETE : Row ID #:" . $s[id] . "\"><img src=\"Template/Images/delete.png\" border=\"0\"/></a><INPUT TYPE=\"checkbox\" name=\"" . $row['id'] . "\"></td>"; // $row is array... foreach( .. ) puts every element // of $row to $cell variable foreach($row as $cell) echo "<td id=\"fields".($s & 1)."\">$cell</td>"; echo "</tr>\n"; } mysql_free_result($result); In the part : <td id=\"fields".($s & 1)."\"><a href=\"delete_table_row_db.php?id=" . $s[id]. "\" title=\"DELETE : Row ID #:" . $s[id] . "\"><img src=\"Template/Images/delete.png\" border=\"0\"/></a><INPUT TYPE=\"checkbox\" name=\"" . $row['id'] . "\"></td>"; What i'm trying to do is to add options to the row, ex: delete, edit... My only problem is that I cannot find the var to put which would tell which row it is. Can somebody help me ? Thanks! Link to comment https://forums.phpfreaks.com/topic/200229-add-field-to-displaying-mysql-row/ Share on other sites More sharing options...
ChemicalBliss Posted April 29, 2010 Share Posted April 29, 2010 Use the row id to tell which row to delete, you can even delete multiple rows at a single time, using the OR condition clause in the mysql statement: $s[id] should be $row['id'] For the checkboxes, use an array: <input type="checkbox" name="checkrowdel[<?php echo($row['id']); ?>]" /> Delete? Then on the processing php script you can loop the checkrowdel array and add the id to the where clause in the mysql query for each checkbox that was checked (using the "array_key" of each array item that was checked), to get the array keys of an array use array_keys(); -cb- Link to comment https://forums.phpfreaks.com/topic/200229-add-field-to-displaying-mysql-row/#findComment-1050768 Share on other sites More sharing options...
Peuplarchie Posted April 29, 2010 Author Share Posted April 29, 2010 I tried the $row['id'] but it don't display anything. Link to comment https://forums.phpfreaks.com/topic/200229-add-field-to-displaying-mysql-row/#findComment-1050788 Share on other sites More sharing options...
ChemicalBliss Posted April 30, 2010 Share Posted April 30, 2010 Your tables do have id columns? ID columns are necessary to give respective elements a unique identifier. -cb- Link to comment https://forums.phpfreaks.com/topic/200229-add-field-to-displaying-mysql-row/#findComment-1050828 Share on other sites More sharing options...
Peuplarchie Posted April 30, 2010 Author Share Posted April 30, 2010 yes it do. That is the part I don't understand. Link to comment https://forums.phpfreaks.com/topic/200229-add-field-to-displaying-mysql-row/#findComment-1050830 Share on other sites More sharing options...
ChemicalBliss Posted April 30, 2010 Share Posted April 30, 2010 do print_r($row); in the while loop, see what comes up. -cb- Link to comment https://forums.phpfreaks.com/topic/200229-add-field-to-displaying-mysql-row/#findComment-1050835 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.