Het haalt zowel de associatieve array op als de nummerieke. Je moet even specificeren welke wordt weergegevenquote:Op donderdag 27 maart 2008 18:54 schreef qu63 het volgende:
Ik snap er nog minder van nu
sql-query:
[ code verwijderd ]
Er staan 4 rijen in mn tabel, maar de enige output is dit:
[ code verwijderd ]
Wat gaat er nou allemaal fout hier
1 2 3 4 5 6 7 8 9 10 | $q = "SELECT * FROM meldingen"; $res=mysql_query($q); $i=0; while($berichten = mysql_fetch_array($res)) { print $berichten[$i]; $i++; } ?> |
Dan nog krijg ik maar 1 rij te zien.quote:Op donderdag 27 maart 2008 19:08 schreef beerten het volgende:
[..]
Het haalt zowel de associatieve array op als de nummerieke. Je moet even specificeren welke wordt weergegeven
[ code verwijderd ]
Zo zou het wel moeten werken.
quote:Op donderdag 27 maart 2008 19:22 schreef beerten het volgende:
Hoe ziet je tabel er uit en wat wil je ophalen? Welke gegevens wil je?
Je haalt nu ALLES op, alle rijen, alle velden en kolommen. 2 keer zelfs zo te zien.
1 2 3 4 5 | 1 1 2 Titel Ongelezen Ongelezen 1206710100 1 2 2 1 Titel Gelezen Gelezen 1206710100 1 3 1 2 Titel Gelezen Gelezen 1206621950 1 4 2 1 Titel Ongelezen Ongelezen 1206621950 0 |
ook metquote:Op donderdag 27 maart 2008 20:07 schreef DionysuZ het volgende:
Natuurlijk krijg je maar 1 rij terug. Om meerdere rijen terug te krijgen moet je, zoals hierboven ergens ook staat, er een while loopje van maken.
Nee, je krijgt het nulde element van rij 0, het eerste element van rij 1, het tweede element van rij 2, etc.quote:Op donderdag 27 maart 2008 20:11 schreef qu63 het volgende:
[..]
ook met
<?php
$q = "SELECT * FROM meldingen";
$res=mysql_query($q);
$i=0;
while($berichten = mysql_fetch_array($res))
{
print $berichten[$i];
$i++;
}
?>
krijg ik maar 1 rij
1 2 3 4 5 6 7 8 9 10 11 12 | $q = "SELECT * FROM meldingen"; $res=mysql_query($q); $berichten = array(); while($row = mysql_fetch_array($res)) { $berichten[] = $row; } echo '<pre>'; var_dump($berichten); echo '</pre>'; ?> |
1 2 3 4 5 6 7 8 | $q = "SELECT * FROM meldingen"; $stm = $pdo->prepare($q); $berichten = $stm->fetchAll(PDO::FETCH_ASSOC); echo '<pre>'; var_dump($berichten); echo '</pre>'; ?> |
preciesquote:Op donderdag 27 maart 2008 21:31 schreef ursel het volgende:
[..]
Eindelijk iemand ontopic..
Denk alleen dat qu63 er weinig aan heeft...
1 2 3 4 5 6 7 8 9 | description => "Description", sql => qq{ SELECT * FROM table WHERE key = value -- insert more sql code here }, # end of qq }, # end of name_of_query ); |
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 | my $sql = shift; print STDERR $sql . "\n"; # Some queries return undef # warnings are noise in that case no warnings; foreach ($oracle->do_query($sql)) { print join (",", @$_) . "\n"; } use warnings; } sub do_query { my $query_id = shift; if (exists $queries{$query_id}) { printf STDERR "/* %s */\n", $queries{$query_id}->{description} if defined $queries{$query_id}->{description}; my $sql = $queries{$query_id}->{sql}; if ($opt{limit}) { $sql = join("\n", $sql, sprintf($limit_query, $opt{limit})); } if ($opt{order}) { $sql = join("\n", $sql, $order_query); } sql2csv($sql); } else { printf STDERR "Query for %s does not exists!\n", $query_id; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | exe=./datacheck total="^total_" do_query() { local i for i in $* ; do file=../out/RESULTS.$i $exe --query $i > $file 2>../out/QUERY.$i ; wc -l $file done } do_query $($exe --list | grep $total) $($exe --list | grep -v $total) |
Maakt verder niet uit of je MySQL of Oracle gebruikt. Mijn queries zijn ook onder MySQL te gebruiken. Ik gebruik de PDO variant van Perl, dussuh.. :)quote:Op vrijdag 28 maart 2008 15:11 schreef ursel het volgende:
We werken hier in ieder geval met MySQL.
Weet niet of dat verder consequenties heeft.
Daarnaast, die Perl functie, dat zou betekenen dat ik beide al in een array zal moeten hebben. Weet niet of dat zo tactisch is.. :{
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | my $comp= Array::Compare->new(); open(FH, $csvfile); while(<FH>) { chomp(); # Remove the new line @array_csv = split(/,/, $_); # Do stuff met array_csv to create the SQL code $sql = sprintf "SELECT * FROM example WHERE example_name = '%s'", $array_csv[1]; # ervanuitgaand dat do_query een array returned @array_db = do_query($sql); # Compare werkt met een reference naar een array. if ($comp->compare(\@array_csv, \@array_db)) { # compare is OK } else { # Compare failed } } |
Je kunt met PostgreSQL toch zeker wel geparameteriseerde query's uitvoeren zonder de hele performance om zeep te helpen?quote:Op vrijdag 28 maart 2008 12:50 schreef JeRa het volgende:
Om maar even ontopic te zijn: PDO is leuk en aardig, maar besef dat je in sommige RDBMS'en die partiele indices ondersteunen geen gebruik kunt maken van die indices zodra je prepared statements gebruikt. Voorbeeldje hiervan is PostgreSQL, die het matchen van de indices al tijdens het preparen van de query doet. Door het ontbreken van je condities (je vult ze namelijk pas later in met Statement->bindValue() of ->bindParam()) is het namelijk onmogelijk om te voorspellen wat je query gaat doen.
Dus mijn idee van good practice in deze situatie: prepared statements gebruiken voor situaties waarbij je eenzelfde soort query heel vaak moet uitvoeren of wanneer je niet geavanceerd gebruik maakt van je database, en anders op de 'oude' manier samenstellen en PDO->quote() gebruiken
Oh en hoi.
Dat kan ook wel ja, maar dus niet met partiële indices vanwege de reden die ik noemde. Het is een leuke pitfall in ieder gevalquote:Op zaterdag 29 maart 2008 20:57 schreef SuperRembo het volgende:
[..]
Je kunt met PostgreSQL toch zeker wel geparameteriseerde query's uitvoeren zonder de hele performance om zeep te helpen?
In dat geval lijkt het me good practice om altijd geparameteriseerde query's te gebruiken, tenzij performance een een speciale aanpak vereist.quote:Op zaterdag 29 maart 2008 21:10 schreef JeRa het volgende:
[..]
Dat kan ook wel ja, maar dus niet met partiële indices vanwege de reden die ik noemde. Het is een leuke pitfall in ieder gevalmet MySQL kan ik geen vergelijking geven aangezien die geen partiële indices ként.
Klopt, dat zeg ik (op een beetje vage manier) ookquote:Op zaterdag 29 maart 2008 22:19 schreef SuperRembo het volgende:
[..]
In dat geval lijkt het me good practice om altijd geparameteriseerde query's te gebruiken, tenzij performance een een speciale aanpak vereist.
Dat soort informatie laten ze dus los? Dus in feite weet 9292ov waar ik woon?quote:Op maandag 31 maart 2008 00:00 schreef Geqxon het volgende:
Degene die hier laatst vroeg hoe 9292ov.nl wist waar jij bent (het "Routebestemming vanaf hier" knopje).... dat schijnt dus een samenwerking tussen de telecomproviders en 9292ov.nl te zijn.
dat was ik!quote:Op maandag 31 maart 2008 00:00 schreef Geqxon het volgende:
Degene die hier laatst vroeg hoe 9292ov.nl wist waar jij bent (het "Routebestemming vanaf hier" knopje).... dat schijnt dus een samenwerking tussen de telecomproviders en 9292ov.nl te zijn.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |