Hangi sebepten ötürü mysql sonuç kümesinden iki kez geçmem gerekiyor. Bunu yapmanın bir yolu var mı? Sorguyu iki kez çalıştırmak istemiyorum ve komut satırını yeniden yazmak zorunda kalmak istemiyorum, böylece satırları bir yere kaydedecek ve daha sonra yeniden kullanacaksınız.Mysql sonucu iki kez nasıl geçilir?
cevap
YANLIŞ dönecektir bir E_WARNING ve mysql_data_seek() başarısız olur Bu, bunun için doğru yol gibi görünmüyor. Neden ilk döngüde işlem yapmıyorsunuz?
neden mysql_fetch_assoc()? mysql_fetch_array() –
A-OK kullanabilir miyim: Evet, ne istersen. – phant0m
Evet, yapabilirsin. Aynı şey, sadece almanın farklı yolları (sütun adı/sütun numarası). –
mysql_data_seek()'un gereksinim duyup duymadığını deneyin.
mysql_data_seek() belirtilen satır numarasını işaret belirtilen sonuç tanımlayıcı ile ilişkili MySQL sonucu iç satır hareket ettirir. mysql_fetch_assoc() gibi bir MySQL alma işlevi, satırını döndürür. 1. Ancak eğer sonuç kümesi (Mysql_num_rows() == 0), bir etmeye boş -
satırnum satırnum Mysql_num_rows() 0 aralığında bir değer olmalıdır 0 başlar Ben olurdu,
$result = mysql_query(/* Your query */); while($row = mysql_fetch_assoc($result)){ // do whatever here... } // set the pointer back to the beginning mysql_data_seek($result, 0); while($row = mysql_fetch_assoc($result)){ // do whatever here... }
Ancak: 0 Bu yapabilirsin nasıl
Dahili göstericiyi veri kümesinin başına taşımak için mysql_data_seek'u kullanabilirsiniz. Sonra, tekrar tekrar yineleyebilirsiniz.
Ben bu denemedim itiraf, ancak önce kayda gitmek için ilk yineleme
mysql_data_seek($queryresult,0);
sonra denediniz mi?
Eh, her zaman okunan satır sayısını saymak olabilir ve sonra böyle bir şey yapmak: Eğer gerekir neden
if (rownumber == mysql_num_rows($result)) { mysql_data_seek($result, 0); }
Bilmiyorum, ama öyle. verilere Alternatif aramak
bir diziye değerleri saklamaktır: mysqli için
$arrayVals = array();
$result = mysql_query(/* Your query */);
while($row = mysql_fetch_assoc($result)){
$arrayVals[] = $row;
}
// Now loop over the array twice instead
$len = count($arrayVals);
for($x = 0; $x < $len; $x++) {
$row = $arrayVals[$x];
// Do something here
}
$len = count($arrayVals);
for($x = 0; $x < $len; $x++) {
$row = $arrayVals[$x];
// Do something else here
}
Tüm bu ve sadece dizi satırları döndürür ve yapar multiRow() çağıran bir yardımcı işlev yazdım. –
aşağıdakileri yapmanız gerekir;
$result= $con->query($sql); // $con is the connection object
$result->data_seek(0);
- 1. C'deki Memmove(), sonucu iki kez yazdırır
- 2. DataTable.Select() sonucu yeni bir DataTable'a nasıl geçilir?
- 3. MySQL - SUM kez nasıl?
- 4. İki kez nasıl karşılaştırılır?
- 5. iki kez
- 6. MYSQL sayım sonucu silindi (*) = 1
- 7. Axapta'da iki form arasında parametre nasıl geçilir?
- 8. JsonTextReader iki kez nasıl kullanılır?
- 9. MySQL ben SELECT sorgusu sonucu
- 10. İki tabloya iki kez katılma
- 11. Sorgu, aynı sonucu birden çok kez verir
- 12. MySQL: Sadece bir kez
- 13. ruby sort_by iki kez
- 14. RenderSection iki kez ara ...?
- 15. mysql sorgusu sonucu php dizisi
- 16. mysql sorgu sonucu php değişkeni
- 17. İleti iki kez tükeniyor
- 18. onTouchEvent iki kez çalıştırılıyor
- 19. Muhafız iki kez
- 20. Mysql işaretçisini PHP'deki ilk satıra nasıl sıfırlarsınız? Yukarıdaki kodu iki kez ardışık olarak kullanırsam, satır iki kez yazdırılmaz.
- 21. ls komutunun ilk iki sonucu
- 22. ASP.NET iki kez
- 23. Fragman iki kez oluşturuldu
- 24. Git iki kez stash
- 25. raylar: iki kez
- 26. sceneDidLoad iki kez çağrılıyor?
- 27. Angular2 http.post iki kez
- 28. Django formu iki kez
- 29. apscheduler iki kez çalıştırıyor
- 30. MySQL tabloları birden çok kez
İşaretçiyi sıfırlayan bu işlevi deneyin. http://php.net/manual/en/function.mysql-data-seek.php – afarazit
Hangi MySQL kitaplığını kullanıyorsunuz? Genellikle iç göstergeyi sonuç kümesinde geri sarabilirsiniz. –