2012-04-14 13 views
0

Mögliche Duplizieren geben:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given errortrim() Funktion Warnung

Ich bekomme diese Warnung

Warning: trim() expects parameter 1 to be string, array given in .. 

die meine Ausstattungslinie ist. Der vollständige Code funktioniert, um einen Fehler zu senden, wenn Felder leer sind. Dieser Fehler scheint jedoch zu sagen, dass jedes Feld leer ist, aber nur das 'native' Feld ist erforderlich, so dass das zweite Problem ist. Danke für jede Hilfe!

session_start(); 
$err = array(); 


$user_id = intval($_SESSION['user_id']); 
// otherwise 
if (isset($_POST['doLanguage'])) { 
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection."); 

// check if current user is banned 
$the_query = sprintf("SELECT COUNT(*) FROM users WHERE `banned` = '0' AND `id` = 
'%d'", $user_id); 
$result = mysql_query($the_query, $link); 
$user_check = mysql_num_rows($result); 
// user is ok 
if ($user_check > 0) { 

    // check for empty fields 
    foreach ($_POST as $key => $val) { 
     $value = trim($val); 
     if (empty($value)) { 
      $err[] = "ERROR - $key is required"; 
     } 
    } 
    // no errors 
    if(empty($err)) { 
     for($i = 0; $i < count($_POST["other"]); $i++) 


      $native = mysql_real_escape_string($_POST['native'][$i]); 
      $other = mysql_real_escape_string($_POST['other'][$i]); 
      $other_list = mysql_real_escape_string($_POST['other_list'][$i]); 
      $other_read = mysql_real_escape_string($_POST['other_read'][$i]); 
      $other_spokint = mysql_real_escape_string($_POST['other_spokint'][$i]); 
      $other_spokprod = mysql_real_escape_string($_POST['other_spokprod'][$i]); 
      $other_writ = mysql_real_escape_string($_POST['other_writ'][$i]); 

     // insert into the database 
     $the_query = sprintf("INSERT INTO `language` 
(`user_id`,`native`,`other`,`other_list`,`other_read`, `other_spokint` 
,`other_spokprod`,`other_writ`) VALUES ('%d','%s','%s','%s','%s','%s','%s','%s')", 
    $user_id,$native,$other,$other_list,$other_read, 
$other_spokint,$other_spokprod,$other_writ); 

     // query is ok? 
     if (mysql_query($the_query, $link)){ 

      // redirect to user profile 
      header('Location: myaccount.php?id=' . $user_id); 
      } 
     } 
    } 
} 
+0

verwenden Nun 'var_dump ($ _ POST);' zu sehen, welche Daten vom Typ Array ist. – brezanac

+0

Ergebnis ist 'array (8) {[" native "] => array (1) {[0] => string (0)" "} [" andere "] => array (1) {[0] => string (0) ""} ["andere_liste"] => array (1) {[0] => string (0) ""} ["other_read"] => array (1) {[0] => string (0) ""} ["anderes_spokint"] => array (1) {[0] => zeichenfolge (0) ""} ["other_spokprod"] => array (1) {[0] => zeichenfolge (0) ""} ["other_writ"] => array (1) {[0] => string (0) ""} ["doLanguage"] => string (4) "Speichern"} ' – user1257518

+0

a ha! Danke, jetzt ist es klar –

Antwort

1
// check for empty fields 
foreach ($_POST as $key => $val) { 
    while (is_array($val)) 
     $val = reset($val); 
    if (is_string($val)) 
     $val = trim($val); 
    if (empty($val)) { 
     $err[] = "ERROR - $key is required"; 
    } 
} 
+0

keine Fehlermeldung erscheint mit diesem – user1257518

+0

Fügen Sie einige Debug-Anweisungen hinzu, geben Sie den Schlüssel und den Wert, und stellen Sie sicher, es durchläuft alle gebuchte Werte. –

+0

Ich bin mir nicht sicher, was ich zu tun habe Ich lerne immer noch – user1257518