| 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: 14 let
|
|||
0