De onderste code laat alle users met de voornaal jos op de browser zien, maar print op de printer (op de server aangesloten) alleen de eerste user de rest niet.
Heeft iemand een idee? Bij voorbat dank Dimi.
$query = "SELECT * FROM users WHERE name = 'jos'";
$result = mysql_query($query);
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$field1=mysql_result($result,$i,"name");
$field2=mysql_result($result,$i,"lastname");
echo "$field1 $field2<br>";
$datatoprint = "$field1 $field2";
$i++;
}
$handle = printer_open("EPSON");
printer_write($handle, $datatoprint);
printer_set_option($handle, PRINTER_MODE, "raw");
printer_close($handle);
Je geeft volgens mij met de code ook maar 1x de opdracht:
<?php
$i=0;
while ($i < $num) {
$field1 = mysql_result($result,$i,"name");
$field2 = mysql_result($result,$i,"lastname");
// tot hier gaat het goed
// hier echo het resultaat:
echo "$field1 $field2<br />";
// en hier geef je de opdracht om field1 en field2 uit te printen. Maar alleen als de string zelf. Hij pakt dan automatisch het eerste resultaat maar niet alle resultaten omdat er niet in de code wordt weergeven dat er mogelijk meerdere resultaten zijn.
$datatoprint = "$field1 $field2";
$i++;
}
?>
Met dank aan Ariƫn en Frank,
De oplossing voor diegene dat er iets aan hebben is
<?php
// selecteer alle alle nodig velden
$query = "SELECT id, name, lastname FROM users WHERE name = 'jos'";
$result = mysql_query($query);
// eens kijken of de query lukt...
if($result) {
$num=mysql_num_rows($result);
$i=0;
$datatoprint = "";
// waarom moeilijk doen met techniek uit PHP3, mysql_fetch_assoc werkt al vanaf PHP 4, en vervangt een while loopje met num_rows, en mysql_result.
while ($show = mysql_fetch_assoc($result)) {
echo $show['name']." ".$show['lastname']."<br />".PHP_EOL;
$datatoprint .= $show['name']." ".$show['lastname'];
}
// letterlijk de boel uitprinten
$handle = printer_open("EPSON");
printer_write($handle, $datatoprint);
printer_set_option($handle, PRINTER_MODE, "raw");
printer_close($handle);
} else {
echo "Er ging een query mis: ".mysql_error();
}
?>
Groeten Dimi