0

だから私は画像をアップロードしてサイズを変更し、両方を保存するこのコードを持っています

if(isset($_POST['submit']))
{   


        $sql="SELECT MAX(event_id) AS event_id FROM evenimente";
        //$result=mysql_query($sql);
        $prefix=mysql_query($sql);


        $file=$_FILES['image']['tmp_name'];
        $file2=$_FILES['image']['tmp_name'];

        $image= addslashes(file_get_contents($_FILES['image']['tmp_name']));                                        
        $image_name= addslashes($_FILES['image']['name']);
        //
        $sizes = array();
        $sizes['100'] = 100;



        list(,,$type) = getimagesize($_FILES['image']['tmp_name']);
        $type = image_type_to_extension($type);

        move_uploaded_file($_FILES['image']['tmp_name'], 'images/'.$prefix.$type);

        $t = 'imagecreatefrom'.$type;
        $t = str_replace('.','',$t);
        $img = $t('images/'.$prefix.$type);

        foreach($sizes as $k=>$v)
        {

            $width = imagesx( $img );
            $height = imagesy( $img );

            $new_width = $v;
            $new_height = floor( $height * ( $v / $width ) );

            $tmp_img = imagecreatetruecolor( $new_width, $new_height );
            imagealphablending( $tmp_img, false );
            imagesavealpha( $tmp_img, true );
            imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );

            $c = 'image'.$type;
            $c = str_replace('.','',$c);
            $c( $tmp_img, 'images/th/'.$prefix.$type );

        }                                       
        $location="images/" . $prefix.$type;
        $sql="INSERT INTO evenimente (event_data, event_datasf, event_titlu, event_detalii, event_poza) VALUES      ('". $_POST['data'] ."', '". $_POST['datasf'] ."', '". $_POST['titlu'] ."', '". $_POST['detalii'] ."', '$location')  ";
    mysql_query($sql);
    //$prefix =mysql_insert_id();
    include 'include.html';
    echo 'OK!!!<br /> Redirecting';
    echo "<meta http-equiv='refresh' content='1;adauga_eveniment.php'>";




}






                                }

コードは「機能します」...私はこの問題を抱えており、the event_id. しかし、データベースから最大IDを記憶させることができず、$prefix理由がわかりません...理解していただければ幸いです。mysql_insert_id();aql送信後にIDが生成されるため使用できません。その前にプレフィックスが必要です...そしてMAX機能しません...event_id主キーとして使用しています...

乾杯

4

2 に答える 2

4

あなたの構文は正しいです:SELECT MAX(event_id) AS event_id FROM evenimente

問題は、テーブルに存在するにevent_id を知りたいことです。

提案:

1) 新しい行を「挿入」する

2) 結果の event_id を「選択」する

3) 行を「更新」する

また:

古い非推奨の mysql API を使用しています。新しい mysqli/PDO API のいずれかまたは両方についてよく理解してください。また、準備済みステートメントの使用を検討してください。それらはより効率的であり、SQL インジェクション攻撃のリスクを軽減するのに役立ちます。

于 2013-02-06T16:01:36.837 に答える
0

そのようにしなければならない場合は、試してください

$sql="SELECT event_id AS event_id FROM evenimente ORDER BY event_id DESC LIMIT 1";

ただし、これは前のイベントの event_id のみを提供することに注意してください。

于 2013-02-06T16:01:43.063 に答える