2011-05-04 17 views
28

kurtarmaya çalıştığımda dizide kaydedip döngü yapısı ile bir biçimde onu yankılanan ve ben sorunlarım var, veritabanından bilgi alıyorum veritabanına değiştirilmiş bilgi. Ölümcül hata:Sorun ile: Ölümcül hata: [] operatörü içinde dizeleri desteklenmeyen

bu hatayı alıyorum [] operatörü de .... dizeleri desteklenmeyen

Kodu:

$namesql1="SELECT name,date,text,date2 FROM table WHERE something= '$something'"; 
$nameresult1=mysql_query($namesql1); 
$countrows=mysql_num_rows($nameresult1); 
while($row = mysql_fetch_array($nameresult1, MYSQL_ASSOC)) 
    { 
    $name[]= $row['name']; 
    $date[]= $row['date']; 
    $text[] = $row['text']; 
    $date2 [] = $row['date2 ']; 
    } 
. 
. 
. 
FORM 
. 
. 
. 
$wrotesql="UPDATE service_report SET name ='$name' , $date = '$date',$text = '$text[$nro]', ser_date = '$date2[$nro]' WHERE something = '$something')"; 

$wroteresult=mysql_query($wrotesql);  

biri bana' Ne bir ipucu verir misiniz m yanlış mı yapıyorsun?

Teşekkür ederiz. bir ipe kısa dizi itme sözdizimi kullanmaya çalışırken

+3

...? Bize hattı söyleyebilir misiniz? – Shoe

+0

Bir çekicilik olarak çalıştı, parantez için parantez değiştirdi. –

cevap

50

Bu hatayı olsun. Ben senin $name, $date, $text veya $date2 değişkenlerin bir veya daha fazla bir dize olarak başlatıldı edildiğini belirten bir tahminde ediyorum bu

$foo = 'foo'; 
$foo[] = 'bar'; // ERROR! 

Örneğin

.

Düzeltme: Sorunuza yeniden baktığınızda, onları diziler olarak kullanmakta olduğunuz diziler olarak kullanmak istemiyorsunuz. Bir gibi davranın Sonra

$name = 'String'; 

:

Eğer öyleyse, gibi bir dize olmak Muhtemelen $name, $date, $text veya $date2 tanımladık

$name = $row['name']; 
$date = $row['date']; 
$text = $row['text']; 
$date2 = $row['date2']; 
+1

Bunun php 5'ten php 7'ye geçiş ile ilgili bir problem olabileceğini buldum. Php 5, bir değişkenin php 7'den farklı bir dizi olup olmadığı konusunda daha toleranslıydı. Çoğu durumda çözüm, bu cevapta açıklandığı gibi diziyi açıkça beyan etmektir. –

24

için atamalarını değiştirmek

$name[] = 'new value'; // fatal error 
: dizi bu ölümcül hata verecektir

senin sorunun sadece döngünün başında aşağıdaki kodu ekleyin çözmek için:

$name = array(); 
$date = array(); 
$text = array(); 
$date2 = array(); 

Bu dizide kendi değerini sıfırlar ve sonra mümkün diziler olarak bunları kullanmak için gerekir.