免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3225 | 回复: 3
打印 上一主题 下一主题

[C] c操作MYSQL和二维数组的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-25 22:18 |只看该作者 |倒序浏览
5可用积分
float array[29][4];         myfirstsql=mysql_init(NULL);      
if(mysql_real_connect(myfirstsql,"192.168.1.100","root","123456","xcx",3306,NULL,0))               
{                     
  printf("CONNECTING SUCCESSFUL!!!!!!!\n";               
}               
if (mysql_query(myfirstsql,sqlbuf)+1)                        
//        printf("query sucefull\n";                                
{                       
result = mysql_store_result(myfirstsql);                        
a=(int)(mysql_num_rows(result));                                                      
printf("a = %d\n", a);                        //打印每个字段的名称                        
for (b=0; field=mysql_fetch_field(result); b++)                        
{                                
//printf("succefull\n";                                
strcpy(name, field->name);                                
printf("%s\n",name);                        
}                        
//取每个名称里面的内容                        
for (i=0; row=mysql_fetch_row(result)  
{                                
for(j=0;j<4;j++)                        
{                                            
array[j]   = atof(row[j]);                                
printf("%f",array[j]);                       
}                                
printf("\n");                        
}        
for(i=0;i<29;i++)
{        
for(j=0;j<4;j++)        
{               
printf("%f",array[j]);        
}        
printf("\n");
}                        
简单的写一下代码,我的目的是从数据库指定表中取出数据然后赋值给定义的array二维数组,可是遇到了问题!!在第一个for循环中,printf出的array[j]和表里的数据一一对应,显示正确。但是第二个printf却出现问题,二维数组中第一行竟然是表中的最后一行,剩下的全是类似于-68575858这样的数字。这到底是什么问题啊?代码在vs2005中能成功编译,就是二维数组输出竟然全乱了。各位大哥大姐快帮帮我吧

[[i] 本帖最后由 xiaoguosheng101 于 2008-8-26 10:05 编辑 [/i]]

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
2 [报告]
发表于 2008-08-25 22:38 |只看该作者

回复 #1 xiaoguosheng101 的帖子

选中“禁用Discuz!”后把代码重新贴一下吧,[i]被吃掉了!
另外,for(i=0;i<29;i++)有点问题,记录数刚好为29吗?你把记录数保存到变量a中了吧。

论坛徽章:
0
3 [报告]
发表于 2008-08-26 00:48 |只看该作者
原帖由 xiaoguosheng101 于 2008-8-25 22:18 发表
float array[29][4];
        myfirstsql=mysql_init(NULL);
       if(mysql_real_connect(myfirstsql,"192.168.1.100","root","123456","xcx",3306,NULL,0))
                {
                        printf ...

//取每个名称里面的内容
                        for (i=0; row=mysql_fetch_row(result)   {
                                for(j=0;j<4;j++)
                        {               
                             array[j]   = atof(row[j]);
                                printf("%f",array[j]);
                        }
.....



难以想象,这能编译通过?

论坛徽章:
0
4 [报告]
发表于 2008-08-26 08:16 |只看该作者
你要操作的二维数组, 不是一维数组,写代码看清楚点
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP