PHP ไม่ใช้ค่าตัวเลือกที่เลือกในโพสต์

ฉันมีปัญหาร้ายแรงในการอัปเดตแบบฟอร์ม โดยจะใช้เฉพาะค่าที่เลือกกับการกระทำของผู้ใช้ในเมนูตัวเลือกที่เลือก แต่เมื่อผู้ใช้อัปเดตข้อมูลโดยไม่เปลี่ยนค่าที่เลือก ก็จะส่งกลับค่าฐานข้อมูลเริ่มต้นซึ่งตั้งเป็น 0

<select class="selectpicker" name="socio_demo_type" id="socio_demo_type">
<?php
$query_sd = "SELECT * FROM insertion WHERE id_insertion = ".$insertion["id"];
$result_sd = mysql_query($query_sd);
$type = mysql_fetch_array($result_sd);
$val = $type["ciblage_socio_demo_type"];
?>
    <option value="0"  <?php if($val == 0) echo 'selected' ?> >Pack affinitaire </option>  
    <option value="1"  <?php if($val == 1) echo 'selected' ?> >Achat ciblé (loggué)`enter code here`</option>
</select>

person Yahya TAJANY    schedule 15.11.2018    source แหล่งที่มา
comment
ทุกครั้งที่คุณใช้ ส่วนขยายฐานข้อมูล mysql_ ในโค้ดใหม่ < b>สิ่งนี้เกิดขึ้น เลิกใช้แล้วและมีมานานหลายปีแล้วและหายไปตลอดกาลใน PHP7 หากคุณเพียงแค่เรียนรู้ PHP ให้ใช้ความพยายามในการเรียนรู้ส่วนขยายฐานข้อมูล PDO หรือ mysqli และคำสั่งที่เตรียมไว้ เริ่มที่นี่   -  person RiggsFolly    schedule 15.11.2018
comment
จากนั้นคุณต้องตรวจสอบก่อนใช้งาน หากไม่ถูกต้อง คุณต้องนำผู้ใช้กลับไปที่หน้าป้อนข้อมูลและแจ้งข้อความแสดงข้อผิดพลาด   -  person RiggsFolly    schedule 15.11.2018
comment
ไม่ ฉันไม่ใช่ผู้ใช้ใหม่ใน php นี่เป็นแอปพลิเคชันเก่าที่เข้ารหัสในปี 2005 และเราต้องทำการเปลี่ยนแปลงบางอย่างกับข้อบกพร่องบางอย่างที่พบ ... :/   -  person Yahya TAJANY    schedule 15.11.2018
comment
@RiggsFolly พวกเขาใช้ modals และฉันไม่สามารถใช้ print_r เพื่อแสดงค่าโพสต์หรือแก้ไขข้อบกพร่องได้   -  person Yahya TAJANY    schedule 15.11.2018
comment
คุณได้ลองส่งออกข้อมูลการดีบักไปยังไฟล์แทนที่จะส่งออกไปที่หน้าจอหรือไม่   -  person RiggsFolly    schedule 15.11.2018
comment
@RiggsFolly ฉันจะทำอย่างนั้นได้อย่างไร?   -  person Yahya TAJANY    schedule 15.11.2018
comment
สิ่งที่คุณต้องการสะท้อน คุณใช้ file_put_contents เช่น file_put_contents('debug.txt', print_r($xxx,true), FILE_APPEND);   -  person RiggsFolly    schedule 15.11.2018
comment
หรือใช้ error_log() ชอบ error_log(print_r($_POST,1), 3, "/var/tmp/my-errors.log");   -  person RiggsFolly    schedule 15.11.2018
comment
@RiggsFolly โอเค ฉันจะลองดู ขอบคุณเพื่อน :)   -  person Yahya TAJANY    schedule 15.11.2018
comment
คุณแก้ปัญหานี้หรือไม่? $val มาจากไหนในโค้ดนี้ ยังไม่ชัดเจนว่าคุณเลือกค่าอย่างไรตั้งแต่แรก นั่นน่าจะเป็นกุญแจสำคัญของปัญหานี้   -  person ADyson    schedule 23.11.2018


คำตอบ (1)


ผ่านการต่อยการเชื่อมต่อด้วยและใช้คำสั่ง sql ของฉัน

$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }    

<select class="selectpicker" name="socio_demo_type" id="socio_demo_type">

    <?php

    $query_sd = "SELECT * FROM insertion WHERE id_insertion = "$insertion["id"];

    $result_sd = mysqli_query($con , $query_sd);
    $type = mysqli_fetch_array($result_sd);
    $val = $type["ciblage_socio_demo_type"];

    ?>
    <option value="0"  <?php if($val == 0) echo 'selected' ?> > Option2 </option>  
    <option value="1"  <?php if($val == 1) echo 'selected' ?> > Option1 </option>
    </select>
person Cybops    schedule 15.11.2018
comment
ยินดีต้อนรับสู่ SO. คุณกำลังจะไปที่ไหนสักแห่งกับเรื่องนี้? คำตอบที่ดีมักจะมีคำอธิบายถึงสิ่งที่ทำไปแล้วและเหตุใดจึงทำเช่นนั้น ไม่เพียงแต่สำหรับ OP เท่านั้น แต่สำหรับผู้เยี่ยมชม SO ในอนาคตที่อาจพบคำถามนี้และกำลังอ่านคำตอบของคุณ - person RiggsFolly; 15.11.2018
comment
เพื่อน OP กำลังใช้ส่วนขยายฐานข้อมูล mysql_ เก่า เพราะเขายังคงรักษารหัสเก่าไว้ :) เป็นความคิดที่ดีเสมอที่จะตรวจสอบความคิดเห็นก่อนที่จะพยายามตอบ - person RiggsFolly; 15.11.2018
comment
รหัสของคุณมีข้อผิดพลาดทางไวยากรณ์ นอกจากนี้ คุณควรเน้นย้ำว่าการเปลี่ยนแปลงใดที่สำคัญเพื่อให้ผู้อื่นสามารถเรียนรู้จากโค้ดของคุณได้ - person Nico Haase; 15.11.2018
comment
เพื่อน ฉันกำลังเรียกการเชื่อมต่อ mysql ในไฟล์เดียวที่ด้านบนของหน้า - person Yahya TAJANY; 15.11.2018