الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد اظهار كم عدد الحرف الناتج عن الاستعلام

بدأه man in dark في 13 أغسطس 2008 · 15 رد · 1,222 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني لدي قاعدة بيانات بهذا الشكل

-- phpMyAdmin SQL Dump
-- version 2.9.1.1
-- http://www.phpmyadmin.net
-- 
-- المزود: localhost
-- أنشئ في: 12 أغسطس 2008 الساعة 20:55
-- إصدارة المزود: 5.0.22
--  PHP إصدارة: 4.4.4
-- 
-- قاعدة البيانات: `test`
-- 

-- --------------------------------------------------------
-- 
-- بنية الجدول `mokaj`
-- 

CREATE TABLE `mokaj` (
  `id` int(10) NOT NULL auto_increment,
  `user_id` int(10) NOT NULL,
  `moka` varchar(60) NOT NULL,
  `reson` varchar(2000) NOT NULL,
  `numcoust` varchar(60) NOT NULL,
  `mokadate` date NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1256 AUTO_INCREMENT=102;

-- 
-- إرجاع أو إستيراد بيانات الجدول `mokaj`
-- 

INSERT INTO `mokaj` (`id`, `user_id`, `moka`, `reson`, `numcoust`, `mokadate`) VALUES 
(93, 99, 'ب', 'لا', '54546', '10'),
(94, 99, 'أ', 'لا', '785875', '12'),
(95, 99, 'ب', 'لا', '5786578', '10'),
(96, 99, 'أ', 'لا', '54', '12'),
(97, 99, 'ج', 'لا', '444', '12'),
(98, 99, 'أ', 'لا', '5546456', '2'),
(99, 99, 'ب', 'لا', '5686', '12'),
(100, 100, 'ج', 'لا', '6768', '12'),
(101, 101, 'ج', 'لا', '555', '2008-08-12');

-- --------------------------------------------------------

-- 
-- بنية الجدول `newaj`
-- 

CREATE TABLE `newaj` (
  `id` int(4) NOT NULL auto_increment,
  `name` varchar(60) NOT NULL,
  `user` varchar(60) NOT NULL,
  `number` varchar(60) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1256 AUTO_INCREMENT=102;

-- 
-- إرجاع أو إستيراد بيانات الجدول `newaj`
-- 

INSERT INTO `newaj` (`id`, `name`, `user`, `number`) VALUES 
(100, 'احمد', '2', '2'),
(101, 'خالد', '3', '3'),
(99, 'محمد', '1', '1');

عند الاستعلام عن "احمد " يظهر لي ان لديه "3ج" و لكن في قاعدة البيانات لديه "1ج "

الكود هو

<?php	
$qr = mysql_query("SELECT DISTINCT(`moka`) FROM `mokaj` WHERE user_id=".$id);
$num = mysql_num_rows($qr);
while($le = mysql_fetch_array($qr))
{
echo "   " .$le['moka']. "  :";
echo mysql_num_rows(mysql_query("SELECT `id` FROM `mokaj` WHERE `moka` = '$le[moka]'"))."     ";
}
?>

الخطاء اخواني في هذا السطر

$qr = mysql_query("SELECT DISTINCT(`moka`) FROM `mokaj` WHERE user_id=".$id);

ارجو المساعدة

#2

الكود سليم , ومن المفترض انه سيعيد "ج" واحده فقط , ولا داعي حتى لإستخدام DISTINCT (لاتشكل فرقاً هنا) ,,

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#3

اخي محمد معاشر الكود يظهر 3 ج

لم يتحقق الشرط

WHERE user_id=".$id);
#4
man in dark كتب:
اخي محمد معاشر الكود يظهر 3 ج

لم يتحقق الشرط

WHERE user_id=".$id);

جرب اكتب الاستعلام في الـ phpmyadmin , لترى ان الاستعلام يعمل ام لا ..

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#5

اخي محمد انا استخدمت الكود في نفس الصفحة و هو يعمل

WHERE user_id=".$id);

ولكن عند استخدامه في هذا الاستعلام لا يعمل

<?php	
 $qr = mysql_query("SELECT DISTINCT(`moka`) FROM `mokaj` WHERE user_id=".$id);
 $num = mysql_num_rows($qr);
 while($le = mysql_fetch_array($qr))
 {
 echo "   " .$le['moka']. "  :";
 echo mysql_num_rows(mysql_query("SELECT `id` FROM `mokaj` WHERE `moka` = '$le[moka]'"))."     ";
 }
 ?>

هذا هو كود الصفحة كامل

<?php
 $host="localhost"; // Host name
 $username="root"; // Mysql username
 $password=""; // Mysql password
 $db_name="x"; // Database name
 $tbl_name="newaj"; // Table name

 // Connect to server and select database.
 mysql_connect("$host", "$username", "$password")or die("cannot connect");
 mysql_select_db("$db_name")or die("cannot select DB");

 // get value of id that sent from address bar
 $id=$_GET['id'];


 // Retrieve data from database
 $sql="SELECT * FROM $tbl_name WHERE id='$id'";
 $result=mysql_query($sql);
 $rows=mysql_fetch_array($result);

 ?>
 <html dir="rtl">
 <head>
 <title>viewaja</title>
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />
 <style type="text/css"/>
 body {
 font-family : Verdana;
 }
 </style>
 </head>

 <table width="797" border="0" align="center" cellpadding="0" cellspacing="0" height="381">
 <tr>
 <td><form name="signup" method="post" action="signup_ac.php">
 <table width="99%" border="0" cellspacing="5" cellpadding="0">
 <tr>
 <td colspan="3" align="right">
 <u><b><font size="4">Tiet</font></b></u></td>
 </tr>
 <tr>
 <td colspan="3" align="right">
  </td>
 </tr>
 <tr>
 <td colspan="3" align="right">
 <b><span lang="ar-sa"><font size="4">بيانات :</font></span></b></td>
 </tr>
 <tr>
 <td width="97%" align="right" colspan="4"><b>أسم :    <?php echo $rows['name']; ?>
 </b>


 <tr>
 <td width="97%" align="right" colspan="4"><b>يوزر :   <?php echo $rows['user']; ?>
 </b>

 <tr>
 <td width="97%" align="right" colspan="4"><b>رقم :   <?php echo $rows['number']; ?>
 </b>
 <tr>
 <td width="38%" align="right" colspan="3"> </td>
 <tr>
 <td width="38%" align="right" colspan="3"><b><span lang="ar-sa"><font size="4">
 تفاصيل :</font></span></b></td>
 <tr>
 <td width="0" align="right" colspan="3">
 <tr>
 <td align="right" colspan="4">
 <?php
 $qr1 = mysql_query("SELECT  * FROM mokaj WHERE user_id=".$id);
 $num = mysql_num_rows($qr1);
  ?>
 <b>العدد الكلي :   
 <?php $num = mysql_num_rows($qr1);
 echo $num; ?></b>
 <tr>
 <td align="right" colspan="4">
 <b>أنواع :  
 <?php

 $qr = mysql_query("SELECT DISTINCT(`moka`) FROM `mokaj` WHERE user_id=".$id);
 $num = mysql_num_rows($qr);
 while($le = mysql_fetch_array($qr))
 {
 echo "  " .$le['moka']. "&nbsp:";
 echo mysql_num_rows(mysql_query("SELECT `id` FROM mokaj WHERE `moka` = '$le[moka]'"))."     ";
 }
 ?> 
 </b><tr>
 <td align="right" colspan="4">
 <tr>
 <td align="right" colspan="4">
 <b>

 <tr>
 <td align="center" height="24"  style="border:1 1 0 1 solid #330000;padding:5px;">
 <b>نوع</b></td>
 <td width="14%" align="center" height="24" style="border:1 1 solid #330000;padding:5px;">
 <b>رقم</b></td>
 <td width="14%" align="center" height="24" style="border:1 1 solid #330000;padding:5px;">
 <b>تاريخ</b></td>
 <td width="60%" align="center" height="24" style="border:1 1 solid #330000;padding:5px;">
 <b>التفصيل</b></td>
 </tr>
 <?php
	 $sql="SELECT * FROM mokaj  WHERE user_id=".$id;
	 $result=mysql_query($sql);
	 $num_rows = mysql_num_rows($result);
	 if($num_rows>0){
		 while($rows=mysql_fetch_array($result)){
 ?>
 <tr>
 <td align="right" height="24" style="border:1px solid #330000;padding:2px;font-size: 12px;">
 <p align="center"><b><font size="3"><?php echo $rows['moka']; ?></font></b></td>
 <td width="14%" align="right" height="24" style="border:1 1 1 solid #330000;padding:2px;font-size: 12px;">
 <p align="center">
 <b>
 <?php echo $rows['numcoust']; ?></b></td>
 <td width="14%" align="right" height="24" style="border:1 1 1 solid #330000;padding:2px;font-size: 12px;">
 <p align="center">
 <b>
 <?php echo $rows['mokadate']; ?></b></td>
 <td width="60%" align="right" height="24" style="border:1 1 1 solid #330000;padding:2px;font-size: 12px;">
 <p align="center">
 <b>
 <?php echo $rows['reson']; ?></b></td>
 </tr>
 <?php
			 }
	 }
 ?>
 <tr>
 <td width="88%" align="right" colspan="4"> 
 </td>
 </tr>
 </table>
 </body>
 <form>
 </td>
 </tr>
 </table>
 </body>
 </html>
 <?php
 ?>

تم تعديل هذه المشاركة بواسطة man in dark في 14 أغسطس 2008 في 09:42

#6

طيب , جرب تغير السطر :

$id=$_GET['id'];

الى

$id=100;

ونفذ ..

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#7

لا تظهر اي من البيانات التي في الكود كله

#8

جرب

$qr = mysql_query("SELECT `moka`FROM `mokaj` WHERE user_id= '$id' ");

I Say Nothing

#9

اخي mana80

نفس المشكلة

عند الاستعلام عن "احمد " يظهر لي ان لديه "3ج" و لكن في قاعدة البيانات لديه "1ج "

#10

اخواني لو ممكن المساعدة

#11
$qr = mysql_query("SELECT DISTINCT(`moka`) FROM `mokaj` WHERE user_id=".$id);

السطر السابق ليس فيه خطأ

ففيه تقوم بجلب الحقل moka مثلا للشخص الذي الـ id له تساوي 100

فسيطبع الحرف ج بناءً على

echo $le['moka']. "&nbsp:";

post-124807-1218809106_thumb.gif

إذا كنت تقصد الرقم 3 المشار اليه في الصورة فمن العبارة

echo mysql_num_rows(mysql_query("SELECT `id` FROM mokaj WHERE `moka` = '$le[moka]'"))."     ";

هذه العبارة لا ادري الفائدة منها وكذلك العبارة

while($le = mysql_fetch_array($qr)) {

لانه في النهاية ستكون النتيجة حقل واحد لان الـ id لايتكرر

أما الرقم 3 لانه يقوم بجلب عدد السجلات التي تملك الحرف ج في حقلها moka

ملحوظه الحرف c هو الـ ج لديك

I Say Nothing

#12

انا اريد ان يقوم بجلب عدد السجلات التي تملك اي من الحروف في حقل moka

اذا كان id يساوي user_id

و الكود يقوم بجلب كل id انا اريد فقط ان يجلب لي user_id=id

للعلم user_id موجود في الجدول mokaj

و الـ id الذي يقوم بجلبه الكود id في الجدول newaj

اريد عند جلب id يظهر لي عدد السجلات بحيث user_id=id

تم تعديل هذه المشاركة بواسطة man in dark في 15 أغسطس 2008 في 17:24

#13

اخي mana80

اليس من المفترض ان يظهر لك ان لدى ahmed

C واحد

كما هو مبين في الصورة ولقد ظهر لك ان لدية ثلاث C

تم تعديل هذه المشاركة بواسطة man in dark في 15 أغسطس 2008 في 17:43

#14

فهمت قصدك اتحلت بس في مشكلة تكرار

انتظر

I Say Nothing

#15

الشرط الذي لديك

while($le = mysql_fetch_array($qr))
  {
  echo "   " .$le['moka']. "  :";
  echo mysql_num_rows(mysql_query("SELECT `id` FROM `mokaj` WHERE `moka` = '$le[moka]'"))."     ";
  }

المشكلة في هذه التعليمة

echo mysql_num_rows(mysql_query("SELECT `id` FROM `mokaj` WHERE `moka` = '$le[moka]'"))

حيث ان هذه العبارة تعني اجلب كل الـ id من الجدول mokak بشرط ان

moka` = '$le[moka]

وهنا سيقوم بإختبار التعليمة عل كل بيانات الجدول , ولكي تحدد فقط البيانات التي تريده ضع شرط الـ user_id=$id

وهذا الذي تريد تحقيقه .

ايضا وضعت moka بدلا من id ليس هنالك فرق بس من ناحية فهم ليس اكثر

إذن الكود الجديد

echo mysql_num_rows(mysql_query("SELECT  (`moka`) FROM mokaj WHERE `moka` = '$le[moka]'
 and user_id=$id"))."     ";

وهنا الناتج لو كان الـ id=99

post-124807-1218814292_thumb.gif

وهنا الناتج لو كان الـ id=100

post-124807-1218822609_thumb.gif

تم تعديل هذه المشاركة بواسطة mana80 في 15 أغسطس 2008 في 20:50

I Say Nothing

#16

هذا هو المطلوب اخي mana80

جزاك الله الف خير

والف شكر للأخوان على مشاركاتكم

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…