2017-05-16 2 views
0

ich eine Form haben, die mutiple Kontrollkästchen mit dem Namen itm hat Das ist offensichtlich speichert alle Werte in das Array $ _POST überprüft [ ‚itm‘] []vorbereiten Array für mysql einfügen

Meine Frage ist möchte ich die Werte der Arrays in der entsprechenden Spalte in dem Format gespeichert 1: 88: 99: 77: The: der Separator und die Ziffern sind die Checkbox

jedoch Werte, wenn ich meine Form eintragen zeigt Array gerade() Ich habe dann die serialize() Funktion ausprobiert .. nicht was ich überhaupt will

So kann jemand helfen bitte

-Code Below``

 if (mysqli_connect_errno()) 
     { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 
    $forname = $_POST['forename']; 
    $surname = $_POST['surname']; 
    $newfname = str_replace("'","",$_POST['forename']); 
    $newsname = str_replace("'","",$_POST['surname']); 
    $year = date('y'); 
    $month = date('m'); 
    $day = date('d'); 
    $username = $newfname.$newsname.$month.$year; 


    // Perform queries 
    $addq = mysqli_query($con,"INSERT INTO `workshop-jobs` (wsjid, wscid, wsccid, summary, jobtype, caterhamwarrantyid, worktobedone, quoteinvref, datearrived, workstartdate, workstarttime, workfinishdate, hours, reqbydate, technician, status, completed, invoiced, notes) 
    VALUES ('','$_POST[wscid]','$_POST[wsccid]','$_POST[summary]','$_POST[jobtype]','$_POST[caterhamwarrantyid]','$_POST['itm']','$quoteinvref','$_POST[datearrived]','$_POST[workstartdate]','$_POST[workstarttime]','$_POST[workfinishdate]','0','$_POST[reqbydate]','$_POST[technician]','$_POST[status]','0','0','$_POST[notes]')"); 
    if($addq){ 
    $last_id = $con->insert_id; 
    $lastid = mysqli_query($con,"SELECT * FROM `users` WHERE userid = '$last_id'"); 
    $lastidr = mysqli_fetch_assoc($lastid); 
    header("Location: addjobbat.php?wscid=$last_id"); 
    } 
    echo mysqli_error($con); 
    mysqli_close($con); 

Form Code

<div class="panel-body"> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="1:"> 
    &nbsp;&nbsp;1000/3 Month Service (Sigma/Duratec/CSR)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="2:"> 
    &nbsp;&nbsp;1000/3 Month 620 Service<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="3:"> 
    &nbsp;&nbsp;Annual Service ONE (Sigma/Duratec/CSR)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="4:"> 
    &nbsp;&nbsp;Annual Service ONE (Duratec R500)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="5:"> 
    &nbsp;&nbsp;620 Annual Service ONE<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="6:"> 
    &nbsp;&nbsp;Annual Service TWO (Sigma/Duratec/CSR)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="7:"> 
    &nbsp;&nbsp;620 Annual Service TWO<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="8:"> 
    &nbsp;&nbsp;4 year add on (Sigma/Duratec/CSR)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="9:"> 
    &nbsp;&nbsp;6 year add on (Sigma/Duratec/CSR)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="10:"> 
    &nbsp;&nbsp;500 Mile Service (K-Series)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="11:"> 
    &nbsp;&nbsp;3000 Mile Service (K-Series)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="12:"> 
    &nbsp;&nbsp;6000 Mile Service (K-Series) <br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="13:"> 
    &nbsp;&nbsp;12000 Mile Service (K-Series)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="14:"> 
    &nbsp;&nbsp;24000 Mile Service (K-Series)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="15:"> 
    &nbsp;&nbsp;Race Car Service (All Models)<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="16:"> 
    &nbsp;&nbsp;Suzuki 160 1st Service<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="17:"> 
    &nbsp;&nbsp;Suzuki 2 Year Addon<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="18:"> 
    &nbsp;&nbsp;Suzuki 3000 Mile Service<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="19:"> 
    &nbsp;&nbsp;Suzuki 4 Year Addon<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="20:"> 
    &nbsp;&nbsp;Suzuki 6000 Mile Service<br> 
        <input name="itm[]" class="serviceitem" type="checkbox" value="21:"> 
    &nbsp;&nbsp;Suzuki 6 Year Addon<br> 
        </div> 
+2

Zuerst werden Sie die möglichen Fehler in Ihrer Platzierung von echo mysqli_error ($ con) nicht sehen; sollte es irgendwelche geben, da die Header umleiten, bevor Sie das sehen können. Sie sollten auch Ihren Beitrag bearbeiten, um das HTML (Formular) dafür aufzunehmen, da wir nicht wissen, ob die Kontrollkästchen als ein Array behandelt werden oder nicht. Ihr Code ist auch anfällig für eine SQL-Injektion; Verwenden Sie eine vorbereitete Aussage. –

+0

in Bezug auf sql Injektion .. es auf einem lokalen Rechner mit nur mir und 2 anderen Zugang zu diesem System so nicht zu pingelig –

+0

ok; Sie haben etwas beantwortet, das sich nicht auf das mögliche Problem bezieht. Auf jeden Fall; Du hast eine Antwort bekommen, sieh das. –

Antwort

-1

Warum nicht eine neue Variable eingefügt werden soll erstellen?

Implode das Array von $ _POST [ 'ITM'] in eine neue Zeichenfolge, getrennt durch:

$insertThis = implode(":",$_POST['itm']); 

Implode ein Array in einen String aufteilt, durch die ersten Parameter jedes Element trennt, der zweite Parameter Ihr Array

+0

wo genau in meinem Code würde das gehen? und das ist genau das, was ich wollte –

+0

Vor Ihrer Insert-Anweisung, unter Ihren Variablendeklarationen – clearshot66

+0

sagen Fehler in dieser Zeile: für ($ x = 0; $ x

Verwandte Themen