foutieve waarden na uitvoeren mysql query met php array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ivar de Jong

Ivar de Jong

25/03/2013 20:45:59
Quote Anchor link
Hallo,

Ik heb een scriptje geschreven dat meerdere rijen met waarden tegelijkertijd insert in een mysql database.

De insert werkt volledig alleen de waarden die uiteindelijk ingevoerd worden in de DBase zijn niet de waarden die zijn ingevoerd in de input velden.

dit is mijn php:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

/* if($_SERVER['REQUEST_METHOD'] == 'POST')
{ */

    for($i=0; $i<count($_POST['nummer']); $i++)
    if(!empty($_POST['nummer'][$i]) && !empty($_POST['omschrijving'][$i]))
    {

        echo"u heeft waarden ingevuld namelijk:<br>";
        echo"<table cols='2'>";
        echo "<tr><th>nummer</th><th>Omschrijving</th></tr>";
        echo "<tr><td>".$_POST['nummer'][$i]."<td/><td>".$_POST['omschrijving'][$i]."</td></tr>";
        echo "</table>";
        
        if(mysql_query("INSERT INTO taak (nummer, omschrijving) VALUES ('$_POST[nummer][$i]', '$_POST[omschrijving][$i]')")){
        
        echo "query succesvol uitgevoerd";    
        
        }

        
        else{
            echo"query is mislukt vanwege de volgende fout: ".mysql_error();
            };
    }


    else{
        echo"De invoervelden zijn leeg.";
    
    }

?>


het probleem is dat na de query in de database de waarden "0" voor nummer en "Array[0], Array[1]"etc. voor omschrijving staan. Ik ben zover dat ik weet dat deze waarden moeten worden omgezet naar input waarden maar ik weet niet wat ik daarvoor moet toevoegen aan de variabelen in mijn query.

Kan iemand mij op weg helpen?

bvd.
Gewijzigd op 25/03/2013 20:46:29 door Ivar de Jong
 
PHP hulp

PHP hulp

11/08/2020 05:08:16
 
Mebus  Hackintosh

Mebus Hackintosh

25/03/2013 21:00:13
Quote Anchor link
Als het veld 'nummer' integer is krijgt ie het erg moeilijk als je er strings in wilt gaan gooien.. Haal de enkele quote's eens weg uit je query rond $_POST['nummer'].. En het is $_POST['nummer'].

edit: In jou geval $_POST["nummer"]

edit: Query zal wel goed zijn op het nalaten van de quote's in je $_POST veld.. De enkele quote's kan je gewoon laten staan ;-) $_POST["nummer"]
Gewijzigd op 25/03/2013 21:03:44 door Mebus Hackintosh
 
Ivar de Jong

Ivar de Jong

25/03/2013 21:08:39
Quote Anchor link
Nummer is een INT ja, maar die dubbele quotes gaat niet goed want daarmee geef je aan dat de query daar eindigt.

De enkele quotes geven de complete waarde aan namelijk '$_POST[nummer][$i]' en niet $_POST[nummer]. De [$i] valt dan buiten de waarde wat resulteert in een mysql syntax error.

de werkelijke waarde van de post variabele is 'variabelenaam[1]', en niet 'variabelenaam'[1].

EDIT: Sorry ik zit scheef te lezen...je hebt gelijk ik moet die variabelen uit de string halen. dus "".$_POST['nummer']." ...neem aan dat je dat bedoelt

Toevoeging op 25/03/2013 21:23:39:

Gefixt met deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? php if(mysql_query("INSERT INTO taak (nummer, omschrijving) VALUES ('".$_POST['nummer'][$i]."', '".$_POST['omschrijving'][$i]."')")){  ?>
Gewijzigd op 25/03/2013 21:25:24 door Ivar de Jong
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.