Toon posts:

[mysql] Meerdere velden in database loop.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,
Ik heb weer een vraag. Ik wil een script waar ik 3 velden (of meer) heb waar ik iets in kan vullen en deze in 1 x in de database kan zetten. Elke veld op nieuwe regel. Ik heb het volgende script gemaakt:
PHP:
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
echo"<form action='test.php?stem=ja' method=post name='form'>
Uw naam:<input type=text value='$veld1' name='veld1' size=30><br>
Uw naam:<input type=text value='$veld2' name='veld2' size=30><br>
Uw naam:<input type=text value='$veld3' name='veld3' size=30><br>
<input type=submit name=submit value=Toevoegen><input type=reset name=Reset value=Legen></form>";

if($stem=="ja"){

function add($waarde) {

    
$insert = "INSERT INTO test (id, plaatje)
VALUES ('','$waarde')";
$query = mysql_query($insert)or die(mysql_error());
    
    
}
if(trim($_POST['veld1']) != 0) {
add($_POST['veld1']);
}
if(trim($_POST['veld2']) != 0) {
add($_POST['veld2']);
}
if(trim($_POST['veld3']) != 0) {
add($_POST['veld3']);
}
else {
    print("Geen waarde ingevoegd!");
}
}


Nu werkt dit wel goed met getallen. Alleen zodra ik teksten ga gebruiken werkt die niet. Weet iemand wat ik fout doe?

Verwijderd

Never mind... :X

Edit; Probeer eens: if(strlen(trim($_POST["veld1"])) > 0)

[ Voor 171% gewijzigd door Verwijderd op 13-09-2003 18:56 ]


  • Rickbv
  • Registratie: September 2000
  • Laatst online: 21-08 14:00
-Waarom gebruik je $_GET/POST['key'] en $var door elkaar? ($stem/$veld1 enz)
-Je zegt dat een getal wel goed ingevoegd wordt, maar een string niet. En die waarde wil je in je 'plaatje'-kolom in SQL hebben? Wat is het Datatype van die kolom dan?
-Waarom laat je {er van uitgaande dat je al je $_POST vars in de db wilt hebben} de function Add() niet gewoon een loopje maken, zodat je niet 10x dezelfde functie aanroept? Dus zoiets:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
function add($waarden_array) {
   foreach($waarden_array as $waarde) {
      // ff trimmen en checken, daarna met query invoegen in SQL
      $waarde = addslashes(trim($waarde))
      $insert = "INSERT INTO test (id, plaatje) 
                       VALUES ('','$waarde')"; 
      $query = mysql_query($insert)or die(mysql_error()); 
   }

}
// Aanroepen
add($_POST);

-Wees in HTML een beetje consequent(ik zie nu enkele quotes, dubbele quotes en geen quotes door elkaar)

Overigens, waarom strings ('teksten') niet goed gaan:
This function returns a string with whitespace stripped from the beginning and end of str. Without the second parameter, trim() will strip these characters:
Kortom, wat jij nu doet komt op het zelfde neer als:
PHP:
1
2
if ('ik ben een stringetje' > 0) {}
if (100 > 0) {}

Het eerste geval (de tekst) gaat niet goed, de 2e (een getal) wel. Kortom: gebruik de oplossing van [C]

[ Voor 46% gewijzigd door Rickbv op 13-09-2003 19:15 ]


Verwijderd

Topicstarter
Bedankt nu kan ik inderdaad letters toevoegen.
Harstike bedankt dus!
Verwijderd schreef op 13 September 2003 @ 18:54:
Never mind... :X

Edit; Probeer eens: if(strlen(trim($_POST["veld1"])) > 0)