Php 如何组织MYSQL数据库?

Php 如何组织MYSQL数据库?,php,mysql,sql,phpmyadmin,Php,Mysql,Sql,Phpmyadmin,我对MYSQL了解不多,在设计数据库结构时遇到困难。我不理解网上提供给我的所有信息,太多的行话期望我理解其他术语和想法,不想为这份工作参加课程,所以我希望这足够简单 我想在页面上创建文件列表。应该有4个字段: 名称-文件标题 单位-我希望能够将多个单位添加到某些文件中,选择此文件适用的单位(例如:27、X1或10) Typeof-它是什么类型的文件(例如:swf、pdf、url) 项目-生成文件的项目(例如:性健康、信息素养) 结果-这应该能够存储数字1-5,因此一个文件可能有(1、3和5)

我对MYSQL了解不多,在设计数据库结构时遇到困难。我不理解网上提供给我的所有信息,太多的行话期望我理解其他术语和想法,不想为这份工作参加课程,所以我希望这足够简单

我想在页面上创建文件列表。应该有4个字段:

  • 名称-文件标题
  • 单位-我希望能够将多个单位添加到某些文件中,选择此文件适用的单位(例如:27、X1或10)
  • Typeof-它是什么类型的文件(例如:swf、pdf、url)
  • 项目-生成文件的项目(例如:性健康、信息素养)
  • 结果-这应该能够存储数字1-5,因此一个文件可能有(1、3和5)
问题是我想如何使用这些数据,我想能够首先搜索单元并找到匹配项,比如第27单元,然后我想找到该单元中的每个项目并列出该项目中的文件

问题是文件可能而且应该在页面上出现多次,因为有些文件有多个单位,但我想不出如何最好地做到这一点,搜索字符串的索引似乎很混乱

为了帮助形象化我想要的是页面结构的图像:

非常感谢你的帮助

到目前为止,我所拥有的:

  name    text                       utf8_unicode_ci 
  typeof set('swf','fla','web','pdf') utf8_unicode_ci  No None                
  units text utf8_unicode_ci  No None                
  url text utf8_unicode_ci  No None                
  project set('sexual health','information literacy','experimental') utf8_unicode_ci  No None                
  outcomes text utf8_unicode_ci  No None                
@尼克:

<?php 
$query = "SELECT * FROM `repository` WHERE `units` = '27' LIMIT 0, 999 ";
$result=mysql_query($query) or die(mysql_error()) ;
$num = mysql_num_rows($result);

$i=0;
while ($i < $num) {

$name=mysql_result($result,$i,"name");
$filetype=mysql_result($result,$i,"typeof");
$project=mysql_result($result,$i,"project");
$units=mysql_result($result,$i,"units");
$url=mysql_result($result,$i,"url");

echo "File name: ".$name."<br>";
echo "Units: ".$units."<br>";
echo "In project: ".$project."<br>";
echo "Url: ".$url."<br>";

$i++;
}
?>

在阅读了您的问题几遍之后,您似乎理解了如何构建表,您只需要帮助查询它们。您是否有可以共享您尝试过的代码

您可能应该执行表联接。

已解决:)

我决定为每个单元创建一个新表,因为不同单元的文件可能相同,但结果不同。我的数据库的其余部分保持不变,并使用php对可能结构糟糕的数据库进行排序。。。如果您感兴趣,以下是我的代码:

<?php 
$table = array("301","302","310","311","25","26","27","28","29","1","2","3","4","8","10","X1","X2");
for ($a=0;$a<sizeof($table);$a++) {
$query = "SELECT * FROM `$table[$a]`";
$result=mysql_query($query) or die(mysql_error()) ;
$num = mysql_num_rows($result);
if ($num > 0) {
include($_SERVER['DOCUMENT_ROOT']."/units_and_evidence/units/".$table[$a].".php");
$projects = array();
for ($b=0;$b<$num;$b++) {
$project=mysql_result($result,$b,"project");
array_push($projects, $project);
}
$unique_projects = array_unique($projects);
for($c=0;$c<sizeof($unique_projects);$c++) {
$project_string = ucfirst($unique_projects[$c]);
print ('<div class="project"><h3>'.$project_string.'</h3>');
for($d=0;$d<$num;$d++) {
$name=mysql_result($result,$d,"name");
$project=mysql_result($result,$d,"project");
$typeof=mysql_result($result,$d,"typeof");
$url=mysql_result($result,$d,"url");
$outcomes=mysql_result($result,$d,"outcomes");
if ($project == $unique_projects[$c]) {
$outcomes_array= array();
for ($e=0;$e<strlen($outcomes);$e++) {
array_push($outcomes_array, $outcomes[$e]);
}
rsort($outcomes_array);
if ($typeof == swf) {
$proj = str_replace(' ', '', $project); 
$file = str_replace(' ', '', $url); 
print ('<li><a href="flashdelivery.php?proj='.urlencode($proj).'&file='.urlencode($file).'" class="'.$typeof.'selector">');
}
else {
print ('<li><a href="'.$url.'" class="'.$typeof.'selector">');
}
for ($f=0;$f<sizeof($outcomes_array);$f++) {
  print ('<span class="n'.$outcomes_array[$f].'"></span>');
}
print ('&raquo; '.ucfirst($name).'</a></li>');
}
}
print ('</div>');
}
print ("</ul>");
}
}
include($_SERVER['DOCUMENT_ROOT']."/footer.php"); 
?>


您所问的不是一个具体的问题,而是一个非常广泛的问题。如果您添加到目前为止您实际做过的事情,您会得到更好的回答。包括您的表、字段(以及一些数据,如果可能的话,每个表有几行)。好的,添加了我当前的结构,我现在的问题是能够添加多个单元并在每个特定单元中重复文件。@Hogan没有人雇用我这是我的学徒投资组合网站,我有很多文件要上传和排序,手工列出太多了。等等-不应该假设什么,但我看到的所有信息都说这不可行,不使用集合。等等使用单独的表格,但我不理解他们的示例或如何实现它。。。但到目前为止,我只能输出一张表,不知道如何查看单元中存在哪些项目,因为如果单元中没有文件,比如“实验”,我不想在页面上构建实验区域。编辑:代码不适合在这里检查代码底部的问题。看起来您需要查询项目类型,循环结果,然后执行嵌套循环以显示实际项目。在成果和项目之间应该有一个中间表。告诉你怎么做真的很难。我觉得单位仍然是错误的,例如有一个单位叫310和10,因为我现在想存储多个单位,我必须做一个搜索索引,但是单位10当前将显示为310的索引。假设我循环遍历project的结果,并将每个值存储在数组中(从数组中删除重复项),然后循环遍历数组以在每个单元下构建projects区域,然后对该单元执行查询,每个项目的该项目听起来是可能的。但是你知道我进退两难的办法吗?谢谢你的建议,伙计。