[PHP] Inserten hij geeft geen waardes door

Pagina: 1
Acties:

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Ik heb hier al eens een topic over gehad. Maar de topic naam klopte niet bij het probleem dat ik nu heb......

Dit is m'n posting pagina:
meer naar onder staat m'n betere code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
for ($i =0;$i < $Paginas;$i++)
     {
        while ($record = mysql_fetch_array($resultaat))
                 {
                echo "<TR><TD>- $record[maat] $record[abo]</TD><TD><input type=\"text\" name=\"prijs[$i]\"></TR>";
                }
        $record2 = mysql_fetch_array($resultaat);
        echo "<input type=\"hidden\" name=IDa[$i] value=\"$record2[IDa]\">";
        echo "<input type=\"hidden\" name=Paginas value=\"$Paginas\">";
    }
?>

Hiermee verwerk ik de ingevoerde waardes
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
if ($submit) 
     {
     include('./include/config.inc.php');
     $server = mysql_connect($dbhost, $dbuser, $dbpass);
     mysql_select_db($dbname, $server);
     for ($i=0; $i < $Paginas;$i++)
         {
         $temp = $IDa[$i];
         $temp2 = $prijs[$i];
         $sql[$i] = "INSERT INTO pw_prijs (IDg, IDa, bedrijf, prijs, datum) VALUES ('$IDg', '$temp', '$bedrijf', '$temp2', '$datum')";
          mysql_query($sql[$i]) or die("Oops...");
          echo "<BR>",$sql[$i];
          }
      echo "done";
      }
?>

En dit krijg ik dan als echo van de $sql.
code:
code:
1
2
3
4
5
6
7
8
9
INSERT INTO pw_prijs (IDg, IDa, bedrijf, prijs, datum) VALUES ('91', '', '12', '2383', '')
INSERT INTO pw_prijs (IDg, IDa, bedrijf, prijs, datum) VALUES ('91', '', '12', '', '')
INSERT INTO pw_prijs (IDg, IDa, bedrijf, prijs, datum) VALUES ('91', '', '12', '', '')
INSERT INTO pw_prijs (IDg, IDa, bedrijf, prijs, datum) VALUES ('91', '', '12', '', '')
INSERT INTO pw_prijs (IDg, IDa, bedrijf, prijs, datum) VALUES ('91', '', '12', '', '')
INSERT INTO pw_prijs (IDg, IDa, bedrijf, prijs, datum) VALUES ('91', '', '12', '', '')
INSERT INTO pw_prijs (IDg, IDa, bedrijf, prijs, datum) VALUES ('91', '', '12', '', '')
INSERT INTO pw_prijs (IDg, IDa, bedrijf, prijs, datum) VALUES ('91', '', '12', '', '')
INSERT INTO pw_prijs (IDg, IDa, bedrijf, prijs, datum) VALUES ('91', '', '12', '', '')done

Klopt dus niet echt hè? Hoe krijg ik dit goed? Het stopt hier helaas bij mij :(. Ik wil graag weten hoe ik het nu verder kan afmaken zodat het werkt.

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

waarom dit?

$temp = $IDa[$i];
$temp2 = $prijs[$i];

lijkt me niet echt nodig

en bekijk anders je $HTTP_POST_VARS eens (of get)

Doet iets met Cloud (MS/IBM)


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op vrijdag 02 november 2001 21:22 schreef dombie-dom het volgende:
Ik heb hier al eens een topic over gehad. Maar de topic naam klopte niet bij het probleem dat ik nu heb......
Probleem is nog steeds hetzelfde als de bij de vorige thread, Niet mijn hint gelezen daar. Dus hoef ik het hier ook niet weer te doen, want dan lees je er ook weer overheen, dus wil jij niet geholpen worden door mij.

Goeden avond.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op zaterdag 03 november 2001 01:30 schreef dusty het volgende:

[..]

Probleem is nog steeds hetzelfde als de bij de vorige thread, Niet mijn hint gelezen daar. Dus hoef ik het hier ook niet weer te doen, want dan lees je er ook weer overheen, dus wil jij niet geholpen worden door mij.

Goeden avond.
Probleem is iets anders qua titel. Ik heb gekeken naar jou tip over variable variablen maar ik kwam d'r niet uit, vandaar dat ik het opnieuw post...... (met de hoop op andere ingevingen)

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Vervang
PHP:
1
2
3
<?
echo "<input type=\"hidden\" name=IDa[$i] value=\"$record2[IDa]\">";
?>

door
PHP:
1
2
3
<?
echo "<input type=\"hidden\" name=IDa[$i] value=\"$record2['IDa']\">";
?>

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

de array wordt niet goed meegegeven naar de volgende pagina. Je zou kunnen overwegen om geen array mee te geven maar een andere vorm gebruiken bijvoorbeeld variabele variabelen.
dit zei dusty in je vorige topic

en als je nu mijn opmerking eens bekijkt
Op vrijdag 02 november 2001 21:28 schreef D2k het volgende:
..
bekijk anders je $HTTP_POST_VARS eens (of get)
kan je dan deze 2 niet ff als 1 geheel zien en kom eens met wat info

laat je code gewoon ff helemaal weg
post gewoon die waardes eens naar een file waar alleen maar
PHP:
1
2
3
4
5
<?
echo "<pre>";
print_r($HTTP_POST_VARS); //of GET ligt aan je form
echo "</pre>";
?>

dan zie je vanzelf of de waardes die je meekrijgt goed zijn

en dit is het laatste wat ik er over zeg hoor :)

Doet iets met Cloud (MS/IBM)


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
oké, jullie zijn schatten :D maar dat wisten jullie al....

Oké ik heb nu ontdekt (door $http_post_vars) dat de fout in mijn invoer script zit.......

En wel in dit stukje (ik heb mijn code wat opgefrist en verbeterd)
PHP:
1
2
3
4
5
6
7
8
9
<?
    for ($i =0;$i < $Paginas;$i++)
        {
            while($record = mysql_fetch_array($resultaat)) 
            {
            echo "<TR><TD><input type=\"hidden\" name=IDa[$i] value=$record[IDa]>- $record[maat] $record[abo]</TD><TD><input type=\"text\" name=\"prijs[$i]\"></TR>";
            }
        }
?>

Wat nu het probleem alleen is.
Hij zend alleen de 1e door en niet de volgende. Dit krijg ik uit m'n $HTTP_POST_VARS:
code:
1
2
3
4
5
6
7
8
9
    [IDa] => Array
      (
        [0] => 99
      )

    [prijs] => Array
      (
        [0] => 634
      )

Nu ben ik dus een beetje gaan gochelen met die volgordes.

Maar daar schoot ik dus niet echt mee op :(.....

heeft iemand misschien een klein tipje hoe ik verder kom? (ik heb wéér wat geleerd, nu moet ik het compleet maken)

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

de tip van dusty pakken :)

Doet iets met Cloud (MS/IBM)


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

vraag ik me alleen nog af waarom er wel value="blabla" wordt gedaan maar opeens bij de name de "=tjes niet worden gebruikt. Maar dat zal allemaal wel aan mij liggen.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op zaterdag 03 november 2001 18:52 schreef dusty het volgende:
vraag ik me alleen nog af waarom er wel value="blabla" wordt gedaan maar opeens bij de name de "=tjes niet worden gebruikt. Maar dat zal allemaal wel aan mij liggen.
oké om alles effies hetzelfde te doen:
PHP:
1
2
3
<?
            echo "<TR><TD><input type=\"hidden\" name=\"IDa[$i]\" value=\"$record[IDa]\">- $record[maat] $record[abo]</TD><TD><input type=\"text\" name=\"prijs[$i]\"></TR>";
?>

En ik heb met D2k naar m'n totale code gekeken. Maar 'we' komen d'r niet echt uit :( Ik ben nu wat tutorials aan het doorspitten, maar specifieke probleem zit d'r niet echt tussen.

Het omdraai (For - While) werkt ook niet....

De fout zit dus waarschijnlijk in het 'For' stukje......

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Dit klopt toch niet:
PHP:
1
2
3
<?
 name="IDa\"[$i] 
?>

Dat wordt in html iets als name="IDa"1 en dat is toch niet de bedoeling?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Ik was d'r al achter, maar ik had hem hier nog niet gewijzigd

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

[$i] => [".$i."]

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op zaterdag 03 november 2001 20:15 schreef dusty het volgende:
[$i] => [".$i."]
het probleem zit um in die while lus :)
die teller wordt niet opgehoogd in die while
dus daar moet ie ff iets op verzinnen
je krijg nu nl alle maal velden met Ida0 (0= begin van for lus)

Doet iets met Cloud (MS/IBM)


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op zaterdag 03 november 2001 20:20 schreef D2k het volgende:

[..]

het probleem zit um in die while lus :)
die teller wordt niet opgehoogd in die while
dus daar moet ie ff iets op verzinnen
je krijg nu nl alle maal velden met Ida0 (0= begin van for lus)
Die For en die While lus moeten gecombineerd worden, MAAR HOE?

Als je namelijk For => While doet krijgen ze allemaal IDa=0
als je While => For doet, maakt hij per output while een For aan (dus 8 te veel)

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Op zaterdag 03 november 2001 20:15 schreef dusty het volgende:
[$i] => [".$i."]
Dat gaat waarschijnlijk nog beter werken. Om dit soort ellende te voorkomen haal ik zo veel mogelijk buiten de <?php ?> quotes om zo veel mogelijk HTML 'open' te laten. Kan je het later in dreamweaver o.i.d. nog bewerken.
Dus zo:
code:
1
<input type="hidden" name="IDa<?php echo [$i]; ?>" value="<?php echo $record[IDa]; ?>">

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Dit is inderdaad iets minder fouten gevoelig, maar daar zit de fout niet in.

Het probleem is

als ik eerst de 'for' doe en dan de 'while'
'denkt' for dat d'r maar 1'tje is, dusssss => $i=0

als ik eerst de 'while' doe en dan de 'for'
'denkt' for dat ie uit 1 waardes negen IDa's moet maken.(dus krijg ik elke waarde uit de dbase 9x => IDa[1 t/m 9]

(er is namelijk al eerder bepaald (num_rows) hoeveel $i's for moet maken)

allemaal nog te volgen?

Er moet dus een combinatie komen van While en For

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Hmmm, als ik dit lees:
PHP:
1
2
3
4
5
6
7
<?
   while ($record = mysql_fetch_array($resultaat))
                 {
                echo "blabla";
                }
        $record2 = mysql_fetch_array($resultaat);
?>

Dan moet denk ik de pointer van $resultaat toch eerst even teruggezet worden wil er iets zinnigs in $record2 komen.
Zorg er voor dat dat aan het begin van de FOR trouwens ook gebeurt. Wil dat het probleem oplossen? Wat een pointer is?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op zaterdag 03 november 2001 20:40 schreef bigtree het volgende:
Hmmm, als ik dit lees:
PHP:
1
2
3
4
5
6
7
<?
   while ($record = mysql_fetch_array($resultaat))
                 {
                echo "blabla";
                }
        $record2 = mysql_fetch_array($resultaat);
?>

Dan moet denk ik de pointer van $resultaat toch eerst even teruggezet worden wil er iets zinnigs in $record2 komen.
Zorg er voor dat dat aan het begin van de FOR trouwens ook gebeurt. Wil dat het probleem oplossen? Wat een pointer is?
Dat stukkie php code is al oud. (ik heb hem verandert want dit klopte niet helemaal (niet netjes):))

Ik ga dat stukje over pointer wel effies lezen.
dit is mijn code op dit moment:
PHP:
1
2
3
4
5
6
7
8
9
<?
for ($i =0;$i < $Paginas;$i++)  
    {
    while($record = mysql_fetch_array($resultaat))
        {
        echo "<TR><TD><input type=\"text\" name=\"IDa[".$i."]\" value=\"$record[IDa]\">[$i]- $record[maat] $record[abo]</TD><TD><input type=\"text\" name=\"prijs[".$i."]\"></TR>";
        }
    }    
?>

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
niemand die ook maar ietsje raad weet met dit complexe probleem :'(? Het moet dus een combinatie worden van while & for

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Oké ik ben d'r zelf uitgekomen (met jullie hulp tips etc)

Ik hebben alles mooi en duidelijk in een array zien te krijgen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Array
(
    [IDg] => 112
    [bedrijf] => 5
    [Paginas] => 9
    [IDa] => Array
      (
        [0] => 1
        [1] => 2
        [2] => 3
        [3] => 4
        [4] => 5
        [5] => 6
        [6] => 8
        [7] => 9
        [8] => 99
      )

    [prijs] => Array
      (
        [0] => 643
        [1] => 23
        [2] => 1234
        [3] => 134
        [4] => 123
        [5] => 3123123
        [6] => 412
        [7] => 232
        [8] => 43
      )

)

Hoe verwerk ik dit nou? Ik heb wel een paar kleine ideetjes, maar liep op niks uit.......

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Niemand met een tipje? alles moet dus mooi uit de array in de database....... (titel klopt trouwens eigenlijk niet meer) hij geeft wel waardes door alleen verwerkt ze niet

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Oké het is opgelost! tnx allemaal

Invoer:

Als je de while functie gebruik hoef je for niet te gebruiken.

Bij while nummert hij $i automagisch

Bij de verwerking moest ik de sql-queries met een For functie nummeren => $i en zo kwam ik d'r uit

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW

Pagina: 1