URL: https://www.overclockers.at/coding-stuff/probs_bei_php_mysql_abfrage_165696/page_1 - zur Vollversion wechseln!
ich hab 2 probs : bei der abfrage sind immer fehler drin, weis net ganz woher.
Die MySQL Query im Code geht sicher, macht auf der Console kein Probleme sondern nur im PHP, vielleicht weis jemand wo der wurm im php code drin ist
2. ist es möglich, das result als text auszugeben, und zwar nicht als tabelle wie im code sondern einfach nur mit kommas dazwischen ( zum C&P export als csv )
Code: PHP<?php include("dbconnect.php"); ?> <html> <head> <meta http-equiv="Content-Language" content="de"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Neue Seite 1</title> </head> <body> <form method="POST" action="search.php"> <br> <br> </p> <table border="0" cellpadding="0" cellspacing="0" width="100%" id="AutoNumber1"> <tr> <td width="15%">SUB 1:</td> <td width="85%"><input type="text" name="sub1" size="20"></td> </tr> <tr> <td width="15%"> </td> <td width="85%"><input type="submit" value="Suche" name="suche"></td> </tr> </table> <p> </p> </form> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%" id="AutoNumber2"> <?php settype($array,"array"); $abfrage = "SELECT si_pvt_dp. * FROM si_pvt_dp LEFT JOIN data_property ON si_pvt_dp.sp_fk_den = data_property.d_nr WHERE ( data_property.d_fk_substance = '$sub1' AND si_pvt_dp.sp_x =1 ) OR ( data_property.d_fk_substance2 = '$sub1' AND si_pvt_dp.sp_x = 0 ) ORDER BY si_pvt_dp.sp_fk_den, sp_sort" or die(mysql_error()); $query = mysql_query($abfrage,$verbindung) or die(mysql_error()); while ($row = mysql_fetch_array($query)) { array_unshift($array,$row['sp_sort']); } $start = count($array); for($start;$start>=0;$start--) { $abfrage = "select * from si_pvt_dp where sp_sort='$array[$start]'" or die(mysql_error()); $query = mysql_query($abfrage,$verbindung) or die(mysql_error()); while ($row = mysql_fetch_object($query)) { $a = "$row->sp_fk_den"; $b = "$row->sp_sort"; $c = "$row->sp_t"; $d = "$row->sp_t_var"; $e = "$row->sp_x"; $f = "$row->sp_x_var"; $g = "$row->sp_p"; $h = "$row->sp_p_var"; $i = "$row->sp_rho"; $j = "$row->sp_rho_var"; $k = "$row->sp_z"; $l = "$row->sp_z_var"; $m = "$row->sp_type"; $n = "$row->sp_weight"; } ?> <tr> <td width="1%"></td> <td width="5%"><?php echo $a; ?></td> <td width="4%"><?php echo $b; ?></td> <td width="5%"><?php echo $c; ?></td> <td width="5%"><?php echo $d; ?></td> <td width="5%"><?php echo $e; ?></td> <td width="5%"><?php echo $f; ?></td> <td width="5%"><?php echo $g; ?></td> <td width="5%"><?php echo $h; ?></td> <td width="10%"><?php echo $i; ?></td> <td width="10%"><?php echo $j; ?></td> <td width="10%"><?php echo $k; ?></td> <td width="10%"><?php echo $l; ?></td> <td width="10%"><?php echo $m; ?></td> <td width="10%"><?php echo $n; ?></td> </tr> <?php unset($a); unset($b); unset($c); unset($d); unset($e); unset($f); unset($g); unset($h); unset($i); unset($j); unset($k); unset($l); unset($m); unset($n); } ?> </body> </html>
dann überleg dir mal nochmal, was du da tust:Zitat von voyagerich hab 2 probs : bei der abfrage sind immer fehler drin, weis net ganz woher.
Die MySQL Query im Code geht sicher, macht auf der Console kein Probleme sondern nur im PHP, vielleicht weis jemand wo der wurm im php code drin ist
du gehst alle datensätze durch und überschreibst dauernd die gleichen variablen - dann hast du eine zweite schleife wo du diese variablen verwendest, die dann eben immer nur den letzten wert haben...Code: PHPwhile ($row = mysql_fetch_object($query)) { $a = "$row->sp_fk_den"; $b = "$row->sp_sort"; $c = "$row->sp_t"; $d = "$row->sp_t_var"; $e = "$row->sp_x"; $f = "$row->sp_x_var"; $g = "$row->sp_p"; $h = "$row->sp_p_var"; $i = "$row->sp_rho"; $j = "$row->sp_rho_var"; $k = "$row->sp_z"; $l = "$row->sp_z_var"; $m = "$row->sp_type"; $n = "$row->sp_weight"; }
klar - lösch einfach das ganze html-zeugs rausZitat
2. ist es möglich, das result als text auszugeben, und zwar nicht als tabelle wie im code sondern einfach nur mit kommas dazwischen ( zum C&P export als csv )
und implode wird dir helfenarrays anyone?

edit: ein table ist hier schon angebracht, aber benutz bitte ein padding beim td, die % führen dich in teufels küche.
du kannst die daten ja
auch direkt in eine csv file schreiben. (fopen,fwrite,fputs,etc...)
und auf diese kannst dann in der html file verlinken (zum download)
mlu
Zitat von maludu kannst die daten ja
auch direkt in eine csv file schreiben. (fopen,fwrite,fputs,etc...)
und auf diese kannst dann in der html file verlinken (zum download)
mlu
Zitat von voyagerhättest du da nen lösungsvorschlag zufällig für mich ?

könntest es nach dem schema machen:
Code: PHP$fwp=fopen("asdf.csv","w"); //Öffnet filehandle $string=""; //Hier werden anschließend die substrings angehängt //SQL ABFAGE while($row=mysql_fetch_array($result)) //Holt einen Eintag nach dem Anderen aus der Tabelle { $substring=implode(",",$row); //Baut die Einträge zu einem String zusammen mit Beistrich getrennt $string.=$substring."\n"; //Hängt die Substrings zusammen mit NewLine } fputs($fwp,$string); fclose($fwp);
ok, thx
hab zwar die meisten fehler "entsorgt" nur jetzt übergibt er die variable nicht mehr in die Query rein 
habs getestet nur drinnen kommt keine variable an, register_globals ist off
Code: PHP<body> <form method="POST" action="search2.php"> <br> <br> </p> <table border="0" cellpadding="0" cellspacing="0" width="100%" id="AutoNumber1"> <tr> <td width="15%">SUB 1:</td> <td width="85%"><input type="text" name="sub" size="20"></td> </tr> <tr> <td width="15%"> </td> <td width="85%"><input type="submit" value="Suche" name="suche"></td> </tr> </table> <p> </p> </form> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%" id="AutoNumber2"> <?php error_reporting(E_ALL); settype($array,"array"); $abfrage = "SELECT si_pvt_dp. * FROM si_pvt_dp LEFT JOIN data_property ON si_pvt_dp.sp_fk_den = data_property.d_nr WHERE ( data_property.d_fk_substance = '$sub' AND si_pvt_dp.sp_x =1 ) OR ( data_property.d_fk_substance2 = '$sub' AND si_pvt_dp.sp_x = 0 ) ORDER BY si_pvt_dp.sp_fk_den, sp_sort"; .....
währ intressant was danach noch kommt?
da fehlt dir jetzt auf jeden fall noch:
Code: PHP$result=mysql_fetch_array($abfrage);
noch nie gesehen ... wozu is das gut?Code: PHPsettype($array,"array");
Code: PHP$array=array();
Zitat von voyagerregister_globals ist off
wobei hier noch das "säubern" der eingabe fehlt, stichwort sql-injectionCode: PHP$sub = $_POST['sub'];
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026