Autor | Zpráva | ||
---|---|---|---|
Manny Profil * |
#1 · Zasláno: 25. 6. 2012, 14:47:37
Nefunguje mi zdánlivě triviální spojení pole do řetězce
Pole vzniká z tohoto: $pridane_produkty .= "(NULL, '".$order_id."', '".$row['titulek']."','".$quantify."', '".$value."')"; a po tom $sql_values = implode(", ", $pridane_produkty); Nevíte někdo prosím proč? Že by se někde tloukly uvozovky? |
||
jenikkozak Profil |
#2 · Zasláno: 25. 6. 2012, 14:50:31
Manny:
„Pole vzniká z tohoto:“ Ale to nevzniká pole, nýbrž řetězec. Funkci implode pak už nepotřebuješ. |
||
Someone Profil |
#3 · Zasláno: 25. 6. 2012, 14:51:33
Manny:
„Nevíte někdo prosím proč?“ Protože tohle: $pridane_produkty .= "(NULL, '".$order_id."', '".$row['titulek']."','".$quantify."', '".$value."')"; |
||
Joker Profil |
#4 · Zasláno: 25. 6. 2012, 14:52:43
Manny:
$pridane_produkty je řetězec, argumentem implode je pole. Nemá tam spíš být explode? |
||
Tori Profil |
Anebo tam možná má být
$pridane_produkty[] = "(NULL, '".$order_id."', '".$row['titulek']."','".$quantify."', '".$value."')"; (když už jsme u toho věštění). :)
Manny: Chcete-li přesnější radu, ukažte větší kus kódu - jak se celý ten SQL dotaz skládá a použije. |
||
Manny Profil * |
#6 · Zasláno: 25. 6. 2012, 16:23:15
Tori:
Možná jsem to špatně popsal. Na základě session a dotazu do db načítám info o produktech a to potom potřebuju zase insertovat jako nákup do db. Takže $pridane_produkty je jen jeden průchod cyklem. A sql_values by měl být řetězec, který má být součásti insertu. |
||
Alphard Profil |
#7 · Zasláno: 25. 6. 2012, 17:26:05
Manny:
Raději ukažte větší část kódu (tím myslím relevantní část, ne 300 řádků). |
||
Manny Profil * |
#8 · Zasláno: 25. 6. 2012, 18:35:47
Alphard
Dobrá, větší část kódu ve fázy hrubé rozpracovanosti:-) Možná je někda špatná logika, dneska mám zatmnění:-)) $sql = "SELECT id, titulek, cena FROM shop WHERE id IN (".$string.")" ; $result = mysql_query($sql); $order_id = 1; $pridane_produkty = array(); while ($row = mysql_fetch_array($result)) { foreach($_SESSION["cart"] as $klic => $hodnota) { if($klic == $row["id"]) { $quantify = $hodnota; //nastavení množství položek $value = $quantify * $row["cena"]; //nastavení ceny za x množství 1 položky } } $pridane_produkty .= "(NULL, '".$order_id."', '".$row['titulek']."','".$quantify."', '".$value."')"; } $sql_values = implode(", ", $pridane_produkty); $sql = "INSERT INTO order_info VALUES ".$sql_values; atd... |
||
Alphard Profil |
#9 · Zasláno: 25. 6. 2012, 19:12:55
[#5] Tori to uhádla správně.
|
||
Tori Profil |
#10 · Zasláno: 25. 6. 2012, 19:50:07
Dá se to i bez převodů na pole a zpět. Změny:
// řádek 8: $pridane_produkty = ''; // řádek 19: $pridane_produkty .= "(NULL, '".$order_id."', '".$row['titulek']."','".$quantify."', '".$value."'), "; // řádek 23: $sql_values = rtrim($pridane_produkty, ', '); |
||
Časová prodleva: 12 let
|
0