Page 1 sur 1

requête sql avec subtr

Posté : 05 mai 2009, 23:16
par hannao
salut tous le monde,

Je viens vers vous car j'ai une requête qui commence à me bloquer :
voilà d'abord la requete qui marche
<?php
mysql_connect("localhost","root",""); // declaration de la connexion
mysql_select_db("interieu");
$ligne = 0;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 0, chr(9),'"')) !== FALSE) {
$ligne++;
$num = count($data);

for ($c=0; $c < $num; $c++) {
echo $data[$c].'<br />';
$var1 = substr($data[2], 0, 20);
}
$query = "INSERT INTO jos_content (id, title, alias, title_alias,introtext, modified, created_by) VALUES (" . $data[0] . ",'" .$data[1] . "','" .$data[1]."','" . $data[1] . "','".$var1."',now(),62)";
maintenant je veux ajouter une dans la base dans un champs fulltext l'ensemble du text qui correspond à$data[2]
<?php
mysql_connect("localhost","root",""); // declaration de la connexion
mysql_select_db("interieu");
$ligne = 0;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 0, chr(9),'"')) !== FALSE) {
$ligne++;
$num = count($data);

for ($c=0; $c < $num; $c++) {
//echo 'Col ['.$ligne.', '.$c.'] = '.$data[$c].'<br />';
echo $data[$c].'<br />';
//$var2 = $data[2];
$var1 = substr($data[2], 0, 20);

}
$query = "INSERT INTO jos_content (id, title, alias, title_alias, introtext, fulltext) VALUES ('" . $data[0] . "', '".$data[1]."','".$data[1]."','".$data[1]."','".$var1."','".$data[2]."')";
mysql_query($query);
echo $query.'<br />';
}

?>
voilà dès que je rajoute la variable $data[2], il n'y a plus d'insertion qui s'effectue dans la base.
Je me posais la question qui est vu que j'utilise une partie de $data[2] avant d'utiliser $data[2] cela bloque. J'ai essyé d'inverser mais rien ne marche.

j'ai mis un echo pour voir le resutat de la requête qui semble bon
INSERT INTO jos_content (id, title, alias, title_alias, introtext, fulltext) VALUES ('2', 'ruse de ','ruse de ','ruse de ','coyotte qui hurle le','coyotte qui hurle le soir tard bourrer comme un coing')

Voilà, je pense avoir été clair
Merci

Posté : 06 mai 2009, 00:05
par Elie
$req = mysql_query($queryl) or die('Erreur SQL<br />'.$queryl.'<br />'.mysql_error());
Et revient nous voir !

Posté : 06 mai 2009, 08:37
par stopher
Il est plus simple effectivement d'avoir le message d'erreur de mysql , mais dans ton cas , l'erreur est simple :

Le nom de ta colonne FULLTEXT est un mot clef réservé pour mysql .. tu ne peux donc pas l'utiliser comme nom de colonne

mots reserves

Ch.

Posté : 06 mai 2009, 12:34
par Elie
Tu peux si tu fais `fulltext`

Posté : 06 mai 2009, 15:26
par hannao
Merci pour l'astuce Elie car ma base de données est construite avec ce mot reservé (je ne savais pas pas qu'il était réservé d'ailleurs, merci pour l'information stopher).
Tout marche bien maintenant dans la requête.
Je dois maintenant insérer des balises html pour donner le chemin vers des photos.
Je ne sais pas comment faire, je vais chercher et au besoin ,soit je reviendrais sur ce post, soit j'en ferais un autre.

En tout cas merci pour vos réponse et astuces.

Ca fonctionne c'est bien merci