2016-08-04 8 views
-2

mysqlの同じselect文で2つのことを同時に実行しようとしています。ユーザーが画像をアップロードできます。イメージファイル名はテーブルに保存されます。ユーザーは10枚の画像しかアップロードできません。ユーザーが10よりも少ないファイルを読み込んだら後でもう一度アップロードすると、アップロードされたファイルの数と最後のファイル名がわかっていなければなりません(アップロード時にファイルの名前を変更します) 。私はこれをいじるされています:カウントを取得し、最後の行の名前を取得X未満の場合

SELECT COUNT(vendimagepath) AS id , vendimagepath 
    FROM vendimages WHERE vendregid = '$vendredig' 
    ORDER BY vendimagepath DESC 

それは私の戦いの半分であるが、そのユーザーのアップロードからランダムなファイル名のようです与え、すでにアップロードされたファイルの数を示します。私は間違った木を鳴らしているかもしれませんし、2つのクエリに分割する必要があるかもしれませんが、それをしないようにしようとしていたような迅速な継承です。私はそれを得るのに近いが、それだけでは十分ではないと思う。

+0

あなたが使用しているテーブルのスキーマ(DDL)を持っていますか?これは役に立ちます。 – tale852150

+0

カウント列に数字/整数が含まれていますが、varcharを型として使用すると、ランダムなファイル名が説明されます。質問は不明で、既に質問されているように、これのためのdbスキーマを提供してください。しかし、あなたが「Xより小さい」と言うタイトル。どういう意味?通常、行を繰り返して 'if($ row ['x']> = 10)'のようにチェックすると、本当にあなたの質問を明確にする必要があります。ああ、あなたが@記号で誰かにpingをする方法を知っていれば;行う。私は1時間のために何時間もここにとどまらないためです。 –

答えて

0

この表に日付の列(例:created)がある場合は、その列でDESCを注文し、最初のレコードではLIMIT句を使用できます。

SELECT b.nbr_of_images, 
     a.vendimagepath, 
     a.created 
FROM vendimages a, 
     (SELECT COUNT(*) as nbr_of_images, 
       vendregid 
     FROM vendimages 
     WHERE vendregid = '$vendredig' 
     GROUP BY vendregid) b 
WHERE a.vendregid = b.vendregid 
AND a.vendregid = '$vendredig' 
ORDER BY a.created DESC LIMIT 1; 

結果:

NBR_OF_IMAGES VENDIMAGEPATH CREATED 
3    /usr/png2  8/4/2016 18:08:50 
関連する問題