PHP Next MySQL Row - كيفية نقل المؤشر حتى تتحقق الوظيفة؟

StackOverflow https://stackoverflow.com/questions/2542248

  •  23-09-2019
  •  | 
  •  

سؤال

لديّ برنامج نصي PHP الذي يأخذ قيمة من صف في قاعدة بيانات MySQL الخاصة بي ، ويقوم بتشغيله من خلال وظيفة ، وإذا كان يحدد أنه يعيد قيمة واحدة ، وإذا كان خطأ ، فإنه فيجب الانتقال إلى القيمة التالية في قاعدة البيانات و تحقق من ذلك حتى يعود المرء في النهاية. أعتقد أنني بحاجة إلى استخدام mysql_fetch_assoc ، لكنني لست متأكدًا حقًا من طريقة استخدامه ... أتمنى أن أتمكن هذه المسألة...

لا يوجد حل صحيح

نصائح أخرى

هل "الوظيفة" شيء يمكنك القيام به في قاعدة البيانات بدلاً من ذلك؟ من غير الفعال حقًا معالجة كل صف في الجدول للتحقق من وجود نوع من الحالة. هذا هو بالضبط ما هي قواعد البيانات جيدة في معالجة الاستعلامات بكفاءة والحصول على إجابات عليك بسرعة.

لذلك أوصي بالبحث في كيفية القيام بكل شيء على جانب قاعدة البيانات بحيث يكون رمز PHP الخاص بك هو مجرد جلب النتيجة النهائية (أي صفوف تم ترشيحها بواسطة الوظيفة). ربما إذا قدمت المزيد من التفاصيل حول ما تفعله "وظيفتك" ، فيمكن توفير إجابة أكثر تحديدًا.

يمكنك استخدام mysql_fetch_array ، وقفز فقط على القيم التي تم جلبها باستخدام $ row [id] وليس $ row ['name']. قل أن وظيفتك تُرجع صحيحًا ، فأنت فقط تستخدم $ ROW [LastID+1].

إذا لم يكن المعرف تدريجيًا ، فقد ينجح هذا:

$qry_result = mysql_query($qry) or die(mysql_error());
while ($row = mysql_fetch_array($qry_result)) {
    $result = yourfunction($row['whatever');
    if ($result != false)
         break;
}

أيضا هناك وظيفة php next () التي تقدم مؤشر إلى عنصر الصفيف التالي. في وظيفتك ، يمكنك تنفيذ منشئ الصفيف ، ثم تدور بين العناصر مع هذا. يعتمد على ما تفعله وظيفتك بالفعل أو الغرض من النصوص. يمكن أن يؤدي إلى بعض الحمل إذا كان هناك الكثير من النتائج.

  1. يجب ألا تتحقق من قاعدة البيانات بهذه الطريقة ، كما ذكر أعلاه. قاعدة البيانات لها اختلاف قليل من الملف النصي العادي.
  2. يجب ألا يكون لديك حقل في قاعدة البيانات الخاصة بك يحتوي على مجموعة من القيم مفصولة بالقيمة 1: value2 | value1: value2 | value1: value2. يجب أن يكون حقول منفصلة. قاعدة البيانات لها اختلاف قليل من الملف النصي العادي وتحسن تعلمه.

يمكنك تجربة شيء مثل هذا:

SELECT *
FROM table
WHERE field NOT LIKE '%$sessionvar:%';

أعتقد أن هذا ما أنت عليه؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top