Weergegeven resultaten: 1 t/m 6 van 6
  1. #1
    Approved 9-lifer Bram's schermafbeelding
    Lid sinds
    1/08/02
    Locatie
    Gent
    Berichten
    9.690
    iTrader
    2 (100%)

    PHP: headers already sent

    kvoel me nogal stom dak hier weer een thread moet komen maken over hoogstwaarschijnlijk iets onnozel dat ik over het hoofd zie, maar goed, here goes.

    Oud probleem opgelost, nieuw: zie post #3
    Ik heb een tabel met items voor m'n navigatie: id, parent id, positie en dan de 4 verschillende talen.

    In m'n cms loop ik door deze gegevens en stel zo een tabel op met de gegevens van elk item, om deze te updaten. Opdat ik unieke namen zou hebben voor m'n input velden en selects gebruik ik dingen als echo $row['id'].'-id'; enzovoort...

    Als ik het script wil afhandelen loop ik weer door deze gegevens als volgt:
    PHP-code:
    if(isset($_POST['submNavEdit'])) {
    //get highest id
    $g mysql_fetch_assoc(mysql_query("SELECT id FROM nav ORDER BY id DESC LIMIT 0, 1"));
    $lp $g['id']; //highest id

    $i 1;
    while(
    $i <= $lp) {
        
    $curbn $i.'-bn';
        
    $curbf $i.'-bf';
        
    $curfr $i.'-fr';
        
    $curde $i.'-de';
        
    $curpid $i.'-pid';

        
    $curid $_POST['id'];
        
    $pid = isset($_POST[$curpid]) ? $_POST[$curpid] : '';
        
    $bn = isset($_POST[$curbn]) ? $_POST[$curbn] : '';
        
    $bf = isset($_POST[$curbf]) ? $_POST[$curbf] : '';
        
    $fr = isset($_POST[$curfr]) ? $_POST[$curfr] : '';
        
    $de = isset($_POST[$curde]) ? $_POST[$curde] : '';
        
        
    $qry "UPDATE nav SET pid = '$pid', bn = '$bn', bf = '$bf', fr = '$fr', de = '$de' WHERE id = '$curid'";
        if(
    mysql_query($qry)) {
            
    header("Location: ".REFERER);
        } else {
            die(
    mysql_error());
        }
        
        
    $i++;
    }

    Alsek print_r($_POST); doe, zie ik dat alles in orde is en alles juist wordt doorgegeven, maar ergens in m'n while loop gaat het fout, want er wordt niet geupdate...
    Laatst gewijzigd door Bram; 19 september 2007 om 10:54
    If I had a nickel for every time someone told me that my idea for melting down coins to make a giant robotic parrot was a bad idea, I would have one kicka$$ giant robotic parrot.

  2. #2
    Member
    Lid sinds
    7/06/06
    Locatie
    Antwerpen
    Berichten
    157
    iTrader
    0
    Steekt er wel een waarde in uw $curid ?

    Print de query eens af zodat je kan zien wat hij er van maakt en of alles wel effectief ingevuld is...

  3. #3
    Approved 9-lifer Bram's schermafbeelding
    Lid sinds
    1/08/02
    Locatie
    Gent
    Berichten
    9.690
    iTrader
    2 (100%)
    da was dus het probleem... gvd, laat werken is nooit een goed idee

    ik moest ook nog een current id maken, de gewone id werkte dus niet. alvast bedankt!

    edit: ander probleem: m'n header("Location: ".REFERER) doet het niet meer... Headers allready sent error, maar nochtans wordt de php afgehandeld voor de HTML (admin.inc.php wordt geinclude voordat admin.tpl wordt weergegeven)...

    Waarom geeft ie dan deze bug? Omdat er hoger in het document al een header() staat? (na het inlogform)

    edit: opgelost: gewoon ipv van de header() te zetten, staat er nu $refer = TRUE; op het einde van het document controleert hij...
    Laatst gewijzigd door Bram; 19 september 2007 om 10:57
    If I had a nickel for every time someone told me that my idea for melting down coins to make a giant robotic parrot was a bad idea, I would have one kicka$$ giant robotic parrot.

  4. #4
    Approved 9-lifer Bram's schermafbeelding
    Lid sinds
    1/08/02
    Locatie
    Gent
    Berichten
    9.690
    iTrader
    2 (100%)
    v dit topic gebruik makend om geen nieuwe te hoeven starten:

    M'n nav database heeft een veld id met unieke waarden. Nu normaal gezien zou je dat op auto-increment zetten, maar ik ga echter eerst de hoogste id waarde gaan achterhalen en vermeerder die dan met 1, opdat ik in m'n nav edit formulier er zou kunnen doorlopen als volgt:
    HTML-code:
    {foreach from=$all item=row}	
    <input type="text" name="{$row.id}-bn" value="{$row.bn}" />
    {/foreach—
    (ik gebruik smarty)
    en in m'n php loop ik door al deze waarden met
    PHP-code:
    $i 1;
    while(
    $i <= $lp) {
        
    $curbn $i.'-bn';

        
    $bn = isset($_POST[$curbn]) ? $_POST[$curbn] : '';

    Nu zit ik echter met het probleem (of ik nu auto-increment gebruik of mijn systeem) dat, wanneer ik een menu-item delete (bv 5) de id's overspringen van 4 op 6. In m'n php while lus geeft dat echter een probleem, aangezien ie gaat zoeken naar een id nummer 5, dat niet bestaat. Gevolg: error.

    Iemand een suggestie hoe dit op te lossen?
    If I had a nickel for every time someone told me that my idea for melting down coins to make a giant robotic parrot was a bad idea, I would have one kicka$$ giant robotic parrot.

  5. #5
    Verwarmingselement Radiance's schermafbeelding
    Lid sinds
    1/07/02
    Locatie
    Brussel
    Berichten
    3.795
    iTrader
    14 (100%)
    Ik heb nu 5x uw code gelezen maar versta de bedoeling nog altijd niet.
    Maar waarom bereken je als het ware die IDs ? Haal ze gewoon op uit je database en toon ze in je list ?

  6. #6
    Approved 9-lifer Bram's schermafbeelding
    Lid sinds
    1/08/02
    Locatie
    Gent
    Berichten
    9.690
    iTrader
    2 (100%)
    ja sorry, kwas nog nie lang wakker kheb het ondertussen al kunnen oplossen. De code ging op zoek naar iets wat er niet was (door die while loop). Ik moest gewoon nog een if inbouwen die controleert of den mysql result wel bestond, en zo niet, dat oversloeg in de lus.

    Kzit ondertss met een ander ei

    kmoet een aantal records selecteren uit tabel nav, maar als een overeenkomend navid voorkomt in de tabel content, dan mogen ze niet in de resulterende array opgenomen worden. khad geprobeerd met nen inner join, ma da werkt precies niet (tenzij ik iets verkeerd doe)

    PHP-code:
    $fetchid mysql_query("SELECT * FROM nav INNER JOIN content ON content.navid != nav.id"); 
    lang leve de mannen op irc
    PHP-code:
    "SELECT * FROM nav WHERE NOT EXISTS (SELECT * FROM content WHERE content.navid = nav.id)" 
    Laatst gewijzigd door Bram; 20 september 2007 om 15:29
    If I had a nickel for every time someone told me that my idea for melting down coins to make a giant robotic parrot was a bad idea, I would have one kicka$$ giant robotic parrot.

Discussie informatie

Users Browsing this Thread

Op dit moment bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •