数据访问......简单练习

一、通过登陆者找到他的好友并显示在页面上

关于登陆会在后期学习,现在就设定登陆者为18653378660

<?php

$uid = 18653378660;

?>

在做之前先思考逻辑是怎么实现的,先分析两张表,看一下我要实现什么功能,然后一步一步推导我应该怎么做。

先连接数据库,根据用户名Uid到Friends表里面查Friends,然后根据Friends到users表里面查到NickName和Pic在页面上显示出来,最后用CSS与JS调整样式与布局

<?php
$db=new MySQLi("localhost","root","xiao8888","weixin");
!mysqli_connect_error() or die("连接失败!");
$sql="select Friends from Friends where Uid=‘{$uid}‘";
$result=$db->query($sql);
$attr=$result->fetch_all();
//var_dump($attr);
foreach($attr as $v)
{
    $fuid=$v[0];        //好友用户名
    //根据好友用户名去查users表查出昵称和头像
    $sqlu="select NickName ,Pic from Users where UId=‘{$fuid}‘";  //根据主键值只能查出一条数据,所以可用fetch_row()读取数据
    $r=$db->query($sqlu);
    $attru = $r->fetch_row();
    echo "<div class=‘hy‘ onclick=‘Select(this)‘  >
            <div class=‘pic‘><img src=‘{$attru[1]}‘ width=‘50‘ height=‘50‘/></div>
            <div class=‘nk‘>{$attru[0]}</div>
    </div>";
    //Select(this)中this代表元素本身
}
?>

CSS样式:

<style type="text/css">

*{ margin:0 auto; padding:0;}

.hy{ width:200px; height:50px; margin-top:5px;}

.hy:hover{ background-color:#06c; cursor:pointer; color:#FFF;}

.pic{ width:50px; height:50px; float:left;}

.nk{ width:130px; height:50px; float:left; marin-left:20px; line-height:50px; vartical-align:middle; }

</style>

用Javascript实现选中状态:

<script type="text/javascript">

function Select(aa)

{

  //清除原选中状态

  var div = document.getElementsByClassName("hy");

  for(var i=0;i<div.length;i++)

  {

    div[i].style.backgroundColor="white";

    div[i].style.color="#000";

  }

  //设置选中状态

  aa.style.backgroundColor="#60c";

  aa.style.color="#FFF";

}

</script>

?>

注意:用JS后CSS中的hover效果颜色无效,但鼠标指针效果仍在。

二、流式布局(float)

以div为例,div默认占用一行,我们虽然可通过CSS设置div自身大小,但他还是会占用一行,如果我们不想让他占一行,就要用到流。

<div>AA</div>

<div>BB</div>

<div>CC</div>

<div>DD</div>

<div>EE</div>

<div>FF</div>

没有加样式时默认占用一行

加入样式 .test{ width:200px; height:50px;}后div自身大小变了,但还是会占用一行,后面橘黄色部分相当于margin

用float向左流,所有的div依次向左靠: .test{ width:200px; height:50px; float:left;}

用float向右流时,所有的div依次从右向左排: .test{ width:200px; height:50px; float:right;}

当一行不够用时,自动到第二行,一直往下流。

但是用了流之后,就相当于浮在上层,下面的东西会往上靠,比如新加一个div:<div style="width:100px; height:100px; background-color:red">FF</div>

AA会浮在FF上面

如果不想让流式布局影响到下面的东西,就必须截断流:<div style="clear:both"></div>

截断流之后就可以正常显示了

时间: 2024-10-12 04:47:28

数据访问......简单练习的相关文章

SqlSugar简单工模式数据访问简单Demo

源代码地址:http://git.oschina.net/tiama3798/BootstrapBack_Demo 1.Model层 2.抽象层实例: 基础接口 /// <summary> /// 基础接口 /// </summary> public interface IBaseAbstract<T> where T : class { #region 基础访问 /// <summary> /// 获取表达式树 /// </summary> /

C#连接层的数据访问类(简单版)

目前只写了与SqlServer的数据处理. 首先是静态工厂类. using System; using System.Configuration; namespace XPSoft.BaseLibrary.DataAccess { /// <summary> /// 数据访问对象的静态工厂类,用于创建不同类型的数据访问对象. /// </summary> public static class DataAccessFactory { /// <summary> ///

十步优化SQL Server中的数据访问(转载)

原文地址:http://tech.it168.com/a2009/1125/814/000000814758.shtml 故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户,你开始着手调查访问变慢的原因. 经过紧张的调查,你发现问题出在数据库上,当应用程序尝试访问/更新数据时,数据库执行得相当慢,再次深入调查数据库后,你发现数据库表增长得很大,有些表

二.数据访问

第二章  数据访问 读书笔记: JavaScript 中有四种基本数据访问位置: 直接量:直接量仅仅代表自己,而不存储特定位置.字符串,数字,布尔,对象,数组,函数,正则表达式,具有特殊意义的空值,以及未定义. 变量:var关键字创建用于存储数据值. 数组项:具有数字索引,存储一个javascript数组对象. 对象成员: 具有字符串索引,存储一个javascript对象. 总的来说, 直接量和局部变量的访问速度要快于数组项和对象成员的访问速度. 管理作用域 每个javascript函数都被表示

微软-创建数据访问层

简介 https://msdn.microsoft.com/zh-cn/cc964016 作为web 开发人员,我们的工作总是在和数据打交道.我们创建数据库来存储数据,编写代码来检索并修改数据,并创建Web 页面来收集和汇总数据.这是探讨在ASP.NET 2.0 中实现这些常用类型的技巧的系列教程中的首篇教程.我们从创建一个 软件架构 开始,包括使用Typed DataSet 的数据访问层(DAL) .实现自定义业务规则的业务逻辑层(BLL) 和共享同一页面布局的ASP.NET 页面组成的表示层

opencv-从图像旋转学习Mat数据访问

先看一个简单的例子 代码: // ConsoleApplication3_6_23.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<opencv2/opencv.hpp> #include<iostream> #include<vector> using namespace std; using namespace c

企业级应用框架(二)三层架构之数据访问层的封装与抽象

接上一篇我们来对数据访问层进行封装与抽象.在上一篇我们知道,要解除BLL对DAL的依赖,我们就必须抽象出DAL层的接口,同时基于DAL的数据访问技术很多,如EF,ADO.NET,LINQ TO SQL,因此,我们的数据访问层必须对这些技术提供相应的支持.所以今天我们要做的事情有两件,第一,定义我们的数据访问层接口:第二,屏蔽各类数据库访问技术的差异,提供统一的数据库访问模型.举个例子,我们只需要修改一下我们的配置文件,就能够把ADO.NET的实现方式,改变成EF的实现方式.好下面搭建我们的三层构

服务器端数据访问

服务器端数据介绍 连接.命令和数据集 访问基于 SQL 的数据 将 SQL 数据绑定到 DataGrid 执行参数化选择 在 SQL 数据库中插入数据 更新 SQL 数据库中的数据 删除 SQL 数据库中的数据 将 SQL 数据库中的数据排序 处理主-从关系 编写和使用存储过程 访问基于 XML 的数据 本节小结 服务器端数据介绍 数据访问是任何实际应用程序的核心部分,而 ASP.NET 提供了一套丰富的控件,这些控件与公共语言运行库中提供的托管数据访问 API 很好地集成在一起. 本节多次演练

实体类,数据访问类.字符串攻击.防攻击

程序分三层:界面层.业务逻辑层.数据访问层 这里主要操作的是数据访问层,数据访问层又分为: 1.实体类 2.数据访问类 存放位置:APP_Code文件中 一.实体类 最简单的封装把数据库的表名变成类的类名把数据库的每一个列,变为实体类中的成员变量和属性列名与属性名一致 有几行就有几个实体类 这是一个简单的实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namesp