Hallo iedereen,

Ik heb een klein vraagje,

Ik ben een zoek functie aan het maken maar ben op het volgende probleem gestuit,

Dit is hoe de database er uit ziet,

User_name varchar(12)
User_data varchar(20)
User_discription varchar(400)
data_id Int(5) auto_increment
share Int(1)


Men kan zoeken op User_name, User_data, User_discription. De uitkomsten van de zoek functie worden keurig in een tabel gezet en er word een link aangemaakt naar de betreffende pagina gebaseerd op data_id. En daar gaat het fout, int kan niet gebruikt worden in een FULLTEKST SQL en kan ik dus niet selecteren een link aan maken lukt vervolgens dus ook niet. ik gebruik het volgende script(Béta script).


<?php

if($_SERVER['REQUEST_METHOD']=="POST"){

 
//Checken of er iets in de database zit.
$tabelQuery = "SELECT user_discription, user_data, user_name FROM users ORDER BY user_discription ASC";
$tabelResult = mysql_query($tabelQuery) or die (mysql_error());
 
if (mysql_num_rows($tabelResult) == "0"){
             
              echo"<center><b>Nothing found!</b></center>";
 
 
}else{

$tabelQuery = "SELECT user_discription, user_data, user_name FROM users where match(user_discription) against ('" .mysql_real_escape_string($_POST['zoekterm']). "') AND share = '1' ORDER BY user_discription ASC" or die (mysql_error());
$tabelResult = mysql_query($tabelQuery) or die (mysql_error());

 
echo'<ul>
<TABLE BORDER=0 WIDTH=90% ALIGN=CENTER>
  <TR BGCOLOR="#666666" ALIGN=CENTER>
    <TD><FONT COLOR="#FFFFFF"><B>Name</B></TD>
    <TD><FONT COLOR="#FFFFFF"><B>User Data</B></TD>
  </TR>';


  while($row = mysql_fetch_array($tabelResult)){
	  
    echo'<TR BGCOLOR="#CCCCCC" ALIGN=LEFT>
  <TD><B>'. $row['user_name'] .'</B> </TD>
  <TD><B><a href="share.php?id='. $row['data_id'] .'">'. $row['user_data'] .'</a></B></TD>
  </TR>';
  }
  }
 {
}

}

echo'</TABLE></ul>';

?>



Zoals jullie zien roep ik selecteer ik data_id niet, omdat het niet kan natuurlijk. Helaas kan ik niet op basis van de andere gegevens (user_discription, user_data, user_name) de kolom data_id nog een keer opnieuw selecteren, dat komt omdat bij meerdere rows deze waarde het zelfde kunnen zijn. Dus hoe kom ik dan aan het goede data_id bij de betreffende zoek opdracht?

de kolom share kan ik wel gebruiken in een where functie terwijl die int is, ik dacht kan ik dan niet 2 keer selecteren? iets in deze richting?

SELECT user_discription, user_data, user_name FROM users where match(user_discription) against ('" .mysql_real_escape_string($_POST['zoekterm']). "') AND share = '1' ORDER BY user_discription ASC SELECT data_id FROM users


het is dus de bedoeling dat als een kolom door de zoek functie komt, ook data_id netjes mee gesorteerd word.




dus niet dit:



MYSQL tabel:
user_name | user_discription | user_data | data_id | share
----------------------------------------------------------
test | een beschrijving | data123 | 1 | 1
admin | admin beschrijving | 123data | 2 | 1



en dat er word gezocht op: beschrijving

en dat deze html tabel ontstaat

naam userdata [link]
-------------------------------------------
test data123 share.php?id=2
admin 123data share.php?id=1



de data_id's zijn dus omgedraaid (dit gebeurt natuurlijk niet in dit script maar even als voorbeeld)


Kan iemand mij helpen?


Rolf

Reageren