اذهب إلى المحتوى
  • 0

تكرار البيانات مرة واحدة فقط في PHP

Thorya Al Mohna

السؤال

Recommended Posts

  • 0

المطلوب غير واضح، لكن إحدى الطرق هي بالإعتماد على حلقة foreach مع متغير مساعد لتتبع البيانات التي تم تكرارها مسبقًا، كالتالي:

$data = array("أحمد", "علي", "محمد", "أحمد", "فاطمة");
$seen = array();

foreach ($data as $item) {
  if (!in_array($item, $seen)) {
    echo $item . "<br>";
    $seen[] = $item;
  }
}

أو استخدام دالة array_unique() لإنشاء مصفوفة جديدة تحتوي فقط على العناصر الفريدة في المصفوفة الأصلية:

$data = array("أحمد", "علي", "محمد", "أحمد", "فاطمة");
$uniqueData = array_unique($data);

foreach ($uniqueData as $item) {
  echo $item . "<br>";
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

علشان تحدد عدد المرات اللي ممكن تكرر فيها البيانات في قاعدة البيانات، يمكنك استخدام كذا طريقة تضمن إن البيانات متتكررش أكتر من مرتين أو تلاتة. هقولك على اتنين من الطرق الشائعة: استخدام SQL للتحكم في التكرار عند الاستعلام، واستخدام PHP لفحص البيانات قبل الإدخال.
1. استخدام SQL للتحكم في التكرار
علشان تتحكم في عدد المرات اللي تظهر فيها القيم في قاعدة البيانات، ممكن تستخدم استعلام SQL مع GROUP BY و HAVING لاسترجاع البيانات اللي تكررت مرتين أو تلاتة بس:

SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name
HAVING COUNT(*) <= 3;

الاستعلام ده بيجيب البيانات اللي متكررتش أكتر من تلات مرات. ممكن تغير القيمة 3 لو عايز تحدد حد أقصى للتكرار.
2. استخدام PHP لفحص البيانات قبل الإدخال
لو عايز تدخل بيانات جديدة وعايز تتأكد إن البيانات دي متتكررش أكتر من مرتين أو تلاتة، يمكنك تكتب كود PHP يفحص قاعدة البيانات قبل ما تدخل بيانات جديدة:

<?php

$pdo = new PDO('mysql:host=your_host;dbname=your_db', 'username', 'password');

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$column_value = 'value_to_check'; // القيمة اللي عايز تتأكد من تكرارها

$stmt = $pdo->prepare("SELECT COUNT(*) FROM table_name WHERE column_name = ?");

$stmt->execute([$column_value]);

$count = $stmt->fetchColumn();

if ($count < 3) {

    // إدخال البيانات لو المرات أقل من تلاتة

    $insertStmt = $pdo->prepare("INSERT INTO table_name (column_name) VALUES (?)");

    $insertStmt->execute([$column_value]);

    echo "Data inserted successfully.";

} else {

    echo "Data already exists more than twice.";

}

?>

في الكود ده، PHP بيفحص الأول عدد المرات اللي تكررت فيها القيمة المعينة في الجدول. لو القيمة موجودة أقل من تلات مرات، البيانات بتتدخل. وإلا، بيظهر رسالة بتقول إن البيانات موجودة بالفعل أكتر من مرتين.
ممكن تستخدم الطريقتين دول حسب اللي يناسب متطلبات مشروعك، وكمان ممكن تدمجهم لأفضل نتيجة في التحكم بتكرار البيانات.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...