Results 1 to 9 of 9

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User DonDale's Avatar
    Join Date: Nov:2008
    Location: Bulgaria
    Posts: 126

    Çàïèñ îò Checkbox â mySQL òàáëèöà / PHP

    Çäðàâåéòå,
    Èìàì åäèí ïðîáëåì.
    Îò îòäåëíà òàáëèöà ñúñ êàòåãîðèè (òàáëèöàòà ñúäúðæà äâå ïîëåòà ID, Name) èçâåæäàì â îòäåëíè checkbox ïîëåòà èìåòî íà êàòåãîðèÿòà è êàòî ñòîéíîñò VALUE IDòî íà òàçè êàòåãîðèÿ. Â áàçàòà íà äàäåíèÿ îáåêò èñêàì äà ïðèñâîÿ êîëêîòî êàòåãîðèè, äàäåí ïîòðåáèòåë ñè å èçáðàë. Ñúçäàäîõ îòäåëíà òàáëèöà ñúñ âðúçêà ìíîãî êúì ìíîãî, â êîÿòî ùå ñå ñúõðàíÿâàò ID íà îáåêò è ID íà êàòåãîðèÿ.
    Âúïðîñúò ìè å - Êàê äà ðàçáåðà êîè ÷åêáîêñîâå ñà îòìåòíàòè è êàê äà ãè çàïèøà â áàçàòà âñè÷êèòå, çàùîòî â ìîìåíòà ìè âàäè ñàìî ïîñëåäíèÿ ÷åêíàò. Ñïîðåä ìåí òðÿáàâà äà ñå íàïðàâè åäèí öèêúë , ÷ðåç êîéòî äà ñå îáõîæäàò âñè÷êèòå è äà ñå ñëåäè êîé å ÷åêíàò è àêî å äà ïóñêà çàÿâêà êúì áàçàòà, íî íåçíàì êàê äà ãî ðåàëèçèðàì. Íÿêîé àêî ìîæå äà äàäå èäåÿ.
    Áëàãîäÿðÿ ïðåäâàðèòåëíî.

  2. #2
    Ëîø àäìèí! vbTheKing's Avatar
    Join Date: Sep:2003
    Location: Ñîôèÿ
    Posts: 4,138
    Çà name íà ãðóïàòà îò ÷åêáîêñîâå ñëàãàø íåùî îò ñîðòà íà name="categories[]", çà value ïî÷âàø äà èçðåæäàø ID-òàòà, ò.å. äà ñå ïîëó÷è íåùî îò ñîðòà íà:
    <input type="checkbox" name="categories[]" value="1" />
    <input type="checkbox" name="categories[]" value="2" />
    <input type="checkbox" name="categories[]" value="3" />
    Ïîñëå â ÐÍÐ-òî îáõîæäàø ìàñèâà $_POST['categories'] (èëè ñúîòâåòíî $_GET['categories']) ñ åäèí foreach è çà âñè÷êè value-òà, êîèòî ñè ïîëó÷èë â ìàñèâà - ïóñêàø çàÿâêà. Îñòàíàëèòå ÷åêáîêñîâå, êîèòî íå ñà ÷åêíàòè - íÿìà äà âëåçíàò â ìàñèâà.

    P.S. Àêî íå ñúì ðàçáðàë òî÷íî êàêâî èñêàø - ïóñíè html êîäà è php êîäà, êîéòî ñè íàïðàâèë äî ìîìåíòà çà äà ñòàíå ïî-ÿñíî êàêâî öåëèø.
    Ëþáèìî ïèòèå çàïî÷âàùî ñ áóêâàòà 'Ê'? * Êàñà áèðà *
    Àêî ìîæåø äà ëåæèø íà ïîäà áåç äà òè ñå íàëàãà äà ñå äúðæèø - âñå îùå ÍÅ ñè ïèÿí!
    Äàâàéòå ñëåäâàùàòà Êàñà...

  3. #3
    Registered User DonDale's Avatar
    Join Date: Nov:2008
    Location: Bulgaria
    Posts: 126
    Ïîëëó÷è ñå !!!

    if(isset($_POST['checkbox']))
    {
    foreach ($_POST['checkbox'] as $value){
    $checkbox= $_POST['checkbox'];
    $n = count($checkbox);
    $i = 0;
    }
    while ($i < $n)
    {
    $id_query = "INSERT into tbl(obj_id, category_id) VALUES ('$id_obj', '$checkbox[$i]]')";
    mysql_query($id_query) or die(mysql_error());
    $i++;
    }
    }

  4. #4
    Ëîø àäìèí! vbTheKing's Avatar
    Join Date: Sep:2003
    Location: Ñîôèÿ
    Posts: 4,138
    À êúäå ìè å áèðàòà?

    Òîÿ foreach äåòî ñè ãî íàïðàâèë â ìîìåíòà å àáñîëþòíî áåçñìèñëåí.
    È òîÿ while òðÿáâà äà å for öèêúë.
    Ñëåä ìàëêî ùå òè ïóñíà ïðåðàáîòåí êîä.

    ---------- Post added at 18:42 ---------- Previous post was at 18:34 ----------

    Åòî òè ãî êîäà. Ïðîìåíëèâàòà $id_obj íå çíàì îò êúäå ÿ âçèìàø, íî àêî â áàçàòà ñè ñëîæèë AUTO_INCREMENT, òî çàÿâêàòà òðÿáâà äà òè å áåç ïîäàâàíå íà ID.
    À àêî ïîëåòî category_id òè å îò òèï integer - ìîæå äà ìàõíåø åäèíè÷íèòå êàâè÷êè îêîëêî $value â çàÿâêàòà.
    PHP Code:
    <?php

    if (isset($_POST['checkbox'])) {
        foreach (
    $_POST['checkbox'] as $value){
            
    //$value = mysql_real_escape_string($value); //òîâà ãî ïîëçâàø ïðåäè äà âêàðâàø â áàçàòà íÿêàêâè äàííè, ðàçëè÷íè îò integer
            
    $value intval($value);
            
    $id_query "INSERT into tbl(obj_id, category_id) VALUES ('$id_obj', '$value')";
            
    mysql_query($id_query) or die(mysql_error());
        }
    }

    ?>
    Ëþáèìî ïèòèå çàïî÷âàùî ñ áóêâàòà 'Ê'? * Êàñà áèðà *
    Àêî ìîæåø äà ëåæèø íà ïîäà áåç äà òè ñå íàëàãà äà ñå äúðæèø - âñå îùå ÍÅ ñè ïèÿí!
    Äàâàéòå ñëåäâàùàòà Êàñà...

  5. #5
    Registered User tedych's Avatar
    Join Date: Nov:2003
    Location: Ïëîâäèâ
    Posts: 17,654
    ×å å áåçñìèñëåí â ñëó÷àÿ, òàêúâ å, àìà ñïîðåä ìåí ñ foreach òàêà èëè èíà÷å ùå ñè å ïî-äîáðå.
    foreach ($_POST['checkbox'] as $value) {
    // tuk wkarvash prosto w DB VALUES ($id_obj, $value)
    }

    êàòî ðàçáèðà ñå ñàíèòèðàø òâà $value ïðåäè òâà äà å ñèãóðíî ÷å å integer, ïî íÿêàêúâ íà÷èí.

    vbTheKing:
    "Ïðîìåíëèâàòà $id_obj íå çíàì îò êúäå ÿ âçèìàø, íî àêî â áàçàòà ñè ñëîæèë AUTO_INCREMENT, òî çàÿâêàòà òðÿáâà äà òè å áåç ïîäàâàíå íà ID."
    - Òîâà ÿâíî ìó å äðóãàòà êîìïîíåíòà âúâ âðúçêàòà ìíîãî-êúì-ìíîãî, áåç íåÿ íÿìà êàê äà ìèíå àêî èñêà äà ðàáîòè òàáëèöàòà. Äàæå ñìèñúë îò auto_increment â ñëó÷àÿ íÿìà, îñâåí àêî íå èñêà äà ñè èìà åäíî ID ñ öåë ïî-öåíòðàëèçèðàíî óïðàâëåíèå íà çàïèñèòå ñ ïî-îáùè ìåòîäè àêî ñè å ðàçðàáîòèë.

    Àç äîêàòî ïèøà òè ñè äîáàâèë êîäà è îáùî âçåòî ñúùèòå íåùà ñè êàçàë

  6. #6
    Registered User DonDale's Avatar
    Join Date: Nov:2008
    Location: Bulgaria
    Posts: 126
    Çà ìîìåíòà ðàáîòè òîâà íàé ãîðå êîåòî ñúì ïîñòíàë. Ïðîìåíëèâàòà $id_obj e IDòî îò äðóãàòà òàáëèöà. Ùå òåñòâàì è ãîðíèòå ïðèìåðè.
    Áëàãîäàðÿ !!!

  7. #7
    Ëîø àäìèí! vbTheKing's Avatar
    Join Date: Sep:2003
    Location: Ñîôèÿ
    Posts: 4,138
    Òî ìîæå äà ðàáîòè, àìà ÿâíî íå ðàçáèðàø êàê ðàáîòè... Òîÿ foreach äåòî ñè íàïðàâèë òè å àáñîëþòíî èçëèøåí. Ìîæåø äà ãî ìàõíåø è äà íàïèøåø:
    $checkbox= $_POST['checkbox'];
    $n = count($checkbox);
    $i = 0;
    Ðåçóëòàòà ùå å ñúùèÿ, äàæå ñêðèïòà ùå ñå èçïúëíè ñ íÿêîëêî ìèêðîñåêóíäè ïî-áúðçî, çàùîòî íå âúðòèø èçëèøåí öèêúë.
    while-à ñúùî ãî èçïîëçâàø íåïîäõîäÿùî.  ñëó÷àÿ ïî-ëîãè÷íî å èçïîëçâàíåòî íà for öèêúë, à èìåííî:
    for ($i=0; $i < $n; $i++) {

    }
    Äà íå ãîâîðèì, ÷å íå ìèñëèø çà òîâà êàêâè äàííè âëèçàò â áàçàòà. Àêî èñêàø, äàé ìè ëèíê êúì äåìî íà òîâà, êîåòî ñè íàïðàâèë â ìîìåíòà, èçïîëçâàéêè ãîðíèÿ (òâîÿ) êîä è ùå òè äåìîíñòðèðàì êàê ñå äðîïâà áàçà äàííè.
    Ëþáèìî ïèòèå çàïî÷âàùî ñ áóêâàòà 'Ê'? * Êàñà áèðà *
    Àêî ìîæåø äà ëåæèø íà ïîäà áåç äà òè ñå íàëàãà äà ñå äúðæèø - âñå îùå ÍÅ ñè ïèÿí!
    Äàâàéòå ñëåäâàùàòà Êàñà...

  8. #8
    Registered User DonDale's Avatar
    Join Date: Nov:2008
    Location: Bulgaria
    Posts: 126
    Quote Originally Posted by vbTheKing View Post
    Òî ìîæå äà ðàáîòè, àìà ÿâíî íå ðàçáèðàø êàê ðàáîòè... Òîÿ foreach äåòî ñè íàïðàâèë òè å àáñîëþòíî èçëèøåí. Ìîæåø äà ãî ìàõíåø è äà íàïèøåø:
    $checkbox= $_POST['checkbox'];
    $n = count($checkbox);
    $i = 0;
    Ðåçóëòàòà ùå å ñúùèÿ, äàæå ñêðèïòà ùå ñå èçïúëíè ñ íÿêîëêî ìèêðîñåêóíäè ïî-áúðçî, çàùîòî íå âúðòèø èçëèøåí öèêúë.
    while-à ñúùî ãî èçïîëçâàø íåïîäõîäÿùî.  ñëó÷àÿ ïî-ëîãè÷íî å èçïîëçâàíåòî íà for öèêúë, à èìåííî:
    for ($i=0; $i < $n; $i++) {

    }
    Äà íå ãîâîðèì, ÷å íå ìèñëèø çà òîâà êàêâè äàííè âëèçàò â áàçàòà. Àêî èñêàø, äàé ìè ëèíê êúì äåìî íà òîâà, êîåòî ñè íàïðàâèë â ìîìåíòà, èçïîëçâàéêè ãîðíèÿ (òâîÿ) êîä è ùå òè äåìîíñòðèðàì êàê ñå äðîïâà áàçà äàííè.
    ÒÎÂÀ ñå ïîëó÷è !!!
    Áëàãîäÿðÿ îòíîâî !!!

  9. #9
    Registered User tedych's Avatar
    Join Date: Nov:2003
    Location: Ïëîâäèâ
    Posts: 17,654
    DonDale, èçâèíÿâàé òîâà, êîåòî ùå êàæà, íå å íèùî ëè÷íî.
    Ïîñëå çàùî íà PHP ìó å òðúãíàëà òàêàâà ñëàâà, è õîðàòà, ïèøåùè íà íåãî êàòî ÷å ëè èìàò ñëàâà ïðîñòî íà äðàñêà÷è íà íåùà êîëêîòî äà òðúãíàò òàì, çàêúðïåíè, çàøèòè, çàëåïåíè ñ ïëþíêà, àìà âúðâÿùè.
    Êîäúò, êîéòî ñè äàë íàãîðå å èçâúí ðàçóìíàòà ëîãèêà äîðè íà íà÷èíàåù ïðîãðàìèñò äåòñêà âúçðàñò. Ñòåãíè ñå.
    Îò äðóãà ñòðàíà íà âñåêè ìîæå äà ñå ñëó÷è òàêîâà íåùî . Ïðîñïàë, çàêúñíÿë, íà 5 áèðè, íà 3 êîíÿêà..  ñëó÷àÿ îáà÷å åäâà ëè ñè íà 5 áèðè .
    Îíÿ foreach çà êàêâî ãî âúðòèø, áè ëè ñïîäåëèë?
    Êîëêîòî äî çàìÿíàòà íà foreach ñ for êàêòî ïðåïîðú÷âà vbTheKing, èìà ñìèñúë ìîæå áè ïî-ñêîðî àêî öåäèø èçïàðåíèÿ îò ïðîèçâîäèòåëíîñò, èëè ñàéòà ùå å íà ðúáà íà íàòîâàðâàíåòî, òîãàâà çà 5-10-20-50 èòåðàöèè íà öèêúëà ìîæå è äà ñå çàáåëåæàò ìèêðîñåêóíäè åôåêòèâèçèðàíå. Íî êàòî ãëåäàì òàêèâà îïòèìèçèðàíèÿ çàñåãà âåðîÿòíî ùå òè äîéäàò ìíîãî, òè ïúðâî ñè îïðàâè êîäà äåòî ïîëçâàø, è äà, íåäåé äà äàâàø êúäå òî÷íî ïîëçâàø òîçè êîä àêî èñêàø äà ñè çàïàçèø áàçàòà ïî ìåòîä security through obscurity .

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 Õàðäóåð ÁÃ. Âúçìîæíî å ñúäúðæàíèåòî íà òàçè ñòðàíèöà äà å îáåêò íà àâòîðñêè ïðàâà.
iskamPC.com | mobility.BG | Bloody's Techblog | Êðèïòîâàëóòè è ìàéíèíã | 3D Vision Blog | Ìàãàçèí çà åëåêòðîííè öèãàðè