2012-02-18 9 views
0

私はポニー名の列を持っています。繁殖者の接頭辞はポニーの名前に含まれています(例えば、Ashbrook Boy、AshbrookはBreeder's Prefix、Boyはポニー)。私は使用されているすべてのプレフィックスのリストを持っている別のテーブルを持っています。私はそのリストを巡回し、それぞれのレコードは私のおばちゃんを検索し、それぞれの接頭辞で始まる名前を順番に検索します。それらがフェッチされるとき、私はそのプレフィックスをその名前から削除し、その目的のために自身のテーブルの列にポップします。他のクエリのループ中にMySQL PHPクエリが配置されていません

最後に、プレフィックスと名前の両方が混在する1つの列(2つの列:プレフィックスに1つ、名前に1つ)が必要です。

私は以下のコードは私のためだと思っていましたが、機能しません。 $ resに対して '有効なリソースではありません'というエラーが表示されます。あなたが私に与えることができるどんな助けも大いに評価されるでしょう - 私は本当にこれを手でしたいとは思わない! :P

私はPHPMyAdmin経由でアクセスできるMySQLデータベースのPHPスクリプトを使用しています。

include '../conn.php'; 

$q=mysql_query("SELECT DISTINCT Pre FROM prefixes"); 
while($r=mysql_fetch_array($q)) { 
    $pre=$r['Pre']; 
    $sql="SELECT ID, Name FROM profiles WHERE (Name REGEXP '^$pre') ORDER BY ID ASC"; 
    mysql_query($sql); 
    echo $sql; 
    while($res=mysql_fetch_array($sql)){ 
     $name=$res['Name']; 
     $name=trim(str_replace("$pre","", $name)); 
     $id=$res['ID']; 
     mysql_query("UPDATE profiles SET Prefix = '$pre', Name = '$name' WHERE ID = '$id' "); 
    } 
} 
mysql_close($con); 

答えて

0

あなたの間違い$ sqlをクエリ文字列ではなく、クエリこれで

$sql="SELECT ID, Name FROM profiles WHERE (Name REGEXP '^$pre') ORDER BY ID ASC"; 
mysql_query($sql); 
echo $sql; 
while($res=mysql_fetch_array($sql)){ 

のMySQLの結果であるという事実から来る、それは良くなります:

$sql="SELECT ID, Name FROM profiles WHERE (Name REGEXP '^$pre') ORDER BY ID ASC"; 
$result = mysql_query($sql); 
while($res=mysql_fetch_array($result)){ 
+0

感謝男は、治療を働いた。別の目のペアが必要:) – Eamonn

関連する問題