2017-12-04 5 views
-1

nicht unterstützten Operandentypen in PHP

if ($opt_selected=="y") 
 
    { 
 
     # code... 
 
    
 
      $errorMessage = ""; 
 
     $phone = $_POST['phone']; 
 
     $myString = $phone; 
 
     $myArray = explode(',', $myString); 
 
     print_r($myArray); 
 

 
      if ($errorMessage != "") 
 
      { 
 
        echo "<p class='message'>" .$errorMessage. "</p>" ; 
 
     
 
      } 
 
       else 
 

 
     { 
 
      $max_id=mysqli_query($db,"select max(id) from batch"); 
 
      $row = mysqli_fetch_array($max_id); 
 
     //error is for below line :Unsupported operand types     
 
        $row=$row+1; 
 

 
        $res=mysqli_query($db,"INSERT INTO batch(`id`,`phone`) VALUES (row,'$myArrays')"); 
 
         
 
        $delete = mysqli_query($db,'insert into to_numbers_hist select * from to_numbers'); 
 
        $delete = mysqli_query($db,'delete from to_numbers'); 
 

 
      foreach ($myArrays as $myArray) { 
 

 
       
 
         
 
        $ins="INSERT INTO `codexworld`.`to_numbers`(`batch_id`,`phone`) 
 
      VALUES ('$id','$phone')"; 
 
      $test=mysqli_query($db,$ins) or die(mysqli_error($db)); 
 
      if($test) 
 
      echo "<script type='text/javascript'>alert('submitted successfully!')</script>"; 
 
      else 
 
      echo "<script type='text/javascript'>alert('failed!')</script>"; 
 
         
 
      } 
 
/
 
        
 
     }

Hier seine geben Fehler wie diese Nicht unterstützte Operandentypen

so bin ich nicht, was immer zu tun, bitte lass mich korrigieren, wo ich falsch liege

und die for-each-Schleife es keine

korrigieren wird

ich hier Eingabe Nummer in Text-Feld durch Komma getrennt, indem sie diese Kommas und Speicherung in db Aufspalten mit ID zu erzeugen wir diese ID in einer anderen Tabelle beziehen so etwas brauche ich, um dieses Problem zu überwinden,

// Fehler sind für unterhalb der Linie: nicht unterstützte Operandentypen
$ row = $ row + 1;

diese Linie Fehler geben

+0

Sein bedeuten, weil 'mysqli_fetch_array' ein Array von Strings zurück, die auf die entsprechende Zeile und nicht der Zahlenwert. –

+0

'$ row = $ row + 1' sollte nicht funktionieren wie $ row jetzt besteht die Abfrage Daten zurückgegeben.Sie müssen es verwenden wie '$ row = $ row ['returned_col'] + 1;' – devsourav

+0

'print_r (gettype ($ row));' zeigt Ihnen Ihr Problem – Martin

Antwort

0

Ihre $row Variable ein Array enthält, wie Sie die Daten aus MySQL zurück:

$row = mysqli_fetch_array($max_id); 

+1 ist einfach nicht für ein Array zur Verfügung. Erstellen Sie stattdessen eine Variable wie $rc=0; (für Zeilenanzahl) und erhöhen Sie sie in Ihrer Schleife.

Es macht auch keinen Sinn zu tun machen:

$res=mysqli_query($db,"INSERT INTO batch(`id`,`phone`) VALUES (row,'$myArrays')"); 

Ihre row sollte höchstwahrscheinlich $row genannt werden, aber dann würden Sie versuchen, ein Array in einer numerischen Spalte zu speichern, das gleiche gilt für die $myArrays Variable.

Ich würde empfehlen, sich zuerst mit MySQL queries vertraut zu machen und auch mehr auf gute Codequalität achten, bevor Sie Ihr Projekt fortsetzen.

+0

Ich habe $ row = 0; aber es gibt Fehler für Foreach-Schleife Hinweis: Undefinierte Variable: myArrays in C: \ xampp \ htdocs \ import_csv_file_into_mysql_php \ importData.php in Zeile 41 Hinweis: Undefinierte Variable: myArrays in C: \ xampp \ htdocs \ import_csv_file_into_mysql_php \ importData.php in Zeile 46 Warnung: Ungültiges Argument für foreach() in C: \ xampp \ htdocs \ import_csv_file_into_mysql_php \ importData.php in Zeile 46 – shruti

+0

Wie von "Tomin B" in einem anderen Beitrag hingewiesen, haben Sie einige andere Fehler in Ihrem Code auch. Ich habe meine Antwort aktualisiert und einige allgemeine Empfehlungen hinzugefügt. – SaschaM78

0

$ Zeile ist eine Ergebnismenge. Sie können nicht $ row +1 Betrieb auf einem resultset

if ($row) { 
     while($data = mysql_fetch_array($data)) { 

      $value=$data[max(id)]; 
      $value=$value+1; 

     } 

    } 
    else { 
     echo mysql_error(); 
    } 

Verwenden Sie die retrived Daten $ Wert für Ihren Betrieb

auch zu den folgenden ändern tun. Sie hatte $ Zeichen

$res=mysqli_query($db,"INSERT INTO batch(`id`,`phone`) VALUES ($row,'$myArrays')"); 

vermisste ich auch Zweifel, was Sie mit dieser Codezeile

$delete = mysqli_query($db,'insert into to_numbers_hist select * from to_numbers'); 
Verwandte Themen