[PHP] MySQL insert

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BKJ
  • Registratie: April 2000
  • Laatst online: 18-09 14:52
Ik heb vandaag mijn eerst stappen gezet in de PHP wereld vanweg van snelheidsfrustraties over Perl.

Alleen werkt de volgende code niet (hij insert precies 1 rij terwijl de array uit 500 items bestaat...)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for ($y=1;$y<=$totaal;$y++) {
    
    $score = 0;
    
    for ($r=1;$r<=$totaal;$r++) {
        $distance = levenshtein ($tekst[$y], $tekst[$r]);
        if ($distance < 20) {$score = $score + 1;}
    }

    
    $query = "INSERT INTO temp (tekst, score) VALUES ($tekst[$y],$score)";
    $resultaat = mysql_query($query);

}


Let niet op de baggere stijl....het gaat om het principe ;)

Wat doe ik fout?

[ Voor 3% gewijzigd door BKJ op 14-07-2004 17:09 ]

Kamer huren


Acties:
  • 0 Henk 'm!

  • phYzar
  • Registratie: November 2001
  • Laatst online: 13:33
je doet 1 query, je loopt hem niet, dus voert hij hem maar 1 keer uit

PHP:
1
2
3
4
foreach($tekst => $value)
{
    mysql_query("INSERT INTO temp (tekst, score) VALUES ('$value','$score')");
}

[ Voor 66% gewijzigd door phYzar op 14-07-2004 17:23 . Reden: //beter lezen phYzar ]


Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Bij gebruik van een string in een mysql query moeten er soieso single quotes omheen. Misschien dat het al wat helpt.

PHP:
1
$query = "INSERT INTO temp (tekst, score) VALUES ('".$tekst[$y]."', $score)";


Wat je je verder nog kan afvragen. Is $totaal wel groter dan 1.

Of doe eens:
PHP:
1
echo mysql_error();

Na het uitvoeren van je query.

[ Voor 45% gewijzigd door Brakkie op 14-07-2004 17:20 ]

Systeem | Strava


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Staat error reporting ingesteld op E_ALL?

Acties:
  • 0 Henk 'm!

  • BKJ
  • Registratie: April 2000
  • Laatst online: 18-09 14:52
phYzar schreef op 14 juli 2004 @ 17:12:
je doet 1 query, je loopt hem niet, dus voert hij hem maar 1 keer uit

PHP:
1
2
3
4
foreach($tekst => $value)
{
    mysql_query("INSERT INTO temp (tekst, score) VALUES ('$value','$score')");
}
Hij staat toch in een for lus?
Brakkie schreef op 14 juli 2004 @ 17:12:
Bij gebruik van een string in een mysql query moeten er soieso single quotes omheen. Misschien dat het al wat helpt.

PHP:
1
$query = "INSERT INTO temp (tekst, score) VALUES ('".$tekst[$y]."', $score)";
Nee...helpt niks...

Het blijft raar dat er precies 1 rij ingevoegd wordt...

Kamer huren


Acties:
  • 0 Henk 'm!

  • phYzar
  • Registratie: November 2001
  • Laatst online: 13:33
waar haal je $totaal vandaan?
en moet $y niet bij 0 beginnen? array's beginnen ook bij 0

[ Voor 51% gewijzigd door phYzar op 14-07-2004 17:22 ]


Acties:
  • 0 Henk 'm!

  • BKJ
  • Registratie: April 2000
  • Laatst online: 18-09 14:52
phYzar schreef op 14 juli 2004 @ 17:21:
waar haal je $totaal vandaan?
en moet $y niet bij 0 beginnen? array's beginnen ook bij 0
Als ik nou graag bij 1 wil beginnen :P

$totaal is de lengte van de array


Maar goed, het is al opgelost, ik had per ongeluk een ander veld in de DB, die ik niet ging vullen, op unique gezet...vandaar maar 1 rij... 8)7

thanks

Kamer huren


Acties:
  • 0 Henk 'm!

  • phYzar
  • Registratie: November 2001
  • Laatst online: 13:33
kijk ook eens bij foreach :P

Acties:
  • 0 Henk 'm!

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 29-05 01:29
/offtopic:

hmm, zeker een wiskundige (of een oud pascal user) dat je je array op 1 laat beginnen ;)
Pagina: 1