2016-04-08 7 views
0

Ich habe zwei PHP-Seite. Im ersten Kontrollkästchen Array Ich habe Looping:PHP übergeben Array

<td><input type="checkbox" name="cek[]" value=" <?php echo "$kodeinventarisit" ?>"></td>` 

Dann reichen i Form von Seite bis Seite zwei:

<?php 
include 'koneksi.php'; 
$cek = $_POST['cek']; 
$jumlah_dipilih = count($cek); 

for($x=0;$x<$jumlah_dipilih;$x++){ 
    $jojo = $cek[$x]; 
    $coba = "select * from msstok where kodeinventarisit = '$jojo' "; 
    $cobaquery = mysql_query($coba); 
    $hasil = mysql_fetch_array($cobaquery); 
    $jenis = $hasil['jenis']; 
    ?> 
    <input name="kode" type="text" id="license" value="<?php echo htmlentities($jenis) ; ?>" readonly="readonly" /> 
    <?php 
    echo "$jojo"; 

} 

?> 

Das Problem in der SQL-Abfrage Rückkehr nichts ist, versuche ich echo „$ jojo "und es ist der Wert drucken, aber im Textfeld ist leer ..

Hat jemand Vorschläge, wie das zu beheben? Vielen Dank

+0

was wird '$ _POST ['cek']' !! –

+0

Bevor Sie etwas tun, refaktorieren Sie den alten, veralteten, hochgradig unsicheren mysql-Treiber. Verwenden Sie stattdessen mysqli oder PDO. – DevDonkey

Antwort

0

Wenn Sie das Array übergeben möchten, müssen Sie überprüfen, ob in Ihrer zweiten Seite ankommen.

<pre> 
    print_r($_POST['cek']); 
</pre> 

Wenn jetzt hier ankommen, können Sie die Werte wie folgt lesen:

<?php 
// If is array(), then you can go to loop 
if(is_array($_POST['cek'])) 
{ 
    // Run the loop 
    foreach($_POST['cek'] as $value) 
    { 
     // Show values per line 
     echo $value. "<br/>"; 
    } 
} 
?> 

Sie können nur 1 Wert Ihrer Array

<?php echo $_POST['cek'][0]; ?> 
<?php echo $_POST['cek'][1]; ?> 
<?php echo $_POST['cek'][2]; ?> 

lesen Schlussfolgerung

Sie können Array nicht an SQL in Abfrage übergeben. Wenn Sie es benutzen wollen, ist dies der einzige Weg mit implode.

$coba = "SELECT * FROM msstok WHERE kodeinventarisit IN (".implode(',', $jojo).")"; 


$records = mysql_query($coba, $connection); 
while ($row = mysql_fetch_array($records)) { 
    echo "Name: " . $rows['name'] . "<br />"; // replace the name for column you want 
} 
+0

es ist ankommen, aber wenn ich den Array-Wert in der SQL-Abfrage verwenden möchten, in $ Coba ist es nichts zurückgeben .. – Rizkia

+0

Sie können Array nicht an SQL in Abfrage übergeben. Wenn Sie es benutzen wollen, ist dies der einzige Weg mit implode. $ QueryStr = "SELECT * FROM MSTOK WHERE Kodeinventarisit IN (" .implode (',', $ jojo). ")"; –

+0

Ich habe es versucht, einen Fehler in der SQL-Abfrage Zeile: Warnung: mysql_fetch_array() erwartet Parameter 1 als Ressource, Zeichenfolge gegeben – Rizkia

0

Was Sie tun schlecht.

Laden Sie Ihre Daten vor der Schleife und wiederholen Sie jedes Ergebnis, um sie zu drucken.

SQL-Anfrage von Injektion schützen.

Connect

$db = new mysqli("","root","",""); 

Planen Sie Ihre Anfrage

$sql = "select * from msstok where kodeinventarisit = ? "; 
$res = $db->prepare($sql); 
$res->bind_param("sssd",$jojo); 

Ergebnisse anzeigen

$res->execute(); 

Documentati on: http://php.net/manual/fr/book.mysql.php