12. november 2005 - 14:15Der er
54 kommentarer og 1 løsning
Gemme i mysql dele af linje
Hejsa jeg har følgende:
[BbZzz]shockerpimp (#403506) 25 380 m² $479 962
Den skal så gemme alt det id der står mellem (# og ) i en der hedder id og i samme række skal den gemme det tal der står mellem ) og m² i et felt der hedder storrelse og den sidste skal den gemme i vardi.
Bagefter kommer der en ny "spiller"
[BbZzz]shockerpimp2 (#403502) 19 380 m² $412 962
Så der skal laves en while eller noget andet så den går alle igennem håber der er en som kan hjælpe.
Hvad med noget i denne stil: $fil = "minfil.txt"; $indhold = file($fil); foreach($indhold as $line) { if (preg_match('/\\(#(\\d+?)\\)\\s([\\d\\s]+?)\\sm²\\s(.+)/', $line, $regs)) { $query = mysql_query("INSERT INTO tabel(id,storrelse,vardi) VALUES($match[1],'$match[2]','$match[3]'"); } }
Smed lige en error på den mysql query og følgende error kommer. You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''',''' at line 1
Scriptet ser sådan her ud: <?php include ("connect.php"); $fil = "minfil.txt"; $indhold = file($fil); foreach($indhold as $line) { if (preg_match('/\\(#(\\d+?)\\)\\s([\\d\\s]+?)\\sm²\\s(.+)/', $line, $regs)) { $query = mysql_query("INSERT INTO house(id,storrelse,vardi) VALUES($match[1],'$match[2]','$match[3]'") or die(mysql_error()); } } ?>
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''id','storrelse','vardi') VALUES(,'',''' at line 1
Når jeg har fundet ud af det og den inserter samme antal rækker som der er i den txt fil. MEN alle er lig med 0 så den tager ikke de rigtige værdier
Det her er den mysql string nu. $inserting = "INSERT INTO tabel(id, storrelse, vardi) VALUES('$match[1]','$match[2]','$match[3]')"; mysql_query($inserting) or die(mysql_error());
det hjalp ikke, jeg er ikke sikker på de indeholder noget da der ikke bliver vist noget, hvis jeg fx laver en print "$match[1]";
Hele mit script ser sådan her ud: <?php include ("connect.php"); $fil = "minfil.txt"; $indhold = file($fil); foreach($indhold as $line) { if (preg_match('/\\(#(\\d+?)\\)\\s([\\d\\s]+?)\\sm²\\s(.+)/', $line, $regs)) { $inserting = "INSERT INTO tabel(id, storrelse, vardi) VALUES('".$match[1]."','".$match[2]."','".$match[3]."')"; mysql_query($inserting) or die(mysql_error()); print "$match[1]"; } } ?>
Fuck... $match skal rettes til: $regs Så linien: $inserting = "INSERT INTO tabel(id, storrelse, vardi) VALUES('".$match[1]."','".$match[2]."','".$match[3]."')"; mysql_query($inserting) or die(mysql_error());
Skal være: $inserting = "INSERT INTO tabel(id, storrelse, vardi) VALUES('".$regs[1]."','".$regs[2]."','".$regs[3]."')"; mysql_query($inserting) or die(mysql_error());
Okay det hjalp den sætter id rigtigt ind men der er stadig lidt problemer med de 2 andre: I storrelse: 34 150 m² bliver der kun indsat 34 hvor det skulle være 34150 og i vardi bliver 0 indsat.
Sry skulle lige have noget at spise. det ville være fedt hvis den kunne samle de 34150 og fjerne og samle 459954, men ellers bare så fjerne det forreste tegn
Det virker med txt dokumentet men ikke med post jeg forstår det ikke :/
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.