我对MYSQL了解不多,而且我在设计数据库结构时遇到了麻烦。我不明白在网上提供给我的所有信息太多术语让我理解其他的术语和想法,并且不想为这一项工作选择一门课程,所以我希望这很简单。
我想在页面上创建文件列表。应该有4个字段:
问题是我想如何使用这些数据,我希望能够首先搜索单位并找到单元27的匹配说,然后我想找到该单元中的每个项目并列出该项目中的文件
问题是文件可能并且应该在页面上多次出现,因为有些文件有多个单元但是我不能想如何做到这一点,搜索字符串的索引似乎很乱。
为了帮助我看到我想要的内容,可以看到如何构建页面的图像:how the page will be structured http://biteof.com/example.bmp
非常感谢您的帮助。
到目前为止我所拥有的:
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
@Nick:
<?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++;
}
?>
答案 0 :(得分:2)
在阅读了几次问题之后,您似乎了解了如何构建表,您只需要帮助查询它们。你有可以分享的代码吗?
你应该做一个桌子加入。
答案 1 :(得分:1)
解决了:)
我决定为每个单元创建一个新表,因为不同单位的文件可能相同但结果不同。我的数据库的其余部分保持不变并使用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 ('» '.ucfirst($name).'</a></li>');
}
}
print ('</div>');
}
print ("</ul>");
}
}
include($_SERVER['DOCUMENT_ROOT']."/footer.php");
?>