Bepaalde colom selecteren uit de databae
Ik ben bezig met een script die een fixed length bestand moet maken.
Nu is het de bedoeling dat er een ; gescheiden bestand wordt geupload en als dat gebeurd is zoekt het script uit de omschrijving of bepaalde colommen bestaan.
Alleen ik kan wel kijken of er een colom bestaat met die naam of iets wat er op lijkt ik gebruik dit script:
Dat werkt alleen nu moet het anders om dat moet als volgt:
Er moet een colom uit de database gehaald worden en die moet dan matchen gedeeltelijk of helemaal met de omschrijving uit het .csv bestand.
Alleen hoe doe ik dat? Ik kan het niet vinden
Groeten,
Sjaakmans
select kolomnaam where like etc ? basis slq
Nouw, het moet net andersom :D dat gaat wel maar andersom gaat niet :(
Andersom?
Ja, ik lees nu het .csv bestand uit en vergelijk het dan met de database maar het moet colommen uit de database vergelijken met het .csv bestand
wat is het verschil tussen dat? zelfde als 5x7 een andere uitkomt zou hebben dan 7x5 (wat niet zo is voor de mensen die teveel spijbelen)
In het cvs staat de inschrijving zeg maar reactiedatum
In de database staat datum datum en reactiedatum matched niet.
Maar reactiedatum en datum matched weer wel.
En dat moet zo eerst de ene check werkt het niet dan de andere alleen hoe doe ik de andere
hoe kan reactiedatum en datum niet matchen, maar datum en reactiedatum wel...
Maar als het andersom minder letters heeft maar wel in de zelfde volgorde dan werkt het wel
ben ik echt de enige die hier compleet clueless is wat sjaakmans bedoeld :) ik zie het niet sorry, verschil tussen appel + peer en peer + appel zie ik nie
Waarom gebruik je backticks? Gebruik ze liever niet!
Wes:
Het is voor mij simpel normaal selecteer je een woord uit de database met een like als je het niet precies weet of als het ergens tussen staat.
Maar nu moet het andersom want als je een like op de database doet naar reactiedatum en datum staat er wel in werkt het niet. En andersom zou het wel moeten werken
edit:
Dus datatypes van de velden die je probeert te matchen
Gewijzigd op 15/03/2006 15:22:00 door Barman V
En in de database Datum
Dit is niet het enige! Er zijn er meer zo! Dit is maar een voorbeeld!
Misschien heb je hier wat aan:
http://dev.mysql.com/doc/refman/5.1/en/show-columns.html
http://www.mysql.com/search/?q=SHOW+FIELDS&charset=utf-8
Gewijzigd op 15/03/2006 15:27:00 door Han eev
SHOW FIELDS is a synonym for SHOW COLUMNS Staat onderaan ;)
Code (php)
1
2
3
4
2
3
4
<?PHP
$query = "SHOW COLUMNS FROM SL_HART_in FROM db_name LIKE '".$woord."'";
// dus nu als ze precies hetzelfde zijn
?>
$query = "SHOW COLUMNS FROM SL_HART_in FROM db_name LIKE '".$woord."'";
// dus nu als ze precies hetzelfde zijn
?>
Gewijzigd op 15/03/2006 15:40:00 door Han eev
Jep klopt maar dat is eingelijk niet het antwoord op mn vraag
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?PHP
$file = file('bestand.csv');
foreach($file as $in) {
$arr = explode(",",$in);
$query = mysql_query("SHOW COLUMNS FROM SL_HART_in FROM db_name LIKE '".$arr[1]."'");
if(mysql_num_rows($query) == 1) {
echo "match";
}
}
// zoiets?
?>
$file = file('bestand.csv');
foreach($file as $in) {
$arr = explode(",",$in);
$query = mysql_query("SHOW COLUMNS FROM SL_HART_in FROM db_name LIKE '".$arr[1]."'");
if(mysql_num_rows($query) == 1) {
echo "match";
}
}
// zoiets?
?>
Ik denk dat ik een foreach ga gebruiken dat werkt redelijk alleen nu moet ik nog hebben als een gedeelte van het woord mached hoe maak ik dat?
Code (php)
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
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
<?php
include("config.php");
$woord = explode(" ", $woord);
$woord = str_replace(" ", "", trim($woord[0]));
$query = "SHOW FIELDS FROM `SL_HART_in` LIKE '%".$woord."%'";
$result = mysql_query($query,$db)or die($query."<br>".mysql_error($db));
while($rows = mysql_fetch_row($result))
{
similar_text($rows['0'], $woord, $ronde_1);
if(strtolower($rows['0']) != strtolower($woord) AND round(100 - $ronde_1) >= 10)
{
$match = "Ik heb een tabel gevonden die matched maar wel anders is! Moet deze gebruikt worden?
<br>Tabel gezocht: ".$woord."\t <br>Tabel gevonden ".$rows['0']."<p>";
}
else
{$i=0;
$query = "SHOW FIELDS FROM `SL_HART_in`";
$result = mysql_query($query,$db)or die($query."<br>".mysql_error($db));
while($rows_2 = mysql_fetch_row($result))
{
foreach($rows_2 as $key => $value)
{
if(strpos(strtolower($value), strtolower($woord)) !== FALSE)
{
echo $woord."Zit erin";
}
}
}
}
}?>
include("config.php");
$woord = explode(" ", $woord);
$woord = str_replace(" ", "", trim($woord[0]));
$query = "SHOW FIELDS FROM `SL_HART_in` LIKE '%".$woord."%'";
$result = mysql_query($query,$db)or die($query."<br>".mysql_error($db));
while($rows = mysql_fetch_row($result))
{
similar_text($rows['0'], $woord, $ronde_1);
if(strtolower($rows['0']) != strtolower($woord) AND round(100 - $ronde_1) >= 10)
{
$match = "Ik heb een tabel gevonden die matched maar wel anders is! Moet deze gebruikt worden?
<br>Tabel gezocht: ".$woord."\t <br>Tabel gevonden ".$rows['0']."<p>";
}
else
{$i=0;
$query = "SHOW FIELDS FROM `SL_HART_in`";
$result = mysql_query($query,$db)or die($query."<br>".mysql_error($db));
while($rows_2 = mysql_fetch_row($result))
{
foreach($rows_2 as $key => $value)
{
if(strpos(strtolower($value), strtolower($woord)) !== FALSE)
{
echo $woord."Zit erin";
}
}
}
}
}?>