首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Foreach爆炸管柱停止

Foreach爆炸管柱停止
EN

Stack Overflow用户
提问于 2015-02-20 07:50:21
回答 1查看 290关注 0票数 2

我正在制作eshop (类似)脚本,它在付款后将您添加到DB访问内容。我使用PHP5和MySQL

对问题的介绍

  1. 我有两根绳子。每个值都有用逗号分隔的值。就像这样- testValue1,testValue2,TestValue3
  2. 我在这两个字符串上使用arrays函数来生成数组。用逗号爆炸,效果很好。
  3. 来自第一个数组的Foreach值--如果用户在他的产品中有类似的东西,(如果不是-> )写它为(如果是),(如果是),则在DB content之后写它。
  4. 这里,出现了这个问题。脚本完美地工作,而不是一件事。第一次运行后,Foreach循环退出。它会写入数据库中正确的值,但其中只有一个。

我想要的

代码语言:javascript
复制
$stringOne = "testProduct1,testProduct2";

DB -> Products -> testProduct1#testProduct2中的用户

(出于自己的原因,我将#的产品分开)

我真正得到的

代码语言:javascript
复制
$stringOne = "testProduct1,testProduct2";

DB -> Products -> testProduct1中的用户

代码

代码语言:javascript
复制
$array_mesta = explode(',', $mesta);
$array_ceny = explode(',', $ff['ceny']);
//$ff['ceny'] and $mesta are string which i get from DB few rows above

foreach($array_mesta as $key => $mesto) {

    if (strpos($array_ceny[$key],'6 měsíců') !== false) {
        $delka = '183';
    }
    if (strpos($array_ceny[$key],'12 měsíců') !== false) {
        $delka = '365';
    }

    $query = "SELECT * FROM makleri WHERE email = '".$email."'";
    $sth = mysql_query($query);
    while($r = mysql_fetch_assoc($sth)) {

        $level = $r['level'];
        $od = $r['od'];
        $do = $r['do'];

        if ((strpos($level,'#') !== false) or ($level !== "null")) {
            echo "už v db něco má, zapíšu zato /n";
            $sql = mysql_query("UPDATE makleri SET level = '".$mesto."#rok', od = '".$od."#0"."', do = '".$do."#".$delka." WHERE email = '".$email."'");
        }
        else {
            echo "nic v db nemá, vše přepíšu /n";
            $sql = mysql_query("UPDATE makleri SET level = '".$mesto."', od = '0', do = '".$delka."' WHERE email = '".$email."'");
        }
    }       
}/* foreach */

更新整体功能

代码语言:javascript
复制
function processPayment() {
    self::setState(GopayHelper::PAID);

    $orderNumber = self::getOrderNumber();
    $email = self::getEmail();


    $ss = "SELECT * FROM procesy WHERE orderNumber = '$orderNumber'";
    $jqr2 = mysql_query($ss);
    while($ff = mysql_fetch_assoc($jqr2)) {

        $prevodni_tabulka = Array('ä'=>'a', 'Ä'=>'A', 'á'=>'a', 'Á'=>'A', 'à'=>'a', 'À'=>'A',
                                  'ã'=>'a', 'Ã'=>'A', 'â'=>'a', 'Â'=>'A', 'č'=>'c', 'Č'=>'C',
                                  'ć'=>'c', 'Ć'=>'C', 'ď'=>'d', 'Ď'=>'D', 'ě'=>'e', 'Ě'=>'E',
                                  'é'=>'e', 'É'=>'E', 'ë'=>'e', 'Ë'=>'E', 'è'=>'e', 'È'=>'E',
                                  'ê'=>'e', 'Ê'=>'E', 'í'=>'i', 'Í'=>'I', 'ï'=>'i', 'Ï'=>'I',
                                  'ì'=>'i', 'Ì'=>'I', 'î'=>'i', 'Î'=>'I', 'ľ'=>'l', 'Ľ'=>'L',
                                  'ĺ'=>'l', 'Ĺ'=>'L', 'ń'=>'n', 'Ń'=>'N', 'ň'=>'n', 'Ň'=>'N',
                                  'ñ'=>'n', 'Ñ'=>'N', 'ó'=>'o', 'Ó'=>'O', 'ö'=>'o', 'Ö'=>'O',
                                  'ô'=>'o', 'Ô'=>'O', 'ò'=>'o', 'Ò'=>'O', 'õ'=>'o', 'Õ'=>'O',
                                  'ő'=>'o', 'Ő'=>'O', 'ř'=>'r', 'Ř'=>'R', 'ŕ'=>'r', 'Ŕ'=>'R',
                                  'š'=>'s', 'Š'=>'S', 'ś'=>'s', 'Ś'=>'S', 'ť'=>'t', 'Ť'=>'T',
                                  'ú'=>'u', 'Ú'=>'U', 'ů'=>'u', 'Ů'=>'U', 'ü'=>'u', 'Ü'=>'U',
                                  'ù'=>'u', 'Ù'=>'U', 'ũ'=>'u', 'Ũ'=>'U', 'û'=>'u', 'Û'=>'U',
                                  'ý'=>'y', 'Ý'=>'Y', 'ž'=>'z', 'Ž'=>'Z', 'ź'=>'z', 'Ź'=>'Z'
                                  ); 
        $mesta = strtr($ff['mesta'], $prevodni_tabulka);

        $array_mesta = explode(',', $mesta);
        $array_ceny = explode(',', $ff['ceny']);

        foreach($array_mesta as $key => $mesto) {

            if (strpos($array_ceny[$key],'6 měsíců') !== false) {
                $delka = '183';
            }
            if (strpos($array_ceny[$key],'12 měsíců') !== false) {
                $delka = '365';
            }

            $query = "SELECT * FROM makleri WHERE email = '".$email."'";
            $sth = mysql_query($query);
            while($r = mysql_fetch_assoc($sth)) {

                $level = $r['level'];
                $od = $r['od'];
                $do = $r['do'];

                if ((strpos($level,'#') !== false) or ($level !== "null")) {
                    echo "už v db něco má, zapíšu zato /n";
                    $sql = mysql_query("UPDATE makleri SET level = '".$mesto."#rok', od = '".$od."#0"."', do = '".$do."#".$delka." WHERE email = '".$email."'");
                }
                else {
                    echo "nic v db nemá, vše přepíšu /n";
                    $sql = mysql_query("UPDATE makleri SET level = '".$mesto."', od = '0', do = '".$delka."' WHERE email = '".$email."'");
                }
            }
        }/* foreach */
    }/* while */
}

DB值

代码语言:javascript
复制
$ff['mesta'] = "Brno,Praha,Olomouc";
$ff['ceny'] = "12 měsíců - Cena za měsíc - 100 Kč bez DPH,6 měsíců - Cena za měsíc - 100 Kč bez DPH,6 měsíců - Cena za měsíc - 100 Kč bez DPH";

$level,$od,$do的输出

代码语言:javascript
复制
$level = "Brno";
$od = "0";
$do = "365";
EN

回答 1

Stack Overflow用户

发布于 2015-04-09 12:16:25

作为stated by op,这个语句中缺少一个单引号,在where之前:

代码语言:javascript
复制
$sql = mysql_query("UPDATE makleri SET level = '".$mesto."#rok', od = '".$od."#0"."', do = '".$do."#".$delka." WHERE email = '".$email."'");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28623971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档