تم حل المشكلة: rand لا تعمل مع mysqli ما الحل؟

السلام عليكم ورحمة الله وبركاته

الحل: تغيير نوع بيانات حقل الجدول بقاعدة البيانات إلى varchar

لدي هذا الكود

<?php

$activationcode = rand('1000000000','9999999999');

mysqli_query($connect,'INSERT INTO table(code)

VALUES("'.$activationcode.'")') or die(mysqli_error($connect));

?>

عند عرض البيانات المدخله يظهر نفس الرقم مكرر والرقم لا يتغير

مثلا ٢٥٨١٥٢٨٢٤٨ يتكرر كل مرة ولا ينتج رقم جديد

ما الحل

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

أضف where لتحدد أي سطر تغير فيه أخيه

مثلا

mysqli_query($connect,'INSERT INTO table(code) VALUES("'.$activationcode.'") WHERE id = 1;') or die(mysqli_error($connect));

انا لا اغير انا اضيف أخي

آه نعم...

كيف تدخل مدخلين؟ بإعادة تحدبث الصفحة أم داخل for؟

المهم الرقم يتغير في الكود خاصتك والخطأ في مكان آخر... أرفق الكود كاملا... ساعدنا على مساعدتك.

تفضل فقط أقرأ php لان html فقط نماذج

هل اكتشفت الخطأ يا صديقي؟

لم ألاحظ أي خطأ صراحة... لكني لم أجرب الكود كذلك.

أولًا تأكد من محتوى المتغير $activationcode قبل إدخاله لقاعدة البيانات، قد تكون المشكلة من PHP وApache وليس MySQL.

استخدمت المتغير في إنتاج متغير لرابط وإرساله بالايميل ونجح

وهذا يعني ان المتغير يعمل

أقصد هل قمت بطباعة محتوى المتغير قبل إضافته لقاعدة البيانات أو إرساله؟

ألم تقل بأنه يقوم بطباعة نفس الرقم كل مرة؟

إذًا يجب عليك معرفة مصدر التكرار، هل المتغير قيمته متكررة أم أن القيمة تتكرر داخل MySQL؟

بكل بساطة اطبع قيمة المتغير ثم اوقف السكربت باستخدام exit();

وأخبرني بالنتيجة

الرقم يتكرر داخل mysql فقط

جربت طريقتك والرقم فعلاً يتغير

اشكرك على إهتمامك

جربت إفراغ الجدول ولازال الرقم نفسه يتكرر

ما دامت الرقم يتكرر داخل mysql فهذا يعني أن هناك حدود في الحقل، عليك بمعرفة نوع الحقل الذي تستخدمه، ما هو نوعه؟

الرقم المستخرج ١٠ أرقام، نوع الحقل INT بحد ١١ رقم

هل جربت تغيير نوع الحقل إلى حقل يتحمل أرقام أكبر؟

بالنسبة لحقل INT فحدوده هي من -2147483648 إلى 2147483647.

أي أن الرقم لن يتجاوز 2147483647.

لذلك إذا أردت عدد أرقام أكبر من هذا فيمكنك استخدام BIGINT

المرجع للحدود لكل نوع:

اشكرك

تم الحل

العفو عزيزي، ما كان الخلل؟ وكيف حللت المشكلة؟

أتمنى منك إرفاق الحل في الموضوع الرئيسي ليستفيد قارئوه لاحقًا.

الحل تغيير نوع بيانات الحقل من IMT إلى VARCHAR