2012-11-29 24 views
0

我需要查詢的結果成爲數組,並使用該數組從第二個php mysqli查詢中的數據庫中提取數據。不能讓數組在查詢中工作

<?php 
include"connection.php"; 
$pos = mysqli_query($not,"SELECT * FROM equipos"); 
$logos = array(); 
while($row= mysqli_fetch_assoc($pos)){ 
$logos[] = "<br>'".$row['abrv']."'=>"."'".$row['logo']."'"; 
} 
$logos = implode(",", $logos); 

$enjuego = mysqli_query($not,"SELECT * FROM partidos WHERE dprt='ftbls'"); 
while($part=mysqli_fetch_array($enjuego)){ 
$liga=$part['serie']; 
$eq1= $part['eq1']; 
$eq1s= strtoupper($eq1); 
$eq2= $part['eq2']; 
$eq2s= strtoupper($eq2); 

echo $logos[$eq1].'<br>'; 
} 
?> 

它給了我一遍又一遍的同樣的錯誤。這是我最接近的,但不起作用。有人能告訴我我做錯了什麼嗎?

我得到的錯誤是:警告:非法串偏移「卦」第18行

+0

你貼20行代碼,並告訴我們在第22行有一個錯誤。 – MrCode

+0

是'echo $ logos [$ eq1]。'
';'你的線22 – Ravi

+0

它的第18行,抱歉關於錯字 –

回答

1

在這裏您將$logos數組變量轉換爲字符串類型:

$logos = implode(",", $logos); 

再後來在最後要再次訪問它,就好像它是一個數組:

echo $logos[$eq1].'<br>'; 

那就是你所得到的錯誤。

+0

+1在頭上。 – Ben

+0

你看,我試圖從第二個查詢使用一個公共元素,但在第一個數組中尋址圖像名稱的結果。我有道理嗎? –

0

你有一個數字有序數組爲$標誌。你不能通過implode(「,」,$ logos)使它崩潰,這種方式你試圖分解一個逗號分隔的數組,它應該看起來像$ logos = array(「foo」,「bar」);逗號分隔陣列。

$ logo [] =>這應該看起來像; $ logo = array(「0」=>「foo」,「1」=>「bar」) 嘗試傾倒你的數組,看看什麼是錯的(後續代碼var_dump($標誌);)後第一while循環

+0

我whant從所述第一查詢的結果是這樣的:

$標誌=陣列( 'AME'=> '美', 'ATN'=> '亞特蘭特', 'ATL'=>」圖譜, 'JAG'=> '恰帕斯州', 'CAZ'=> 'cruzazul', '卦'=> '瓜達拉哈拉', 'LEO'=> '萊昂', 'MTY'=>」 monterrey', 'mor'=>'morelia', 'pac'=>'pachuca', 'pue'=>'puebla', 'qto'=>'queretaro', 'sl'=>' sanluis', 'san'=>'santos', 'xol'=>'tijuana', 'tol'=>'toluca', 'tig'=>'uanl', 'pum'=>'unam', ); 這樣我可以用它在第二查詢基於第一查詢拋出陣列 –

0

首先,去掉破滅因爲這將您的數組轉換爲字符串

然後你想拿到鑰匙。「 eq1「來自$ logos數組中的表」partidos「,它可能不存在(因爲數組會喜歡這個數組(0 =>'first',1 =>'second ',2 =>'第三')))。

您必須擁有的東西是「EQUIPOS」和「partidos」共有的,可以說「abrv」是一回事EQ1的解決辦法是:

<?php 

include"connection.php"; 

$pos = mysqli_query($not, "SELECT * FROM equipos"); 

$logos = array(); 
while($row = mysqli_fetch_assoc($pos)){ 
    $logos[$row['abrv']] = "<br>'".$row['abrv']."'=>"."'".$row['logo']."'"; 
} 

$enjuego = mysqli_query($not, "SELECT * FROM partidos WHERE dprt='ftbls'"); 

while($part = mysqli_fetch_array($enjuego)){ 
    $liga = $part['serie']; 
    $eq1 = $part['eq1']; 
    $eq1s = strtoupper($eq1); 
    $eq2 = $part['eq2']; 
    $eq2s = strtoupper($eq2); 

    echo $logos[$eq1].'<br>'; 
} 
+0

的$ EQ1,其實是一樣的abrv他們持有相同的關係(EQUIPOS)上的名字拉的圖像 ___________________________ |標誌| abrv | ___________________________ | frstlogo.jpg | frst | ___________________________ | scndlogo.jpg | scnd | (比賽) ___________________________ | eq1 | eq2 | ___________________________ | frst | scnd | ___________________________ | scndlogo.jpg | scnd | ___________________________ $ logos [$ eq1] –