2017-07-16 11 views
1

数値を含む自転車モデルのリストから結果を除外しようとしています。たとえば、「BAJAJ CT 100 ALLOY」です。私はstr_replaceを使用してctype_alpha()を使用して数値の結果を確認する前にスペースを削除しています。それは動作していないようです。私は完全に失われています。 は、ここに私のPHPコードです:php ctype_alphaがmysql dbデータで動作しません

$query="SELECT * FROM vehicleList WHERE 1;"; 
$result=mysqli_query($db,$query); 
if(mysqli_num_rows($result) != 0) { 
    $bikeListArr = array(); 
    $carListArr = array(); 
    while($row=mysqli_fetch_array($result)) { 
     if($row["type"] == "bike") { 
      // echo str_replace(' ','',$row["model"]) . "\n"; 
      if(ctype_alpha(str_replace(' ','',$row["model"]))) { 
       array_push($bikeListArr,$row["id"],$row["model"],$row["category"]); 
      } 
      else echo $row["model"] . " -- DROPPED\n"; 
     } else { 
      array_push($carListArr,$row["id"],$row["model"],$row["category"]); 
     } 
    } 
    // print_r($bikeListArr); 
} 

そして、ここでは出力の一部です:

HERO HF DAWN KICKSTART -- DROPPED 
HERO HF DELUXE -- DROPPED 
HONDA DREAM NEO -- DROPPED 
BAJAJ PLATINA -- DROPPED 
HERO SPLENDOUR -- DROPPED 

興味深いことに渡された値以下:

"TVS STAR CITY PLUS","HERO PASSION X PRO","HERO GLAMOUR","HERO HUNK" 

カントが間違っているものを見つけます。私はどんな助けにも感謝します。

+0

あなたの選択ステートメントは正しいですし、セミコロンを最後に追加したのはなぜですか? –

+0

preg_match( '/ \ d /'、$ row ['model']のように[preg_match'](http://php.net/manual/en/function.preg-match.php) $ m、PREG_OFFSET_CAPTURE) '? – tadman

+0

@ Amr Aly:はい、そうです。私はいつも ";"最後に。おそらくそれは以前の私の作業の断片からコピーされたものでしょう。 :-) – atf

答えて

1

私はついにこの問題の原因を発見しました。データベーステーブルには、Windows OSの.TXTファイルから行を読み込み、 "vehiclelist"テーブルの "model"列を入力したPHPスクリプトが読み込まれました。

Windows OSのメモ帳には、改行を表すために\r\nの両方が必要です。 (出典:Windows notepad not supporting newline character '\n')。 PHPは改行として\n文字しか認識しなかったので、ほとんどの行末に\r文字が残っていました(まだすべての行にはそれがない理由が見つかりません)。テーブルのすべての行でtrim()という単純な更新が行われ、コードは正常に動作しました。ハレイ!

コードスニペットテーブルを更新する:

$db=mysqli_connect("127.0.0.1","root","","mdb") or die("DB Timeout... Please try again"); 
$query="SELECT * FROM vehiclelist WHERE 1;"; 
$result=mysqli_query($db,$query); 
while($row=mysqli_fetch_array($result)) { 
    $query1="UPDATE vehiclelist SET model=\"" . trim($row["model"]) . "\" WHERE id=\"" . $row["id"] . "\";"; 
    $result1=mysqli_query($db,$query1); 
} 

$bikeListArrアレイの単純var_dump()は、「モデル」値に対応する文字列のサイズで異常を示しました。

本当に皆の時間の無駄でした。私は前にそれを見ることができなかった、すみません。

すべての回答と時間をいただきありがとうございます。

関連する問題