2015-05-29 6 views
5

Sto cercando di recuperare tre colonne dal database MySql. Sono in grado di recuperare i contenuti ma questo non è ciò di cui ho bisogno. Ho bisogno solo del contenuto come array di stringhe in modo che io possa usarle per popolare la visualizzazione elenco nel mio codice java.Come recuperare solo il contenuto del database utilizzando lo script PHP

La risposta attuale dal mio script è:

{ ["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"} 

ho bisogno di qualche cosa come come illustrato di seguito in un array di stringhe o un elenco:

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

Come posso ottenere solo il valore memorizzato nella colonna in PHP. Sono nuovo agli script PHP, quindi per favore aiutami a risolvere questo problema.

Il mio script PHP attuale è la seguente:

<?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(); 
?> 

Per favore fatemi sapere quale cambiamento ho bisogno di fare nello script per ottenere solo il contenuto delle colonne. Tutti i suggerimenti sono ben accetti Grazie in anticipo.

risposta

2

È inoltre possibile utilizzare mysqli_fetch_row()

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

Prova questo Aggiornato

$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

Più vicino Ho ottenuto la risposta seguente: 1 (abc @ 123) 2 (abc @ 123), sto ottenendo il valore delle colonne ripetute e il suo valore di visualizzazione di una sola riga. Può essere risolto? – Keshav1234

+0

Attualmente sto ricevendo questa risposta: 1 (abc @ 123) (il mio post Android) 2 (abc @ 123) (il mio post Android), \ n non funziona, posso sapere perché? – Keshav1234

+0

per ottenere i dati della riga in questione utilizzare 'printf ("% s (% s) \ n ", $ riga [0], $ riga [1], $ riga [2]);' – Saty

2

Utilizzare fetch_array anziché fetch_object. Potresti aver bisogno di ulteriori modifiche per ottenere l'array esattamente come desideri, ma almeno è molto più vicino.

Se si specifica MYSQL_NUM come secondo parametro, si otterrà un array senza chiavi e solo indici numerici. Quella matrice è abbastanza pulita da elaborare ulteriormente.

è possibile l'uscita array usando un ciclo for ...

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

o utilizzare implode() ...

echo implode($array); 

o utilizzare json_encode() ...

echo json_encode($array); 

E ' tutto dipende da come esattamente vuoi mostrare la tua matrice.

Funzioni come print_r e var_dump sono utili per ispezionare il contenuto di matrici e altre variabili, ma è improbabile che producano tali contenuti in un formato utilizzabile da programmi esterni.

+0

Trol ho ricevuto il sottostante risposta dopo che ho usato fetch_array: Il valore della risposta è array (6) {[0 ] => string (1) "1" ["UID"] => string (1) "1" [1] => string (7) "abc @ 123" ["UserName"] => string (7) " abc @ 123 "[2] => stringa (15)" Il mio post Android "[" Oggetto "] => stringa (15)" Il mio post Android "} array (6) {[0] => stringa (1)" 2 "[" UID "] => string (1)" 2 "[1] => string (7)" abc @ 123 "[" UserName "] => stringa (7) "abc @ 123" [2] => stringa (15) "Il mio post Android" ["Oggetto"] => stringa (15) "Il mio post Android"} Impossibile rimuovere quella stringa (1) parti e [ " " ] parti? – Keshav1234

+0

La parte '[string (1)]' è ciò che ottieni quando usi 'var_dump'. Puoi usare 'print_r' per ottenere una stampa più pulita, oppure puoi semplicemente scorrere l'array e inviarlo in ogni caso. Ho aggiunto un po 'di informazioni extra alla risposta .. In ogni caso, probabilmente dovrai fare * qualche * codifica te stesso, a meno che non trovi una funzione che la emette esattamente come ne hai bisogno. – GolezTrol

2

Si può accedere all'oggetto '->' simbolo

$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

Got la seguente risposta: Il valore della risposta è abc @ 123 My Android Messaggio sua avermi dato il valore della seconda fila e non sia in prima fila e seconda fila. C'è un modo per rimuovere i tag tr e td? – Keshav1234

+0

è possibile rimuovere tr td se non si desidera –

+0

ok. Proverò a farti sapere il numero – Keshav1234

1

cambiare la vostra dichiarazione prescelta, probabilmente concatenare le colonne :

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

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

uso fetch_assoc e stampare ogni riga:

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

echo $row['myresult']; 

} 
+0

@ Keshav1234 funziona per te? –

+0

ha ottenuto questo errore: mysqli_fetch_assoc() si aspetta che il parametro 1 sia mysqli_result, null dato in – Keshav1234

+0

@ Keshav1234 ho modificato il codice, provalo ora –

Problemi correlati