2015-05-29 11 views
5

MySql veritabanından üç sütun almaya çalışıyorum. İçeriği alabiliyorum ama ihtiyacım olan şey bu değil. Yalnızca bir dize dizisi olarak içeriğe ihtiyacım var, böylece java kodumda liste görünümünü doldurmak için bunları kullanabilirim.PHP betiğini kullanarak yalnızca Veritabanı içeriğini nasıl alırım?

senaryom güncel yanıttır:

1 [email protected] My Android Post 
2 [email protected] My Android Post 

Sadece değer saklanan alabilirsiniz nasıl bir dize dizisi veya liste halinde aşağıda gösterilen gibi

{ ["UID"]=> string(1) "1" ["UserName"]=> string(7) "[email protected]" ["Subject"]=> string(15) "My Android Post"}object(stdClass)#4 (3) { ["UID"]=> string(1) "2" ["UserName"]=> string(7) "[email protected]" ["Subject"]=> string(15) "My Android Post"} 

Biraz şeye ihtiyacım PHP sütununda. PHP betiklerinde yeniyim, lütfen bu sorunu çözmemde bana yardımcı olun.

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "iFocusBlogs"; 



$obtainedUserName = 1;   

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql="SELECT UID, UserName, Subject FROM AndroidTable WHERE Status ='" .$obtainedUserName. "'"; 
$result=mysqli_query($conn,$sql); 

while($obj = $result->fetch_object()){ 
var_dump($obj); 

} 

$conn->close(); 
?> 

bana sütunların sadece içeriğini almak için komut yapmak gerekir ne değişiklik bildirin: aşağıda gösterildiği gibi

Benim şu anki PHP script. Tüm öneriler kabul edilir. Şimdiden teşekkürler.

cevap

2

erişebilir :

$sql="SELECT CONCAT (UID,' ' , UserName,' ', Subject) AS myresult FROM AndroidTable WHERE Status =" . $obtainedUserName ; 

$result = $conn->query($sql); 

kullanımı FETCH_ASSOC ve her satır baskı: I fetch_array kullanılan sonra cevap aşağıda var

while($row = $result->fetch_assoc()){ 

echo $row['myresult']; 

} 
+0

Daha yakından çalışmayı deneyeceğim ve aşağıdaki yanıtı aldım: 1 (abc @ 123) 2 (abc @ 123), tekrarlanan sütunların değerini ve sadece bir satırın görüntüleme değerlerini alıyorum. Bu çözülebilir mi? – Keshav1234

+0

Şu anda bu yanıtı alıyorum: 1 (abc @ 123) (My Android Post) 2 (abc @ 123) (My Android Post), \ n çalışmıyor, Nedenini biliyor muyum? – Keshav1234

+0

, sıralı satır kullanımı 'printf ("% s (% s) \ n ", $ satır [0], $ satır [1], $ satır [2]);' – Saty

2

fetch_object yerine fetch_array kullanın. Diziyi istediğiniz gibi almak için bazı ek değişikliklere ihtiyacınız olabilir, ancak en azından çok daha yakın.

MYSQL_NUM ikinci parametre olarak belirtirseniz, anahtarsız bir dizi ve yalnızca sayısal dizinler alırsınız. Bu dizi daha fazla işlemek için yeterince temiz.

Sen çıkış döngüsü kullanarak diziyi ...

foreach($array as $item) { 
    echo $item . '<br>'; 
} 

veya kullanım can implode() ...

echo implode($array); 

veya json_encode() kullanmak ...

echo json_encode($array); 

It hepsi dizininizi tam olarak nasıl göstermek istediğinize bağlıdır.

print_r ve var_dump gibi işlevler, dizilerin ve diğer değişkenlerin içeriğini incelemek için kullanışlıdır, ancak bu içeriğin harici programlar tarafından kullanılabilen bir biçimde çıkarılması olası değildir.

+0

Trol: tepkisinin değer dizisi (6) {[0 ] => string (1) "1" ["UID"] => string (1) "1" [1] => string (7) "abc @ 123" ["KullanıcıAdı"] => string (7) " abc @ 123 "[2] => string (15)" Android Gönderim "[" Konu "] => string (15)" Android Mesajım "} dizisi (6) {[0] => string (1)" 2 "[" UID "] => string (1)" 2 "[1] => string (7)" abc @ 123 "[" KullanıcıAdı "] => string (7)) "abc @ 123" [2] => string (15) "Android Gönderim" ["Konu"] => string (15) "Android Defterim"} Bu String (1) parçalarını ve [ ""] parçalar? – Keshav1234

+0

'[string (1)]' kısmı, var_dump' kullandığınızda aldığınız şeydir. Daha temiz bir baskı almak için 'print_r' kullanabilirsiniz, ya da sadece dizinin içinden geçip istediğiniz çıktıyı alabilirsiniz. Ben cevap için biraz fazladan bilgi ekledim .. Neyse, muhtemelen ona ihtiyaç duyduğunuz şekilde çıktı veren bir işlev bulamazsanız, kendinizi * kodlama * yapmanız gerekecektir. – GolezTrol

2

Sen de muhtemelen sütunları bitiştirmek, bu Güncelleme

$query="SELECT UID, UserName, Subject FROM AndroidTable WHERE Status ='" .$obtainedUserName. "'"; 

if ($result = $conn->query($query)) { 

    /* fetch associative array */ 
    while ($row = $result->fetch_assoc()) { 
     printf ("%s (%s)\n", $row["UID"], $row["UserName"],$row["Subject"]); 
    } 
} 
+0

şu yanıtı var: yanıtın değeri abc olduğunu @ 123 My Android Mesaj Onun bana ikinci sıradaki değerini değil, hem birinci satır ve ikinci satır vererek. Tr ve td etiketlerini kaldırmanın bir yolu var mı? Eğer – Keshav1234

+0

tr td kaldırabilirsiniz. –

+0

istemiyorsanız – Keshav1234

1

değiştireceğim sizin select deyimi deneyin mysqli_fetch_row()

/* fetch associative array */ 
    while ($row = mysqli_fetch_row($result)) { 
     printf ("%s (%s)\n", $row[0], $row[1]).PHP_EOL; 
    } 

kullanabilirsiniz nesne '->' sembolü

$tCont=""; 
while($obj = $result->fetch_object()){ 
//var_dump($obj); 
$tCont.='<tr><td>'.$obj->UID.'</td><td>'.$obj->UserName.'</td><td>'.$obj->Subject.'</td></tr>'; 

} 
echo $tCont; 
+0

@ Keshav1234 sizin için çalışıyor mu? –

+0

bu hatayı aldı: mysqli_fetch_assoc() mysqli_result parametresi 1 olmasını bekler, – Keshav1234

+0

@ Keshav1234 içinde verilen null kodunu değiştirdim, şimdi deneyin –

İlgili konular